ROS理论基础之rviz实时显示

rviz是什么

可以显示很多信息的3D可视化工具。

rviz的功能

显示显示显示,重要的废话说三遍。

可以显示什么?我们经常需要显示的:模型,TF坐标,地图,激光信息,摄像头信息,规划路径等等。这些我们都可以在界面点击Add进行添加,选择需要显示内容,其实显示的内容是节点发出的topic的信息。

现在的显示已经有了,rviz就是为了显示,所以今天的总结到这,就开始了(手动滑稽- -)。

rviz的常用操作

现在可以显示了,但是每次都要重新添加,好麻烦怎么办。

简单,首先你要保存一个.rviz的文件,然后在加载它就可以了。选择完你需要显示的topic,File->Save Config As进行保存。然后就可以加载了,加载有两种方式,直接命令中启动时加载,也可以在launch文件中启动时加载。一般我们都会launch文件中启动并加载,在其中还可以添加一个use_gui的参数来控制是否打开显示。

#直接启动
$rviz
#启动指定文档
$rviz -d $(rospack find caster_navigation)/rviz/navigation.rviz

或者是

<launch>  
   <arg name="model" />  
   <arg name="gui" default="False" />  
   <param name="robot_description" textfile="$(arg model)" />  
   <param name="use_gui" value="$(arg gui)"/>  
   <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />  
   <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />  
   <node name="rviz" pkg="rviz" type="rviz" args="-d $(find urdf_tutorial)/urdf.rviz" required="true" />  
launch>

在launch中还有其他三个参数:
robot_description,joint_state_publisher,robot_state_publisher

首先是robot_description,加载了urdf文件,即机器人模型,机器人的外形,大小,位置,坐标等等都是在这里标出,就有了可以显示的RobotModel和TF关系。
拥有了固定模型,但是我们看到的模型一直都是在跟随我们真实的机器人在变换,这时就用了其他两个插件。joint_state_publisher此包发布机器人的传感器消息。该包读取robot_description,查找所有非固定关节,并发布定义了所有关节的joint_states消息。可以与robot_state_publisher发布服务器节点一起使用,也可以发布所有关节状态的转换。robot_state_publisher使用参数robot_description指定的urdf和joint_states的关节位置来计算机器人的正向运动学,并通过tf发布结果。

有了这些所有的信息,rviz就可以实时显示机器人的运动了。

你可能感兴趣的:(ROS)