《精通ROS机器人编程(原书第2版) 》 —3.11.6 在RViz中查看7-DOF机械臂
3.11.6 在RViz中查看7-DOF机械臂
讨论完机器人模型后,我们可以在RViz中查看设计好的xacro文件,并使用关节状态发布者(joint state publisher)节点控制每个关节,使用机器人状态发布者(robot state publisher)节点发布机器人状态。
可以使用名为view_arm.launch的启动文件执行上述任务。该文件位于此软件包的launch文件夹内:
图3-9 7-DOF度机械臂的末端执行器连接图
在launch文件夹中创建以下启动文件,并使用catkin_make命令编译软件包。使用以下命令启动URDF:
该机器人将在RViz上显示,且同时打开了关节状态发布者(joint state publisher)的GUI:
图3-10 在RViz中查看7-DOF机械臂和joint_state_publisher
我们可以与关节滑块进行交互并移动机器人的关节。接下来,我们将讨论关节状态发布者能做些什么。
理解关节状态发布者
关节状态发布者(joint state publisher)是一个ROS软件包,常用于与机器人的每个关节进行交互。该软件包包含joint_state_publisher节点,该节点将从URDF模型中找到非固定关节,并以sensor_msgs/JointState的消息格式发布每个关节的关节状态值。
在前面的启动文件view_arm.launch中,我们启动了joint_state_publisher节点并将一个名为use_gui的参数设置为true,如下所示:
如果我们将use_gui设置为true,那么joint_state_publisher节点将显示一个基于滑动条控件的窗口来控制每个关节。关节的下限位值和上限位值将取自joint标签内的limit标签相关联的上下限位数据。前面的截图显示了RViz中的机器人模型,以及用于更改机器人关节位置的用户界面,其中use_gui参数的设置为true。
我们可以在http://wiki.ros.org/joint_state_publisher找到更多关于关节状态发布者的信息。
理解机器人状态发布者
机器人状态发布者(robot state publisher)软件包可以将机器人的状态发布到tf。此软件包订阅了机器人的关节状态,并使用URDF模型的运动表示来发布每个连杆的3D姿态。我们可以在启动文件中使用以下代码来实现机器人状态发布者节点:
在前面的启动文件view_arm.launch中,我们启动了这个节点来发布机械臂的tf。我们可以通过点击RViz上的tf选项可视化机器人的变换,如图3-11所示。
图3-11 RViz中7-DOF机械臂的tf视图
关节状态发布者软件包和机器人状态发布者软件包都是与ROS桌面安装程序一起安装的。
创建了7-DOF机械臂的机器人描述后,我们来讨论如何制作一个差速轮式移动机器人。
- 点赞
- 收藏
- 关注作者
评论(0)