ROS中rviz使用教程
- rviz安装
- 启动rviz
- 命令行启动rviz
- 通过launch文件启动
- rviz plugin 二次开发界面
在机器人控制过程中需要显示机器人的各种状态,例如机械臂的运动状态、受力状态等,ROS称为机器人的操作系统,其强大的功能覆盖各个方面,ROS提供的rivz可以实现各种数据的显示,同时其也提供二次开发的插件,可以打造个性化的机器人的控制界面。
rviz安装
安装ROS完整版时,rviz会自动安装,如果没有安装,可以通过下面命令安装
1 | sudo apt-get install ros-kinetic-rviz |
安装依赖
1 2 | rosdep install rviz rosmake rviz |
启动rviz
rviz可以开通直接通过命令行启动,也可以通过launch文件启动,本文将分别介绍两种方法。
命令行启动rviz
首先输入下列命令rosrun rviz rviz启动rviz,启动后其会提供相关版本信息。
1 2 3 4 5 6 | d@f:~$ rosrun rviz rviz [ INFO] [1591015663.886947939]: rviz version 1.12.17 [ INFO] [1591015663.887040184]: compiled against Qt version 5.5.1 [ INFO] [1591015663.887060745]: compiled against OGRE version 1.9.0 (Ghadamon) [ INFO] [1591015664.169635476]: Stereo is NOT SUPPORTED [ INFO] [1591015664.169738498]: OpenGl version: 3 (GLSL 1.3). |
启动后图形界面如下图所示,界面包括四个模块:
1 :工具栏,提供视角控制、目标设置、发布地点等工具
2 :显示项列表,用于显示当前选择的显示插件,可以配置每个插件的属性
3 :视角设置区,可以选择多种观测视角
4 :时间显示区,显示当前的系统时间和ROS时间
其中比较重要的是Fixed Frame的选取和topic的设定。
通过左下角的Add按钮,可以添加各种信息,如下图所示:可以通过By topic添加话题接收的信息,也可以通过By display type添加如力、路径等信息。
通过launch文件启动
命令启动缺陷比较大,比如要加载一个机器人模型就比较困难,相反,采用launch文件可以轻松解决。先上完整的launch文件,然后在解释其含义
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?xml version="1.0"?> <launch> <!--设定命名空间--> <arg name="robot_namespace" default="/"/> <!--加载机器人模型文件--> <param name="robot_description" command="$(find xacro)/xacro '$(find arm_hand)/urdf/arm_hand.urdf.xacro' --inorder robot_namespace:=$(arg robot_namespace)"/> <!--Add a real joint_state publisher from hardware--> <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" /> <!--get joint states and pub the robot tf--> <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" /> <!--启动rviz--> <node name="rviz" pkg="rviz" type="rviz" args="-d $(find arm_hand)/config/visualization.rviz" required="true" /> </launch> |
启动步骤:
1.设置命名空间
2.加载机器人模型文件,一般为.urdf或.xacro格式的XML文件
3.启动关节状态发布节点,用于发送关节命令给机器人
4.启动关节状态发布器,发布关节状态
5.启动rviz界面
启动结果如图所示,可以看到已经加载了机械臂模型。
通过rqt_graph可以看到其节点关系图如下
rviz plugin 二次开发界面
现在还在研究阶段,可以先参照古月居写的rviz plugin