建立真实机械臂ROS驱动


图为UR3-rosgraph

在这里插入图片描述

UR3-nodes(only)
在这里插入图片描述
总结

一、连接&控制实际机器人,需要修改MoveIt!配置文件与launch文件:

controllers.yaml
robot_moveit_controller_manager.launch

move_group.launch ( )
demo.launch(参数fake_execution的值改为false)

二、建立机器人ROS驱动,对于MoveIt!而言,只需要有个ROS节点有两个功能:

(Plan A B C)

Plan A

预备条件:
(1)机械臂底层驱动完成
仅能使用C++语言控制机械臂的基本运动,比如控制机械臂运动到指定关节角,末端运动到指定位置和姿态,但不包括ROS才有的信息。
(2)机械臂能够按照路点运动
路点的数据结构一般是一组关节角度,比如用(j0,j1,j2,j3,j4,j5)来表示一个路点。为什么要求机械臂能够按照路点运动?MoveIt!最终发出来的控制指令实际就是一连串路点,只要能够执行这一串路点,就可以使得机械臂按照规划的轨迹运动。
(如果不具备这个执行路点的功能,可能需要转化MoveIt!发送出来的数据)
将机械臂控制指令抽象以下两个函数:
驱动函数1: add_wayPoint();//添加路点,假设你将所有即将执行的路点存在“容器”里
驱动函数2:trackMove();//执行“容器”里的路点,即按照一定规则进行插值,形成空间轨迹,让机械臂沿着轨迹运动。

具体过程:
(1)用ROS封装C++驱动程序
原来C++驱动程序,加入ROS成分 —> ROS node (…)
(2)加入action服务端代码

Plan B

1.发布关节角度/joint_states
连接实际机器人,MoveIt需从机器人当前状态开始规划,因此这个ROS驱动需要能够实时获取机器人的各个关节信息,并用/joint_states消息发布
2.接收规划结果,并下发给机器人
MoveIt!规划的结果会以一个action的形式发布,故ROS驱动应该提供一个action server,其功能是接收规划结果,下发给机器人,并反馈执行情况。
action的类型是control_msgs/FollowJointTrajectory

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值