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
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
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.
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