ROS2——基础7(Gazebo、Rviz、RQT)
本文介绍了ROS中的三大核心工具:Gazebo三维物理仿真平台、Rviz可视化工具和RQT多功能工具。Gazebo支持动力学仿真和环境模拟,提供详细安装指南和版本适配说明。Rviz重点讲解其界面功能、URDF模型加载流程,包括launch文件编写、参数配置和模型显示方法。RQT则展示了日志显示、话题发布、服务调用和可视化绘图等实用功能,通过小乌龟案例演示具体操作。三款工具各具特色:Gazebo侧重
目录
1 Gazebo三维物理仿真平台
1.1 Gazebo简介
ROS中常用的三维物理仿真平台,支持动力学引擎、可实现高质量图形渲染、模拟机器人及其周边环境、加入摩擦力、弹性系数等物理属性。
1.2 安装及运行
Ubuntu22.04推荐装Gazebo Harmonic、如使用ROS2 Humble推荐装Gazebo Fortress,Ubuntu24.04推荐装Gazebo Jetty、如使用ROS2 Jazzy推荐装Gazebo Harmonic
官方安装教程见:https://gazebosim.org/docs/harmonic/getstarted/
也可使用如下指令,将humble替换成自己的Ubuntu版本即可,系统会自动选择适配版本安装。
sudo apt install ros-humble-gazebo-*启动,终端输入:
gazebo
1.3 使用教程
2 Rviz工具
2.1 简介
Rviz2常用于ROS中数据可视化,如机器人模型、传感器信息、环境信息等。
终端启动:
rviz2
区域 图标 功能 工具栏 Interact 选择机器人或指定位置调整角度 工具栏 Move Camera 长按鼠标左键并拖动鼠标可以调整相机角度 工具栏 Select 长按鼠标左键可框选模型 工具栏 Focus Camera 任意一处单击鼠标左键,将该点设置为地图中心点 工具栏 Measure 测量两点间距 工具栏 2D Pose Estimate 仅在导航时可用,单击任意一处即可设为机器人位置 工具栏 2D Goal Pose 仅在导航时可用,单击任意一处即可设为机器人目标点,机器人会自动生成行进路线并随路线移动至目标点 工具栏 Publish Point 仅在导航时可用,与2D Goal Pose功能一致,但可以设置多个目标点 显示项目列表 Fixed Frame 所有其他坐标系的参考坐标系 显示项目列表 Background Color 背景色 显示项目列表 Frame Rate 刷新率 显示项目列表 Reference Frame 网格坐标参考坐标系 显示项目列表 Plane Cell Count 网格平面中要绘制的单元格数 显示项目列表 Normal Cell Count 沿网格法向量绘制的单元格数 显示项目列表 Cell Size 单元格大小,单位为米 显示项目列表 Line Style 网格线条维度 显示项目列表 Color 网格底色 显示项目列表 Alpha 网格线条粗细 显示项目列表 Plane 用于绘制网格的平面 显示项目列表 Offset 从坐标原点偏移栅格,三个参数分别是XYZ轴的偏移量,单位为米
2.2 加载URDF模型
2.2.1 编写launch文件
cd ros2_ws/src/urdf_demo mkdir launch cd launch gedit rviz_view.launch.py# 导入 LaunchDescription 类,用于描述 launch 文件 from launch import LaunchDescription # 导入 Node 类,用于启动 ROS 节点 from launch_ros.actions import Node # 导入 get_package_share_directory 函数,用于获取包的共享目录 from ament_index_python.packages import get_package_share_directory # 获取 URDF 文件的路径 def generate_launch_description(): urdf_file_path = get_package_share_directory('urdf_demo') + '/urdf/simple_demo.urdf' # 创建参数节点,将 URDF 文件加载到参数服务器 load_urdf_param_node = Node( # 包名 package='robot_state_publisher', # 可执行文件名 executable='robot_state_publisher', # 节点名称 name='robot_state_publisher', # 将 URDF 文件加载到参数服务器中 parameters=[{'robot_description': open(urdf_file_path).read()}] ) # 启动 RViz 节点,并加载 URDF 模型 rviz_node = Node( # 包名 package='rviz2', # 可执行文件名 executable='rviz2', # 节点名称 name='rviz2', # 输出屏幕信息 output='screen', ) return LaunchDescription([ load_urdf_param_node, rviz_node ])
2.2.2 setup.py设置
from setuptools import find_packages, setup import os from glob import glob package_name = 'urdf_demo' setup( name=package_name, version='0.0.0', packages=find_packages(exclude=['test']), data_files=[ ('share/ament_index/resource_index/packages', ['resource/' + package_name]), ('share/' + package_name, ['package.xml']), (os.path.join('share', package_name, 'launch'), glob(os.path.join('launch', '*.launch.py'))), (os.path.join('share', package_name, 'urdf'), glob(os.path.join('urdf', '*.*'))), (os.path.join('share', package_name, 'urdf/sensors'), glob(os.path.join('urdf/sensors', '*.*'))), (os.path.join('share', package_name, 'meshes'), glob(os.path.join('meshes', '*.*'))), (os.path.join('share', package_name, 'rviz'), glob(os.path.join('rviz', '*.rviz'))), ], install_requires=['setuptools'], zip_safe=True, maintainer='caohao', maintainer_email='caohao@todo.todo', description='TODO: Package description', license='TODO: License declaration', extras_require={ 'test': [ 'pytest', ], }, entry_points={ 'console_scripts': [ ], }, )
2.2.3 编译运行
cd ~/ros2_ws colcon build source ./install/setup.bash ros2 launch urdf_demo rviz_view.launch.py(1)Rivz中设置base_link
(2)添加RobotModel模型
(3)选择robot_description加载模型,输入后点击空白处模型即可加载出来
(4)保存工程
左上角File-Save Config As,设置工程名“rviz.rviz”-Save
(5)自加载模型
cd ~/ros2_ws/src/urdf_demo/launch gedit rviz_view.launch.py
重新编译验证,执行如下指令可以直接启动rviz并打开模型
cd ~/ros2_ws colcon build source ./install/setup.bash ros2 launch urdf_demo.launch.py
3 RQT工具
3.1 简介
RQT是另一种可视化工具,相比于Rviz更简单,只显示某个参数,这也是基于QT可视化工具来的。
3.2 功能介绍
3.2.1 日志显示
(1)启动小乌龟节点
ros2 run turtlesim turtlesim_node(2)另启终端打开控制箭
ros2 run turtlesim turtle_teleop_key(3)另启终端打开rqt
(4)rqt里面选择Plugins-Logging-Console
(5)上下左右控制小乌龟移动,如碰撞到墙壁日志中会显示
3.2.2 topic插件
(1)Plugins-Topic-Message Publisher
(2)点击刷新按钮-选择turtel/cmd_vel-添加
(3)修改线速度、角速度,小乌龟会自己移动
3.2.3 service插件
(1)Plugins-Services-Services Caller
(2)选择/spawn-设置小乌龟位置,名字为turtle3-点击Call,生成小乌龟
3.2.4 画图插件
(1)Plugins-Visualization-Plot
(2)输入/turtle/pose/-点击添加-可视化参数
3.2.5 其他
官方教程:
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐














所有评论(0)