重要说明:本文从网上资料整理而来,仅记录博主学习相关知识点的过程,侵删。
一、参考资料
二、rviz三维可视化平台
ROS学习笔记13:rviz三维可视化平台(ROS常用组件)
rviz(ROS Visualization Tool),是ROS中一款三维可视化工具,可以将信息图形化显示,用来模拟机器人在现实世界的运行效果。rviz的主要目的是以三维方式显示ROS信息,可以将数据进行可视化表达。例如,可以显示机器人模型,可以无需编程就能表达激光测距仪(LRF)传感器中的传感器到障碍物的距离,Kinect或Xtion等三维距离传感器的点云数据(PCD,Point Cloud Data),从相机获取的图象值等。
# 安装rviz
sudo apt-get install ros-melodic-rviz
# 启动rviz,一个终端启动ros,另一个终端启动rviz
roscore
rosrun rviz rviz
三、Gazebo仿真环境
Gazebo是一款功能强大且开源免费的三维物理仿真平台,具备强大的物理引擎、高质量的图像渲染、方便的编程与图像接口。Gazebo可以用于显示机器人模型并创建仿真环境,能够在复杂的室内和室外环境中准确有效地模拟机器人。与游戏引擎提供高保真度的视觉模拟类似,Gazebo提供高保真度的物理模拟,其提供一整套传感器模型,以及用户和程序非常友好的交互方式。
虽然Gazebo中的机器人模型与rviz使用的模型相同,但需要在模型中加入机器人和周围环境的物理属性,例如质量、摩擦系数、弹性系数等。机器人的传感器信息也可以通过插件的形式加入到仿真环境中,以可视化的方式进行显示。
四、TF功能包
1. TF包简介
TF是一个能让用户随时间跟踪多个坐标系的功能包。它使用树形数据结构,根据时间缓冲并维护多个坐标系之间的坐标变换关系,可以帮助开发者在任意时间、坐标系间完成点、向量等坐标的变换。
TF可以请求如下类型的数据:
- 5秒之前机器人头部坐标系相对于全局坐标系的关系;
- 机器人夹取的物体相对于机器人中心坐标系的位置;
- 机器人中心坐标系相对于全局坐标系的位置。
2. TF功能包安装
sudo apt-get install ros-noetic-turtle-tf
roslaunch turtle_tf turtle_tf_demo.launch
rosrun turtlesim turtle_teleop_key
3. 使用TF功能包的步骤
3.1 监听TF变换
接收并缓存系统中发布的所有坐标系变换数据,并从中查询所需要的坐标变换关系。
3.2 广播TF变换
向系统中广播坐标系之间的坐标变换关系。
五、rosbag功能包
ROS学习笔记15:rosbag数据记录与回放(ROS常用组件)
为了方便调试测试,ROS提供数据记录和回放的功能包rosbag,可以帮助开发者收集ROS系统运行时的消息数据。