0
点赞
收藏
分享

微信扫一扫

遨博机械臂——ROS通讯机制


文章目录

  • ​​知识目标​​
  • ​​1. 遨博机械臂SDK二次开发接口​​
  • ​​2. 机械臂MoveIt!低级控制器配置​​
  • ​​3. aubo ROS中间件通讯机制​​

知识目标

  • 学习遨博机械臂SDK开发常用接口;
  • 学习MoveIt!功能包中机械臂控制器的配置通用流程;
  • 学习遨博ROS驱动与底层SDK与上层move_group之间的通讯机制。

1. 遨博机械臂SDK二次开发接口

在ROS系统下与真实机械臂进行通讯,需要借助SDK提供的二次开发接口。AUBO机械臂提供了非常多种类的二次开发接口,具体包括C++、C、python等多种语言的SDK,这些SDK可以在官网进行下载。

以C++SDK为例, 下面介绍下API接口在ROS中常被调用的相关接口,其他接口介绍详见源码“aubo_driver/serviceinterface.h”头文件。

遨博机械臂——ROS通讯机制_自动驾驶


遨博机械臂——ROS通讯机制_机器人_02


遨博机械臂——ROS通讯机制_机械臂_03

2. 机械臂MoveIt!低级控制器配置

使用aubo关节控制器可以实现通过FollowJointTrajectory-Action类型的action消息来控制模型运动,但是当需要将其与MoveIt!规划出的结果发给AUBO关节控制器时,这两者之间需要一个连接的接口,该接口以插件形式提供,即为moveit_simple_controller_manager,这个manager提供了FollowJointTrajectoryAction接口,将规划的结果以action的形式发布。

接下来讲解如何配置相关接口文件。

遨博机械臂——ROS通讯机制_自动驾驶_04


(1)YAML配置

要创建的第一个文件是YAML配置文件(调用它controllers.yaml并将其放在aubo_e5_moveit_config MoveIt机器人配置包的目录中)。这将为您的机器人指定控制器配置。这是一个示例文件,用于为其配置FollowJointTrajectory动作控制器。

遨博机械臂——ROS通讯机制_二次开发_05


(2)FollowJointTrajectory控制器接口

参数是:

遨博机械臂——ROS通讯机制_机械臂_06


(3)可选的允许轨迹执行持续时间参数

遨博机械臂——ROS通讯机制_二次开发_07


(4)ROS Control控制器启动文件

遨博机械臂——ROS通讯机制_机器人_08

3. aubo ROS中间件通讯机制

在上一步中MoveIt 作为Action Client将路点信息发送出去。aubo_controller功能包中的aubo_joint_trajectory_action节点实现Action Server功能获取该信息,发布到joint_path_command主题。

aubo_robot_simulator节点订阅joint_path_command主题信息,并通过moveItController_cmd主题将MoveIt 发布的机械臂路点信息发布出去。

遨博机械臂——ROS通讯机制_自动驾驶_09


aubo_driver功能包向下连接真实的机械臂控制器,设置机械臂的运动参数,订阅moveItController_cmd主题消息。定时器每0.1秒查询是否有路点信息(关节角数据),如果有,则通过底层API函数robotServiceSetRobotPosData2Canbus()向机械臂控制器发送MoveIt为机械臂计算出来的路点信息(每个关节的角度值)。aubo_driver功能包同时也获取机械臂的真实状态,并将这些参数向上发送给move_group(MoveIt!)、rosout、aubo_robot_simulator、robot_state_publisher、RViz等需要获取该消息的节点。

遨博机械臂——ROS通讯机制_自动驾驶_10


举报

相关推荐

0 条评论