< >
Home » ROS探索总结 » ROS探索总结-60.搭建仿真环境一样玩转ROS机械臂

ROS探索总结-60.搭建仿真环境一样玩转ROS机械臂

ROS探索总结-60.搭建仿真环境一样玩转ROS机械臂

说明:

  • 本章介绍如何搭建仿真环境一样玩转ROS机械臂

正文

请输入图片描述

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

请输入图片描述

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

请输入图片描述

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

请输入图片描述

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

请输入图片描述

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

请输入图片描述

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

请输入图片描述

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

请输入图片描述

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

请输入图片描述

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

请输入图片描述

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

请输入图片描述

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

请输入图片描述

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

请输入图片描述

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

请输入图片描述

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

请输入图片描述

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

请输入图片描述

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

请输入图片描述

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

请输入图片描述

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

请输入图片描述

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

请输入图片描述

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

请输入图片描述

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

请输入图片描述

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

请输入图片描述

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros探索总结