最新消息:

ROS探索总结(62)– 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

ROS1/一代机器人系统 少儿编程 2018浏览 0评论
ROS探索总结

本文转载自古月居,原作者古月,原文链接:https://www.guyuehome.com/2839。

大家好,这里是《ROS机械臂开发:从入门到实战》的第五讲——搭建仿真环境一样玩转ROS机械臂,我是主讲人胡春旭。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

本讲我们将从以下三个部分进行讲解。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

首先是ROS中针对控制器功能的ros_control。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

在应用层面,ROS中有Navigation、SLAM、MoveIt!等众多功能,但这些功能输出的速度轨迹到底该如何与真实机器人结合,这是很多ROS开发者的疑惑,ros_control就是为实现这里的控制中间件而诞生的。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

ros_control提供了一系列针对控制器的功能,由Controller Manager管理众多控制器,控制器内的主要功能是基于PID的闭环控制。为满足不同硬件的扩展,ros_control还设计了一个硬件抽象层,将软件算法和硬件接口剥离。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

ros_control提供了常用的控制器,如位置控制、速度控制、力控制,还有一个虽然没有控制功能,但依然称为controller的关节状态控制器,完成机器人关节状态的周期反馈。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

将模型放入Gazebo仿真之前,还需要确认或添加以下模块。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

首先检查模型中的每个link是否都添加了惯性参数和碰撞属性。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

然后为每个运动的joint配置传动装置,传动装置可以理解为是电机+减速机,这里我们为机械臂的六个关节配置了位置控制接口的传动装置。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

为了将模型的传动装置转起来,还需要添加gazebo中的控制器插件,具体参数通过后续的讲解添加。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

确认以上内容后,就可以把模型放置到仿真环境中了,使用如下launch文件加载模型到Gazebo中。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

运行仿真环境后,可以看到机械臂已经成功加载到Gazebo中,但此时的机械臂还无法运动。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

第三个部分,我们就来介绍如何让机械臂动起来。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

在动之前,我们应该了解MoveIt!控制机械臂的整体架构,大家可以参考下图,这也是我们系列课程最重要的一页PPT,理解了这张图才能更好的将MoveIt!应用于真实机器人/仿真的开发。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

MoveIt!+Gazebo仿真架构与上图一致,重点是完成控制接口两端的Follow Joint Trajectory、Joint Trajectory Controller、Joint State Controller配置。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

先来配置Gazebo端的Joint Trajectory Controller,这是action通信的server端,其中的关节名称必须要与机器人模型中的joint名称一致,并通过launch文件加载配置参数并启动控制器。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

然后是Joint State Controller的配置,以50Hz的频率发布机器人的关节状态。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

最后是MoveIt!端的Follow Joint Trajectory,作为action通信的client端,将Moveit!规划好的轨迹发给Gazebo。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

以上配置的各种controller,通过如下launch文件一次启动。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

配置完成后,就可以使用如下命令启动仿真系统了,会同时打开Gazebo和MoveIt!界面。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

通过MoveIt!控制机械臂运动规划,Gazebo中的机械臂也将同步运动。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

我们还可以通过话题消息看到MoveIt!规划得到的轨迹数据,轨迹点使用关节空间下的速度、位置、加速度进行描述。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

以上就是本讲的内容概要,详细讲解过程和操作视频请见具体课程

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

更多精彩,欢迎大家关注“古月居”。

ROS探索总结(六十四)—— 古月私房课 | 搭建仿真环境一样玩转ROS机械臂

您必须 登录 才能发表评论!