ROS2- ROS2常用工具-19

ros2命令

Commands:
action Various action related sub-commands
bag Various rosbag related sub-commands
component Various component related sub-commands
daemon Various daemon related sub-commands
doctor Check ROS setup and other potential issues
interface Show information about ROS interfaces
launch Run a launch file
lifecycle Various lifecycle related sub-commands
multicast Various multicast related sub-commands
node Various node related sub-commands
param Various param related sub-commands
pkg Various package related sub-commands
run Run a package specific executable
security Various security related sub-commands
service Various service related sub-commands
topic Various topic related sub-commands
wtf Use wtf as alias to doctor

action launch node param pkg run service topic interface这几个都已经学过
bag component dawmon doctor lifecycle multicast security wtf 有待探索

RVIZ2数据可视化

数据:各种调试机器人时常用的数据,比如:图像数据、三维点云数据、地图数据、TF数据,机器人模型数据等等
可视化:可视化就是让你直观的看到数据,比如说一个三维的点(100,100,100),通过RVIZ可以将其显示在空间中
注:把数据显示出来而已

大多插件都是和坐标相关的,机器人学和URDF建模

调试小工具RQT

rqt_graph这个工具,在编写ROS2程序中经常使用,
ROS2中还有很多非常易用的RQT工具,

rqt

https://pic3.zhimg.com/v2-62c047803926b392349dd89fe37d3bce_1440w.jpg
选择现有的几个RQT插件来试一试,可以看到和话题、参数、服务、动作四大通信组件相关的工具都有,还有一些可视化、日志和系统计算图等相关的
Introspection / Node Graph 查看节点和节点之间的关系
Introspection / Process Monitor 看到所有与ROS2相关的进程
Topic/ Message Publisher 发布话题数据
Service /Service Caller 调用服务工具
Visualization / Image View 看图像话题数据的Image View
Visualization / MatPlot 话题数据图形化工具MqtPlot,用这个工具来调PID的
Configuration / Parameter Reconfigure

时光记录仪之ros2 bag

ROS2中常用的一个CLI工具——rosbag2,用于记录话题的数据
使用这个指令将话题数据存储为文件 ,后续我们无需启动节点,直接可以将bag文件里的话题数据发布出来

这个工具在做一个真实机器人的时候非常有用,比如可以录制一段机器人发生问题的话题数据,
录制完成后可以多次发布出来进行测试和实验,也可以将话题数据分享给别人用于验证算法等。

ros2 run demo_nodes_cpp talker

ros2 bag record topic-name
ros2 bag record topic-name1 topic-name2
-a # all
-o file-name # output file name
-s sqllite3 # file save format

ros2 run demo_nodes_cpp talker
ros2 bag record /chatter
Ctrl+C指令打断录制即可
多出一个文件夹,名字叫做rosbag2_xxxxxx.db3

ros2 bag info bag-file
ros2 bag play xxx.db3
ros2 bag play rosbag2_2021_10_03-15_31_41_0.db3
-r 10 # 10倍数
-l # 循环loop
--topics /chatter # 单个topic

仿真工具-Gazebo

RVIZ2是用来可视化数据的软件,核心要义是将数据展示出来(不生产数据只做数据的搬运工)
Gazebo是用于模拟真实环境生产数据的(不搬运数据只做数据的生产者)

Gazebo
根据所提供的机器人模型文件,传感器配置参数,给机器人创造一个虚拟的环境,虚拟的电机和虚拟的传感器,
并通过ROS/ROS2的相关功能包把传感器数据电机数据等发送出来(生产数据)

这样就不用花一分钱,就拥有了各式各样的机器人和传感器(一万八的雷达,也只不过是用鼠标拖拽一下)

Gazebo 是一个独立的应用程序,可以独立于ROS 或 ROS 2使用
Gazebo与ROS版本的集成是通过一组叫做gazebo_ros_pkgs的包完成的,
gazebo_ros_pkgs将Gazebo和ROS2连接起来。

gazebo_ros_pkgs不是一个包,是一堆包如下:
gazebo_dev:开发Gazebo插件可以用的API
gazebo_msgs:定义的ROS2和Gazebo之间的接口(Topic/Service/Action)
gazebo_ros:提供方便的 C++ 类和函数,可供其他插件使用,例如转换和测试实用程序。它还提供了一些通常有用的插件。gazebo_ros::Node
gazebo_plugins:一系列 Gazebo 插件,将传感器和其他功能暴露给 ROS2 例如:
gazebo_ros_camera 发布ROS2图像
gazebo_ros_diff_drive 通过ROS2控制和获取两轮驱动机器人的接口

安装gazebo
sudo apt install gazebo
安装ROS2的两轮差速功能包
sudo apt install ros-humble-gazebo-*

运行两轮差速demo
gazebo /opt/ros/humble/share/gazebo_plugins/worlds/gazebo_ros_diff_drive_demo.world

ros2 topic list -t
/clock [rosgraph_msgs/msg/Clock]
/demo/cmd_demo [geometry_msgs/msg/Twist]
/demo/odom_demo [nav_msgs/msg/Odometry]
/parameter_events [rcl_interfaces/msg/ParameterEvent]
/rosout [rcl_interfaces/msg/Log]
/tf [tf2_msgs/msg/TFMessage]

ros2 topic pub /demo/cmd_demo geometry_msgs/msg/Twist "{linear: {x: 0.2,y: 0,z: 0},angular: {x: 0,y: 0,z: 0}}"

posted @ 2025-06-12 12:02  jack-chen666  阅读(29)  评论(0)    收藏  举报