Clona el repositorio de Helios utilizando Git:
git clone https://github.com/JaimeBravoAlgaba/Helios_SoftRobot.git
Crea un directorio para el workspace de ROS2 y asegúrate de que esté vacío:
mkdir -p helios_ws/src
Copia el paquete de helios_robot al workspace de ROS2:
cp -r Helios_SoftRobot/Código/helios_robot helios_ws/src
cd helios_ws/src
Clona el repositorio de micro_ros_setup y asegúrate de que esté en la rama correspondiente a tu versión de ROS2:
git clone https://github.com/micro-ROS/micro_ros_setup.git -b $ROS_DISTRO
cd ..
Actualiza los dependencias y compila el workspace de ROS2:
rosdep update && rosdep install --from-paths src --ignore-src -y
colcon build --symlink-install
source install/local_setup.bash
Crea un agente de MicroROS y configura el entorno:
ros2 run micro_ros_setup create_agent_ws.sh
ros2 run micro_ros_setup build_agent.sh
source install/local_setup.sh
Conecta el ESP32 al puerto USB y ejecuta el agente de MicroROS:
ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyUSB0
Si aparece un error al conectar el ESP32, asegúrate de conceder acceso a tu usuario al puerto USB ttyUSB0:
- Comprueba el grupo de usuarios que tiene acceso al puerto:
stat /dev/ttyUSB0
Debería aparecer algo como: "Gid: ( 20/ dialout)"
- Añade tu usuario al grupo "dialout" o el que haya aparecido:
sudo usermod -a -G dialout $USER
- Da permisos de lectura y escritura al puerto:
sudo chmod a+rw /dev/ttyUSB0
Después de resetear el ESP32, deberían escucharse sus topics desde otro terminal.
- Puede utilizarse el archivo helios_robot.sh para lanzar automáticamente los nodos necesarios:
# Lanza el agente de MicroROS, la cinemática y la predicción de pose
# En la carpeta en la que se encuentre el archivo hacer:
./helios_robot.sh
- Lanzar el nodo de visualización:
ros2 run helios_robot helios_robot_plot
- Controlar la longitud de los cables, en metros:
# [L00, L01, L02, L03, L10, L11, ... L22, L23]
ros2 topic pub --once /helios_cables_cmd std_msgs/msg/Float32MultiArray "data: [0,0,0,0, 0,0,0,0, 0,0,0,0]"
- Enviar comando en coordenadas theta y phi, en radianes:
# [th0, th1, th2, phi0, phi1, phi2]
ros2 topic pub --once /helios_sections_cmd std_msgs/msg/Float32MultiArray "data: [0,0,0, 0,0,0]"
- Controlar la herramienta (dato de 0 a 255):
ros2 topic pub --once /helios_tool_cmd std_msgs/msg/Int8 "data: 127"