Configura ROS: workspaces, packages, topics and services.

CREA TU ESPACIO DE TRABAJO (WORKSPACE)

Veamos cómo crearlo de manera sencilla con colcon, una herramienta que nos sirve para crear los espacios de trabajo.

*Recuerda que si no lo tienes sourceado en automático, tendrás que correr el siguiente comando cada que abras una terminal:

source /opt/ros/humble/setup.bash

 INSTALAR COLCON

terminal 1

sudo apt install python3-colcon-common-extensions

CREA TU CARPETA Y ACCEDE A ELLA

mkdir -p ~/ros2_ws

cd ros2_ws

COPIA LA ESTRUCTURA DEL SRC USANDO GITHUB

git clone https://github.com/ros2/examples src/examples -b humble

CONSTRUYE TU ESPACIO DE TRABAJO CON COLCON

colcon build --symlink-install

TESTEA TU ESPACIO DE TRABAJO

colcon test

CORRE EJEMPLOS

terminal 1

cd ros2_ws

source install/setup.bash

ros2 run examples_rclcpp_minimal_subscriber subscriber_member_function

terminal 2

cd ros2_ws

source install/setup.bash

ros2 run examples_rclcpp_minimal_publisher publisher_member_function

Sourcea tu workspace en tu shell startup para que se redireccione automáticamente cada que abras una terminal

echo "source /usr/share/colcon_cd/function/colcon_cd.sh" >> ~/.bashrc

echo "export _colcon_cd_root=/opt/ros/humble/" >> ~/.bashrc

CREA UN PUBLICADOR Y SUSCRIPTOR (TOPICS)

Usaremos python para este ejemplo.

ACCEDE A TU SOURCE *todos los packages deben ser localizados en src

terminal 1

cd ros2_ws/src

CREA UN PAQUETE CON PKG CREATE *sintaxis

Explicación de sintaxis: ros2 pkg create --build-type ament_python --license Apache-2.0 <package_name>

ros2 pkg create --build-type ament_python --license Apache-2.0 py_pubsub

 

PUBLICADOR!!

ACCEDE A py_pubsub *EN UNA NUEVA TERMINAL SOLO ESCRIBE ESTO

cd ros2_ws/src/py_pubsub/py_pubsub

COPIA CODIGO DE GITHUB PARA COPIAR LA ESTRUCTURA

wget https://raw.githubusercontent.com/ros2/examples/humble/rclpy/topics/minimal_publisher/examples_rclpy_minimal_publisher/publisher_member_function.py

  

ABRE EL ARCHIVO EN VISUAL PARA EDITAR LAS DEPENDENCIES

CAMBIA LOS maintainer, maintainer_email, and licence DENTRO DE package.xml, setup.cfg y setup.py USANDO VISUAL STUDIO, ESTOS SE ENCUENTRAN DENTRO DE TU CARPETA DE ros2_ws/src/py_pubsub

<description>Examples of minimal publisher/subscriber using rclpy</description>

<maintainer email="you@email.com">Your Name</maintainer>

<license>Apache License 2.0</license>

 

AGREGA ESTAS LÍNEAS DE CÓDIGO DENTRO DE package.xml ABAJO DE LICENCE

<exec_depend>rclpy</exec_depend>

<exec_depend>std_msgs</exec_depend>

 

DENTRO DE setup.py DENTRO DE ENTRY POINTS, DENTRO DE CONSOLE SCRIPTS, AGREGA

'talker = py_pubsub.publisher_member_function:main'

 

SUSCRIPTOR!!!

ACCEDE A py_pubsub *EN UNA NUEVA TERMINAL SOLO ESCRIBE ESTO

cd ros2_ws/src/py_pubsub/py_pubsub

COPIA CODIGO DE GITHUB PARA COPIAR LA ESTRUCTURA

wget https://raw.githubusercontent.com/ros2/examples/humble/rclpy/topics/minimal_subscriber/examples_rclpy_minimal_subscriber/subscriber_member_function.py

AGREGA OTRO ENTRY POINT EN setup.py

'listener = py_pubsub.subscriber_member_function:main'

 

ACCEDE A ros2_ws PARA VERIFICAR QUE TENGAS INSTALADO TODO EN ORDEN

cd ros2_ws

rosdep update

rosdep install -i --from-path src --rosdistro humble -y

CONSTRUYE TU CONTENEDOR

colcon build --packages-select py_pubsub

CORRE TUS CODIGOS EN DOS TERMINALES DIFERENTES

terminal 1

cd ros2_ws

source install/setup.bash

ros2 run py_pubsub talker

terminal 2

cd ros2_ws

source install/setup.bash

ros2 run py_pubsub listener

 

CREA UN SERVIDOR (SERVICES)

Usaremos python para este ejemplo.

ACCEDE A TU SOURCE CON cd ros2_ws/src *todos los packages deben ser localizados en src

terminal 1

cd ros2_ws/src

ros2 pkg create --build-type ament_python --license Apache-2.0 py_srvcli --dependencies rclpy example_interfaces

CAMBIA LOS DATOS NECESARIOS EN VISUAL STUDIO, COMO LO HICIMOS ANTERIORMENTE, AGREGA LOS CÓDIGOS DE SERVIDOR Y CLIENTE DE LA DOCUMENTACIÓN.

https://docs.ros.org/en/humble/Tutorials/Beginner-Client-Libraries/Writing-A-Simple-Py-Service-And-Client.html

DESPUES CORRE TU PAQUETE

cd ros2_ws

rosdep update

colcon build --packages-select py_srvcli

CORRE TUS CODIGOS EN DOS TERMINALES DIFERENTES

terminal 1

cd ros2_ws

source install/setup.bash

ros2 run py_srvcli service

terminal 2

cd ros2_ws

source install/setup.bash

ros2 run py_srvcli client 2 3

Siguiente
Siguiente

Aprendiendo ROS… ¿con tortugas?