• create® 3入门教程-Create3 ROS 2 API


     系列文章目录:


    说明:

    • 介绍ROS2 API的主题、服务、动作、参数、坐标系

    相关设备

    ROS 2 Topic话题

    • 您可以看到运行该ros2 topic list命令的 Create® 3 机器人公开的 ROS 2 主题。
    1. $ ros2 topic list -t
    2. /battery_state [sensor_msgs/msg/BatteryState]
    3. /cmd_audio [irobot_create_msgs/msg/AudioNoteVector]
    4. /cmd_lightring [irobot_create_msgs/msg/LightringLeds]
    5. /cmd_vel [geometry_msgs/msg/Twist]
    6. /dock [irobot_create_msgs/msg/Dock]
    7. /hazard_detection [irobot_create_msgs/msg/HazardDetectionVector]
    8. /imu [sensor_msgs/msg/Imu]
    9. /interface_buttons [irobot_create_msgs/msg/InterfaceButtons]
    10. /ir_intensity [irobot_create_msgs/msg/IrIntensityVector]
    11. /ir_opcode [irobot_create_msgs/msg/IrOpcode]
    12. /kidnap_status [irobot_create_msgs/msg/KidnapStatus]
    13. /mouse [irobot_create_msgs/msg/Mouse]
    14. /odom [nav_msgs/msg/Odometry]
    15. /parameter_events [rcl_interfaces/msg/ParameterEvent]
    16. /rosout [rcl_interfaces/msg/Log]
    17. /slip_status [irobot_create_msgs/msg/SlipStatus]
    18. /stop_status [irobot_create_msgs/msg/StopStatus]
    19. /tf [tf2_msgs/msg/TFMessage]
    20. /tf_static [tf2_msgs/msg/TFMessage]
    21. /wheel_status [irobot_create_msgs/msg/WheelStatus]
    22. /wheel_ticks [irobot_create_msgs/msg/WheelTicks]
    23. /wheel_vels [irobot_create_msgs/msg/WheelVels]
    • 请注意,Create® 3 机器人将生成大多数这些主题的数据。另一方面,用户可以使用其中一些向 Create® 3 机器人发送命令。特别是 Create® 3 机器人将订阅以下主题:

      • /cmd_audio:使用此主题播放机器人扬声器的指定音符。
      • /cmd_lightring:使用这个主题来改变光环的颜色。
      • /cmd_vel:使用此主题来控制机器人参考系中的速度。
    • 如果您无法使用 来查看主题ros2 topic list,请确保机器人RMW_IMPLEMENTATION与您机器上的主题相匹配;有关更多信息,请参阅网络配置R操作系统米中间w是 (RMW)。

    • 此外,命令行ros2 topic实用程序可以使用过时的缓存发现信息;尝试使用其他参数运行它ros2 topic list --no-daemon --spin-time 10以不使用缓存的信息。

    ROS 2 Services服务

    • 您可以看到运行该ros2 service list命令的 Create® 3 机器人公开的 ROS 2 服务
    1. $ ros2 service list -t
    2. /e_stop [irobot_create_msgs/srv/EStop]
    3. /motion_control/describe_parameters [rcl_interfaces/srv/DescribeParameters]
    4. /motion_control/get_parameter_types [rcl_interfaces/srv/GetParameterTypes]
    5. /motion_control/get_parameters [rcl_interfaces/srv/GetParameters]
    6. /motion_control/list_parameters [rcl_interfaces/srv/ListParameters]
    7. /motion_control/set_parameters [rcl_interfaces/srv/SetParameters]
    8. /motion_control/set_parameters_atomically [rcl_interfaces/srv/SetParametersAtomically]
    9. /robot_power [irobot_create_msgs/srv/RobotPower]
    10. /robot_state/change_state [lifecycle_msgs/srv/ChangeState]
    11. /robot_state/get_available_states [lifecycle_msgs/srv/GetAvailableStates]
    12. /robot_state/get_available_transitions [lifecycle_msgs/srv/GetAvailableTransitions]
    13. /robot_state/get_state [lifecycle_msgs/srv/GetState]
    14. /robot_state/get_transition_graph [lifecycle_msgs/srv/GetAvailableTransitions]
    15. /static_transform/change_state [lifecycle_msgs/srv/ChangeState]
    16. /static_transform/describe_parameters [rcl_interfaces/srv/DescribeParameters]
    17. /static_transform/get_available_states [lifecycle_msgs/srv/GetAvailableStates]
    18. /static_transform/get_available_transitions [lifecycle_msgs/srv/GetAvailableTransitions]
    19. /static_transform/get_parameter_types [rcl_interfaces/srv/GetParameterTypes]
    20. /static_transform/get_parameters [rcl_interfaces/srv/GetParameters]
    21. /static_transform/get_state [lifecycle_msgs/srv/GetState]
    22. /static_transform/get_transition_graph [lifecycle_msgs/srv/GetAvailableTransitions]
    23. /static_transform/list_parameters [rcl_interfaces/srv/ListParameters]
    24. /static_transform/set_parameters [rcl_interfaces/srv/SetParameters]
    25. /static_transform/set_parameters_atomically [rcl_interfaces/srv/SetParametersAtomically]

    ROS 2 Actions动作

    • ros2 action list您可以看到运行命令的 Create® 3 机器人公开的 ROS 2 操作服务器。
    1. $ ros2 action list -t
    2. /audio_note_sequence [irobot_create_msgs/action/AudioNoteSequence]
    3. /dock [irobot_create_msgs/action/DockServo]
    4. /drive_arc [irobot_create_msgs/action/DriveArc]
    5. /drive_distance [irobot_create_msgs/action/DriveDistance]
    6. /led_animation [irobot_create_msgs/action/LedAnimation]
    7. /navigate_to_position [irobot_create_msgs/action/NavigateToPosition]
    8. /rotate_angle [irobot_create_msgs/action/RotateAngle]
    9. /undock [irobot_create_msgs/action/Undock]
    10. /wall_follow [irobot_create_msgs/action/WallFollow]

    ROS 2 Parameters参数

    • ros2 param list您可以看到运行命令的 Create® 3 机器人公开的 ROS 2 参数
    1. $ ros2 param list
    2. /motion_control:
    3. max_speed
    4. qos_overrides./parameter_events.publisher.depth
    5. qos_overrides./parameter_events.publisher.durability
    6. qos_overrides./parameter_events.publisher.history
    7. qos_overrides./parameter_events.publisher.reliability
    8. reflexes.REFLEX_BUMP
    9. reflexes.REFLEX_CLIFF
    10. reflexes.REFLEX_DOCK_AVOID
    11. reflexes.REFLEX_GYRO_CAL
    12. reflexes.REFLEX_PANIC
    13. reflexes.REFLEX_PROXIMITY_SLOWDOWN
    14. reflexes.REFLEX_STUCK
    15. reflexes.REFLEX_VIRTUAL_WALL
    16. reflexes.REFLEX_WHEEL_DROP
    17. reflexes_enabled
    18. safety_override
    19. use_sim_time
    20. wheel_accel_limit
    21. /static_transform:
    22. qos_overrides./parameter_events.publisher.depth
    23. qos_overrides./parameter_events.publisher.durability
    24. qos_overrides./parameter_events.publisher.history
    25. qos_overrides./parameter_events.publisher.reliability
    26. qos_overrides./tf_static.publisher.depth
    27. qos_overrides./tf_static.publisher.history
    28. qos_overrides./tf_static.publisher.reliability
    29. use_sim_time
    30. wheel_base
    31. wheels_encoder_resolution
    32. wheels_radius
    33. /ui_mgr:
    34. lightring_led_brightness
    35. qos_overrides./parameter_events.publisher.depth
    36. qos_overrides./parameter_events.publisher.durability
    37. qos_overrides./parameter_events.publisher.history
    38. qos_overrides./parameter_events.publisher.reliability
    39. use_sim_time
    • 形态参数,例如wheel_base和wheels_encoder_resolution是只读参数,可用于实现您的估计或运动控制算法。

    • 该safety_override参数允许用户启用/禁用安全功能。有关更多详细信息,请查看安全文档。

    • 该lightring_led_brightness参数允许用户增加/减少光环的亮度。

    ROS 2 Coordinate System坐标系

    • Create® 3 机器人产生一个融合了其车轮编码器、IMU 和地面光流量传感器的里程计。它通过 tf 树和/odom发布来公开这个坐标系。

    • 来自机器人的/tf树公开了 ROS 2 标准转换odom->base_footprint以及odom->base_link相应的定义odom、base_footprint和base_link。

    • 定义为机器人的旋转中心,z 高度与地板相交。 是从变换中删除了俯仰和滚动因子的 2D 平面表示,这对于 2D 平面映射等应用非常有用。

    • 该出版物包含相同的位置和方向base_linkbase_footprintbase_link/odombase_link以nav_msgs/msg/Odometry消息的形式,另外填充了速度。机器人的坐标系是右手的,x 向前,y 向左,z 向上。

    1. $ ros2 topic echo /tf
    2. transforms:
    3. - header:
    4. stamp:
    5. sec: 1646697192
    6. nanosec: 702756640
    7. frame_id: odom
    8. child_frame_id: base_footprint
    9. transform:
    10. translation:
    11. x: -0.00043813258525915444
    12. y: -3.853919679386308e-06
    13. z: 0.0
    14. rotation:
    15. x: 0.0
    16. y: 0.0
    17. z: 2.5629995434428565e-05
    18. w: 1.0
    19. - header:
    20. stamp:
    21. sec: 1646697192
    22. nanosec: 702756640
    23. frame_id: odom
    24. child_frame_id: base_link
    25. transform:
    26. translation:
    27. x: -0.00043813258525915444
    28. y: -3.853919679386308e-06
    29. z: 0.0
    30. rotation:
    31. x: -0.0016827837098389864
    32. y: -0.009617267176508904
    33. z: 9.441922884434462e-06
    34. w: 0.9999523162841797
  • 相关阅读:
    前端·在线随机生成图片 & 免费 API
    本地部署 Qwen-Agent
    四、MYSQL数据类型
    【并发编程】线程池及Executor框架
    javaEE开发配置
    动作活体检测能力,构建安全可靠的支付级“刷脸”体验
    高效的 Json 解析框架 kotlinx.serialization
    linux重启centos后常用命令
    20240417,友元 FRIEND
    ApplicationListener应用处理业务通知
  • 原文地址:https://blog.csdn.net/ncnynl/article/details/127306762