码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • create® 3入门教程-Create3 ROS 2 API


     系列文章目录:

    • 目录:

    • create® 3入门教程-介绍

    • create® 3入门教程-硬件概述

    • create® 3入门教程-硬件安装

    • create® 3入门教程-电池组

    • create® 3入门教程-按钮和灯环

    • create® 3入门教程-适配器板

    • create® 3入门教程-USB-C连接器

    • create® 3入门教程-网络服务器

    • create® 3入门教程-连接网络服务器

    • create® 3入门教程-更新固件

    • create® 3入门教程-网络服务器日志

    • create® 3入门教程-网络服务器应用

    • create® 3入门教程-网络服务器状态信息

    • create® 3入门教程-连接到Wi-Fi

    • create® 3入门教程-使用多个机器人

    • create® 3入门教程-ROS2网络配置

    • create® 3入门教程-在Ubuntu 20.04上使用Create3

    • create® 3入门教程-在Raspberry Pi4上使用Create3

    • create® 3入门教程-将Create3连接到NVIDIA Jetson

    • create® 3入门教程-设置NTP

    • create® 3入门教程-创建Create3 Docker映像

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

    • create® 3入门教程-自主充电

    • create® 3入门教程-简单的动作

    • create® 3入门教程-传感器检测

    • create® 3入门教程-里程计

    • create® 3入门教程-反应Reflexes

    • create® 3入门教程-安全功能

    • create® 3入门教程-按钮和光环与用户进行交互

    • create® 3入门教程-沿着障碍物前进

    • create® 3入门教程-模拟器

    • create® 3入门教程-通过ROS2命令执行

    • create® 3入门教程-读取机器人的传感器

    • create® 3入门教程-导航


    说明:

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

    相关设备

    • Turtlebot4机器人套件:采购地址

    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
  • 相关阅读:
    Cloud Computing:云计算的简介之云计算的三层服务类型(从服务的层次)——IaaS、PaaS、SaaS的简介、核心技术之详细攻略
    医疗大模型:数据+知识双轮驱动实现医学推理、医患问答、病历自动生成、临床决策,为未来医疗服务提供全新可能性
    Pytorch笔记之分类
    JVM的生命周期
    linux遇到-bash-4.2$
    【网络安全---sql注入(2)】如何通过SQL注入getshell?如何通过SQL注入读取文件或者数据库数据?一篇文章告诉你过程和原理。
    分享个轮播的3D饼图,分别用Echarts和HighCharts实现
    两个数组的交集 II 双指针 哈希表
    SpringAMQP WorkQueue消息队列模型的理解与使用
    资深测试总结,现在软件测试有未来吗?“你“的底气在哪里?
  • 原文地址:https://blog.csdn.net/ncnynl/article/details/127306762
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号