3.4机器人运动控制
MoveIt !可以通过运动规划接口完成运动规划工作,运动规划的函数是通过由move_group节点提供的ROS活动或服务实现相互之间的通讯。运动方案要求采用确定的轨迹插值方法运动到给定的位置,以及包含是否进行机器人的碰撞检查,为指定运动规划添加路径约束等信息,例如位置限制,限制连杆在的空间区域内的位置;定向约束,限制连杆的取向在规定的侧倾,俯仰,偏航限度内;关节限制,限制关节角度运动的上下限值等。然后该move_group节点将根据运动计划的要求生成所需的轨迹。此轨迹将所控制的移动组移动到所需的位置。
3.4.1消息类型的选择
ROS主节点与码垛机器人的关节运动节点之间通过消息进行通讯,其消息类型一方面要满足使用要求,另一方面要具有通用型,这样不仅可以提高系统程序的稳定性,在ROS中稳定运行,而且可以实现代码的共享与移植,方便其他研究人员的使用。
该码垛机器人的定义特征是,它的各个关节是转动的,它被限制固定的地面而不能给移动。更具体地,因为它的运动学构造,描述机器人末端的某一个位置,不仅需要表示x轴、y轴、z轴表示位置,还需要表示运动姿态。
通过关节轨迹跟踪消息可以订阅和发布码垛机器人的关节运动状态,其消息的数据格式,显示如图3-16所示。可以看出通过控制各个关节位置、速度、加速度以及力的变量矩阵,确定一条跟随时间变化的运动轨迹。关节状态消息数据格式,显示如图3-17所示,可以直观的看出,通过该消息接口可以得到当前的每个关节位置、速度以及力的参量。
3.4.2关节控制与启动文件的配置
在ROS中建立了虚拟样机与仿真环境后,需要对机器人模型进行运动控制实现其特定的运动,需要配置相应的控制器插件,ROS中提供了arbotix功能包,该控制器使用ROS的Fo1lowJointTraj ectoryAction运动功能去按照规划的轨迹运动并且确保在给定的误差范围内运行,使用GripperCommandAction运动功能去控制机器人末端操作手。为此需要设置配置文件与该接口进行通讯,需要建立控制器包以及相关运动功能包、话题之间的联系。
第一,创建关节控制文件,并且保存为yaml文件格式,该文件包含控制器需要控制的所有关节名称,并且按照运动链的顺序填写,包括腰部旋转关节、大臂旋转关节、小臂旋转关节、小臂末端旋转关节以及腕部旋转关节,并且使用给所控制的单元命名,以及与其相关联的运动功能包名称与信息类型。
第二,需要创建MoveIt!控制器管理者的启动文件,该文件设定相关的参数。去寻找该控制器插件,以及加载yaml控制文件来设置独立的控制参数。
第三,MoveIt!节点的启动。首先,需要加载统一的机器人描述格式URDF文件,读取机器人模型的相关信息;然后驱动ArbotiX仿真控制器以及所需要的配置参数;其次,运行独立的机器人末端操作手控制单元;然后发布机器人的状态信息可用于机器人三维仿真环境中的运动;最后加载机器人问题诊断模块的监控单元,监控码垛机器人的运行状态,并将运行中出现的问题实时显示在命令终端。