一、概述

  本系列博文的第一篇,我们完成了双臂机器人 Rob 的建模工作;第二篇博文则详细介绍 MoveIt 模块的配置工具 Setup Assistant Tool 的使用,并配置了一个简单的使用环境。具体在程序结构上如图1所示,我们已经完成了两处红色椭圆圈出的部分,即完成了ROS Param Server (建模)的工作,同时利用系统工具配置了move_group节点。

图1

但是,到目前为止我们仍然只是在模拟环境中(Rviz)看到我们的机器人做动作,仍然没有和现实中的机器人产生关联,如何利用这个框架控制现实中的机器人则是本博文需要解决的问题。具体到程序结构上如图1所示,我们要完成绿色椭圆圈出的两个部分的工作,即将MoveIt的运动消息发送给实际的机器人,同时利用发布机器人的关节信息,实现方法如下文所述。

二、改造默认生成的 rob_moveit_config 包

 我首先是直接对上一篇博文中生成的 rob_moveit_config 包进行改造,使其满足我们的实际使用要求,具体过程如下:

1. 创建 controllers.yaml 文件。

  首先在 src/rob_moveit_pack/rob_moveit_config/config 文件夹下,新建一个文件 controllers.yaml, 这个文件是机器人控制器的配置(定义)文件,我们创建它是用于代替在这个目录下的 fake_controllers.yaml 文件的,这个控制器用于直接和我们的机器人进行交互。

  然后打开 controllers.yaml 文件然后填写以下内容:

这里我们定义了两个控制器,分别是控制右臂的 r_rob_mover 和控制左臂的 l_rob_mover ,并分别制定了两个控制器下面控制的关节名称。注意,控制器名字我们自己定义,其余部分均为ROS默认的需要的配置,关节名称需要和机器人模型文件(xacro)中的名称一致。

2. 改写 rob_robot_moveit_controller_manager.launch.xml 文件。

  在 src/rob_moveit_pack/rob_moveit_config/launch 文件加下,找到 rob_robot_moveit_controller_manager.launch.xml 文件,这个文件用于配置 MoveIt 的控制器,我们需要将MoveIt 的控制器指向我们上一步创建的控制器,此文件内容改为如下:

点击链接利用controller控制实际机器人阅读原文

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐