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!规划得到的轨迹数据,轨迹点使用关节空间下的速度、位置、加速度进行描述。
- 以上就是本讲的内容概要,详细讲解过程和操作视频请见具体课程。
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号