slides da aula (acessar com email usp)
http://wiki.ros.org/pt_BR/ROS/Tutorials
- entre em https://rds.theconstructsim.com/r/
- crie uma conta gratis (sign up)
- Em NAME/DESCRIPTION procure por: turtlebot
- clique em "Open" no primeiro resultado de "ROS_Basics_Project_Turtlebot" e aguarde o ambiente de trabalho ser criado
- feche o jupyter notebook
- em Tools clique clique em shell para abrir um terminal
- em Simulations clique em "choose launch file..", selecione no subitem "turtlebot_navegation_gazebo" o arquivo main.launch e clique em launch (use shift para e o botão direito mouse para navegar na simulação)
- explore o ambiente ros criado.
no shell veja o resultado dos comando:
rosnode list #running nodes
rostopic list #initialized topics
#existing packages related to "turtlebot"
rospack list | grep turtlebot
rostopic echo /odom #prints the result of the topic "/odom" (data from the odometry sensor)
#goes to the path of the specified ros package
roscd turtlebot_navigation_gazebo
- veja a imagem que esta sendo transmitida pelo turtlebot. para isso, em Tools abra o "Camera Viewer". Execute os comandos sugeridos pela janela do camera viewer em 2 novos shells.
- em image topic selecione o topico da imagem que deseja ver (camera/rgb/image_raw ou camera/depth/image_raw)
- agora tente controlar o robo por linha de comando
cd ~ #going back to the home folder
# velocity control
rostopic pub /cmd_vel geometry_msgs/Twist "linear:
x: 0.3
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0"
#use ctrl+C at the same shell to stop the transmission of the message
#to stop the robot you need to send a message with only zeros
rostopic pub /cmd_vel geometry_msgs/Twist "linear:
x: 0.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0"
#note that by using "tabs" while writing the command makes everything much easier
vamos agora escrever um node para controlar o robo de forma automatizada em python.
- entre no diretorio do workspace
cd ~/catkin_ws
e na subpasta que contem os pacotescd src
. - crie um pacote
catkin_create_pkg O_NOME_Q_VC_QUISER std_msgs rospy roscpp
(std_msgs,rospy e roscpp sao outros pacotes do ros que o seu pacote dependera, por hora não se preocupe com isso) *note que o seu pacote foi criado, veja o seu conteudols O_NOME_Q_VC_QUISER
- para criar um node nesse pacote: abra o IDE em Tools, e navegue até a pasta ~/catkin_ws/src/O_NOME_Q_VC_QUISER/src/ e crie um arquivo move_turtlebot.py
- insira nele o conteudo presente no arquivo move_turtlebot.py deste repositório e fique livre para modifica-lo (é só um exemplo)
- entre pelo shell na mesma pasta
cd ~/catkin_ws/src/O_NOME_Q_VC_QUISER/src/
e torne o arquivo criado executavelchmod +x move_turtlebot.py
- por último, vamos "recontruir" o workspace para que o pacote e o node criado sejam reconheciveis pelo ros
cd ~/catkin_ws
e entãocatkin_make
- agora basta rodar o node
rosrun O_NOME_Q_VC_QUISER move_turtlebot.py
😄
referências: