< >
Home » create3入门教程 » create® 3入门教程-Create3 ROS 2 API

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

说明:

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

相关设备

ROS 2 Topic话题

  • 您可以看到运行该ros2 topic list命令的 Create® 3 机器人公开的 ROS 2 主题。
$ ros2 topic list -t
/battery_state [sensor_msgs/msg/BatteryState]
/cmd_audio [irobot_create_msgs/msg/AudioNoteVector]
/cmd_lightring [irobot_create_msgs/msg/LightringLeds]
/cmd_vel [geometry_msgs/msg/Twist]
/dock [irobot_create_msgs/msg/Dock]
/hazard_detection [irobot_create_msgs/msg/HazardDetectionVector]
/imu [sensor_msgs/msg/Imu]
/interface_buttons [irobot_create_msgs/msg/InterfaceButtons]
/ir_intensity [irobot_create_msgs/msg/IrIntensityVector]
/ir_opcode [irobot_create_msgs/msg/IrOpcode]
/kidnap_status [irobot_create_msgs/msg/KidnapStatus]
/mouse [irobot_create_msgs/msg/Mouse]
/odom [nav_msgs/msg/Odometry]
/parameter_events [rcl_interfaces/msg/ParameterEvent]
/rosout [rcl_interfaces/msg/Log]
/slip_status [irobot_create_msgs/msg/SlipStatus]
/stop_status [irobot_create_msgs/msg/StopStatus]
/tf [tf2_msgs/msg/TFMessage]
/tf_static [tf2_msgs/msg/TFMessage]
/wheel_status [irobot_create_msgs/msg/WheelStatus]
/wheel_ticks [irobot_create_msgs/msg/WheelTicks]
/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 服务
$ ros2 service list -t
/e_stop [irobot_create_msgs/srv/EStop]
/motion_control/describe_parameters [rcl_interfaces/srv/DescribeParameters]
/motion_control/get_parameter_types [rcl_interfaces/srv/GetParameterTypes]
/motion_control/get_parameters [rcl_interfaces/srv/GetParameters]
/motion_control/list_parameters [rcl_interfaces/srv/ListParameters]
/motion_control/set_parameters [rcl_interfaces/srv/SetParameters]
/motion_control/set_parameters_atomically [rcl_interfaces/srv/SetParametersAtomically]
/robot_power [irobot_create_msgs/srv/RobotPower]
/robot_state/change_state [lifecycle_msgs/srv/ChangeState]
/robot_state/get_available_states [lifecycle_msgs/srv/GetAvailableStates]
/robot_state/get_available_transitions [lifecycle_msgs/srv/GetAvailableTransitions]
/robot_state/get_state [lifecycle_msgs/srv/GetState]
/robot_state/get_transition_graph [lifecycle_msgs/srv/GetAvailableTransitions]
/static_transform/change_state [lifecycle_msgs/srv/ChangeState]
/static_transform/describe_parameters [rcl_interfaces/srv/DescribeParameters]
/static_transform/get_available_states [lifecycle_msgs/srv/GetAvailableStates]
/static_transform/get_available_transitions [lifecycle_msgs/srv/GetAvailableTransitions]
/static_transform/get_parameter_types [rcl_interfaces/srv/GetParameterTypes]
/static_transform/get_parameters [rcl_interfaces/srv/GetParameters]
/static_transform/get_state [lifecycle_msgs/srv/GetState]
/static_transform/get_transition_graph [lifecycle_msgs/srv/GetAvailableTransitions]
/static_transform/list_parameters [rcl_interfaces/srv/ListParameters]
/static_transform/set_parameters [rcl_interfaces/srv/SetParameters]
/static_transform/set_parameters_atomically [rcl_interfaces/srv/SetParametersAtomically]

ROS 2 Actions动作

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

ROS 2 Parameters参数

  • ros2 param list您可以看到运行命令的 Create® 3 机器人公开的 ROS 2 参数
$ ros2 param list
/motion_control:
  max_speed
  qos_overrides./parameter_events.publisher.depth
  qos_overrides./parameter_events.publisher.durability
  qos_overrides./parameter_events.publisher.history
  qos_overrides./parameter_events.publisher.reliability
  reflexes.REFLEX_BUMP
  reflexes.REFLEX_CLIFF
  reflexes.REFLEX_DOCK_AVOID
  reflexes.REFLEX_GYRO_CAL
  reflexes.REFLEX_PANIC
  reflexes.REFLEX_PROXIMITY_SLOWDOWN
  reflexes.REFLEX_STUCK
  reflexes.REFLEX_VIRTUAL_WALL
 reflexes.REFLEX_WHEEL_DROP
  reflexes_enabled
  safety_override
  use_sim_time
  wheel_accel_limit
/static_transform:
  qos_overrides./parameter_events.publisher.depth
  qos_overrides./parameter_events.publisher.durability
  qos_overrides./parameter_events.publisher.history
  qos_overrides./parameter_events.publisher.reliability
  qos_overrides./tf_static.publisher.depth
  qos_overrides./tf_static.publisher.history
  qos_overrides./tf_static.publisher.reliability
  use_sim_time
  wheel_base
  wheels_encoder_resolution
  wheels_radius
/ui_mgr:
  lightring_led_brightness
  qos_overrides./parameter_events.publisher.depth
  qos_overrides./parameter_events.publisher.durability
  qos_overrides./parameter_events.publisher.history
  qos_overrides./parameter_events.publisher.reliability
  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 向上。

$ ros2 topic echo /tf
transforms:
- header:
    stamp:
      sec: 1646697192
      nanosec: 702756640
    frame_id: odom
  child_frame_id: base_footprint
  transform:
    translation:
     x: -0.00043813258525915444
      y: -3.853919679386308e-06
      z: 0.0
    rotation:
      x: 0.0
      y: 0.0
      z: 2.5629995434428565e-05
      w: 1.0
- header:
    stamp:
      sec: 1646697192
      nanosec: 702756640
    frame_id: odom
  child_frame_id: base_link
  transform:
    translation:
      x: -0.00043813258525915444
      y: -3.853919679386308e-06
      z: 0.0
    rotation:
      x: -0.0016827837098389864
      y: -0.009617267176508904
      z: 9.441922884434462e-06
      w: 0.9999523162841797

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: none