Cómo escribir un programa Python para ros
ROS Indigo?beginner_Tutorials-10?Escribe una versión temática de ROS del programa?Hello World?(versión Python)
El software de máquina virtual que uso: VMware Workstation 11? p>
p>
Sistema Ubuntu utilizado: Ubuntu 14.04.4 LTS?
Versión ROS: ROS Indigo
1. >¿Hola mundo? El programa, en nuestro mundo de la programación, representa el primer programa escrito en un lenguaje determinado. Para el sistema operativo del robot ROS, este programa Hello World es: escribir un mensaje simple para el editor (envío) y el suscriptor (recepción).
2. Trabajo de preparación:
Los programas C ? se almacenarán en la carpeta ?src? ?Python? es diferente. Los programas Python? se almacenan en la carpeta ?scripts?, que de todos modos significa "archivo fuente". ?
Paso 1. Entonces, primero cree una carpeta ?scripts? en el paquete ?beginner_tutorials?:
$ roscd principiante_tutorials$ mkdir scripts$ cd scripts123
3. Escriba el programa del nodo editor de mensajes:
Si es demasiado vago para escribirlo, puede usar el comando wget para obtener un código fuente de talker.py en github. ¿Cómo obtenerlo?
Paso 2. Abra una terminal e ingrese el siguiente comando para obtener talker.py::
$ wget?
- devel/ rospy_tutorials/001_talker_listener/talker.py$ ls
talker.py123
Pero te sugiero que lo hagas tú mismo y lo escribas: crea manualmente un archivo ?talker.py? la carpeta /scripys:
$ roscd principiante_tutorials/scripts$ gedit talker.py12
Ingrese manualmente el código en el enlace de arriba en el archivo talker.py. (No publicaré el código)
Permítanme explicarles el código a continuación:
Paso 3. El último paso es agregar un ejecutable a este archivo talker.py. Permisos: p>
$ chmod x talker.py1
De esta forma se escribe un editor. No nos apresuremos a ejecutarlo. Ahora escribimos un suscriptor para recibir los temas publicados por este editor:
4. Escribe el programa del nodo de suscriptor de mensajes:
Paso 4. ?Igual que. el editor, usamos el comando wget para obtener el código fuente del suscriptor?listener.py:
$ roscd principiante_tutorials/scripts/$ wget?
ials/indigo-devel/ rospy_tutorials/001_talker_listener/listener.py$ ls
listener.py ?talker.py1234
Sin embargo, te recomiendo que lo escribas tú mismo.
Bien, comencemos a explicar el código dentro de listening.py. El código de este programa listening.py es simple:
Paso 5. Finalmente, no olvides dar esto. oyente .py?Agregar permisos ejecutables:
$ chmod x escucha.py1
5. Ejecutar:
¿Para python?, ¿no necesitamos usarlo? El comando catkin_make? compila el espacio de trabajo ~/catkin_ws? Porque el archivo Python en sí es un archivo ejecutable (siempre que le agreguemos permisos ejecutables).
OK, el editor y el suscriptor han sido creados. Ejecutémoslos y veamos el efecto:
Paso 6. Abra una nueva terminal y ejecute primero el comando roscore:
$ roscore1
Paso 7.?Abrir una nueva terminal e inicia el "editor":
$ rosrun principiante_tutorials talker.py ?1
Paso 8.?Abre una nueva terminal e inicia el "suscriptor":
$ rosrun principiante_tutorials listener.py 1
Efecto de ejecución:
Paso 9. Usemos la lista rostopic para ver cuáles son los temas actuales:
/chatter
/rosout
/rosout_agg1234
¿Entre ellos?/chatter ¿Es el tema de ROS? publicar en la editorial.
6. Expanda y escriba un archivo de script de inicio:
Recuerde la sección anterior, hablamos sobre el archivo de script de inicio de ROS. Escribamos un archivo de inicio para iniciar talker.py. y listening.py, use este archivo de inicio:
Paso 10. Vaya a la ruta /launch del paquete begin_tutorials y cree uno nuevo hello_world_topic.launch?File:
. $ roscd ?beginner_tutorials/launch$ gedit hello_world_topic.launch? #Usa tu editor de texto favorito 12
Paso 11.?Ingresa el siguiente código:
lt;launchgt;
lt;node pkg="beginner_tutorials" name="talker" type="talker.py" /gt;
lt ;node pkg="beginner_tutorials" name="listener" type="listener .py" /gt;lt;/launchgt;1234
Paso 12. Ahora, cerramos todas las terminales que se abrieron antes, iniciamos este script: (Abrir una terminal: ?Ctrl Alt T) p>
$ roslaunch principiante_tutorials hello_world_topic.launch1
Resultados de la ejecución:
El resultado de la captura de pantalla anterior muestra: Los scripts ?talker.py? y ?listener.py? exitosamente. Pero no hubo actualización de pantalla.
¿porqué es eso? Para demostrar que este script realmente se está ejecutando correctamente, intentémoslo:
Paso 13. Vuelva a abrir una terminal e ingrese el siguiente comando:
$ rosrun list $ rostopic list$ rostopic echo /chatter123
Paso 14. Ahora Ctrl C termina de escuchar el tema /chatter. Utilice ?rqt_graph? para visualizar los nodos actualmente iniciados:
$ rqt_graph1
Estos son suficientes para mostrar que hello_world_topic.launch? inició el archivo de script y se inició correctamente.
Resumen: "Editor" y "Suscriptor" son muy simples, simplemente publican un tema personalizado.
Lo he dicho antes: hay dos formas de comunicarse entre nodos: tema (rostopic) y servicio (rosservice)
Entonces, a continuación, hablaremos de: usar el servicio ROS para completar la versión ROS del ejemplo del programa "Hello World". Pero antes de eso, necesitamos aprender: cómo crear mensajes ROS personalizados y servicios ROS para poder escribir la versión del servicio ROS del programa Hello World. ?
Entonces, en la próxima conferencia, aprenderemos: cómo crear mensajes y servicios ROS personalizados.