Robotic Operating System
Es un marco de trabajo (framework) ubicado en el camino medio entre el hardware y software de los sistemas robóticos.
display(IFrame("https://player.vimeo.com/video/639236696?h=740f412ce5",width="100%",height="400px"))
Existen dos versiones de ROS llamadas ROS2 y ROS1, y en ellas cada año se crea una distribución. ROS1 nació en la universidad de Stanford tiempo antes del 2007. Se desarrollo en la spin-off willow garage hasta el 2013, y de ahí continuo la OSRF.
La última distribución de ROS1 (noetic ninjemys) fue lanzada el 23 de mayo de 2020 y tiene fin de vida en mayo de 2025, ya que solo se va a continuar con ROS2.
Existen dos versiones de ROS llamadas ROS2 y ROS1, y en ellas cada año se crea una distribución. La última distribución de ROS1 fue lanzada en el 2020, ya que solo se va a continuar con ROS2.
![]() |
![]() |
Mayo 23 de 2022 | Mayo 23 de 2023 |
La distribución Humble Hawksbill para ROS2 es una distribución LTS (Long term support) que estaremos usando.
El ROS Graph es la red de los diferentes elementos que constituyen una applicación robótica. Una representación grafica de la configuración es mostrada a continuación:
Podemos usar ROS desde Linux (recomendado). La instalación de Linux la podemos hacer
o podemos usar ROS
Más información sobre los distintos métodos aquí
ros2 run
ros2 node list
ros2 node info
rqt_graph
ros2 topic list
ros2 topic echo
ros2 topic info
ros2 interface show
ros2 topic pub
ros2 topic hz
ros2 service list
ros2 service type
ros2 service find
ros2 interface show
ros2 service call
ros2 param list
ros2 param get
ros2 param set
ros2 param dump
ros2 param load
ros2 node info
ros2 action list
ros2 action info
ros2 interface show
ros2 action send_goal
La consola de mensajes para estudiar en detalle lo que ocurre en ROS
ros2 run rqt_console rqt_console
ros2 launch turtlesim multisim.launch.py
# turtlesim/launch/multisim.launch.py
from launch import LaunchDescription
import launch_ros.actions
def generate_launch_description():
return LaunchDescription([
launch_ros.actions.Node(
namespace= "turtlesim1", package='turtlesim', executable='turtlesim_node', output='screen'),
launch_ros.actions.Node(
namespace= "turtlesim2", package='turtlesim', executable='turtlesim_node', output='screen'),
])
ros2 bag record
ros2 bag info
ros2 bag play