APP下载

基于ROS的机器人等离子切割板坯毛刺运动规划

2018-10-17许四祥江天琦朱宝林

关键词:笛卡儿板坯毛刺

郝 奇,许四祥,江天琦,朱宝林

(安徽工业大学 机械工程学院, 安徽 马鞍山 243000)

钢铁行业定尺大型连铸坯采用数控火焰切割机,火焰切割后熔融的钢液向下流动导致板坯底部粘连有一条呈冰柱状的毛刺,严重影响轧钢的表面质量和轧辊的寿命。而现有的刮刀式去除法和锤刀式去除法都具有去毛刺效率低和刀具寿命低的缺点,两者都无法满足工业现场的需要。许四祥等[1]提出了一种等离子去板坯毛刺的新方法,经实验表明:等离子弧切割不仅速度较快而且不会出现二次挂污,无论去毛刺质量或效率都得到很大的提升。在此基础上,笔者通过ROS操作系统实现了机器人等离子切割板坯毛刺的运动规划及离线仿真,为机器人等离子切割板坯毛刺开源平台的开发提供技术支持。

1 ROS控制系统总体设计

1.1 MoveIt控制架构设计

ROS机械臂控制系统基于MoveIt架构及其插件,包括控制系统核心MoveGroup类,这个类提供简易方式实现大部分功能,比如:设置关节或目标姿态、创建行为规划、移动机器人、在环境中增加对象或给机器人增加或减少对象[2-5]。除了核心MoveGroup类,还包括ROS参数服务器接口、机器人控制器接口、Python的moveit_commander接口、传感器接口和RVIZ插件接口,其系统结构如图1所示。

图1 MoveIt控制系统架构

参数服务器加载urdf、config和srdf机器人配置信息;通过机器人控制器接口MoveGroup类与机器人控制器接口交换JointTrajectoryAction的关节运动数据信息;机器人传感器是为了获得JointState反馈的关节信息,便于MoveGroup调用运动规划算法求得正逆运动学解和生成运动轨迹。

1.2 MoveIt流程设计

MoveIt控制机器人轨迹规划流程如图2所示。第1步:构建URDF,然后在RVIZ下进行检验。第2步:使用MoveIt的Setup_Assistant生成配置文件,并在其中添加机器人控制器插件。第3步:MoveIt控制机器人进行运动轨迹规划,包括启动配置文件和Python运动规划程序,最终分析运动规划结果。

图2 MoveIt轨迹规划流程

2 机器人URDF的构建

URDF(universal robotic description format)是统一描述机器人仿真模型设定的XML语言[6-8]。URDF代码主要定义了link和joint,其中joint中包含关节名称、关节类型、坐标值、子父系连杆和limit限位信息,而link中包含inertial惯性、collision碰撞检测和visual可视化信息。

采用SolidWorks绘制了六自由度机器人模型,其中每个连杆都要设定如图3所示的coordinate参考坐标系和axis旋转轴,然后通过sw_urdf_exporter插件顺序定义所关节的子父系link、参考坐标系、旋转轴和限位参数,即可导出URDF。

得到URDF文件以后,在Ubuntu终端使用urdf_to_graphiz命令进行图形解析。如果语法结构合理,URDF会生成一个pdf文件,再使用evince命令得到如图4所示的包含位姿的关节连杆链形图。如果关节连杆关系定义有误,使用gedit命令对URDF文件进行修改。

图3 机器人零部件

图4 关节连杆链形

RVIZ可视化工具是基于MoveIt架构的插件,用于生成机器人的场景以及与机器人直接交互。验证URDF模型语法和结构之后,启动joint_state_publisher节点,发布sensor_msgs/JointState信息,调用use_gui:=true控制模型关节运动,检查模型有无干涉和关节限位,进一步配置和修改URDF。RVIZ结果如图5所示。

图5 RVIZ可视化

3 机器人功能配置

3.1 MoveIt配置功能包

MoveIt控制系统功能的实现来源于其配置,在得到合理的URDF以后,需要使用MoveIt的setup_asssistant来生成特定的配置文件,其具体流程如图6所示。

图6 setup_assistant配置流程

图6中:碰撞矩阵列出不可能发生碰撞的连杆,这样在运动规划时可节省碰撞检测时间。添加规划组时,定义由base_link到gripper_link的规划组arm,选择KDL工具求解正逆运动学解。添加预备位姿会使后面的操作更方便,配置后存储在srdf文件中。

3.2 添加控制器插件

添加arbotix控制器插件,首先要在launch启动文件中添加arbotix启动节点,在config文件夹中修改joint_limits.yaml机器人关节位置、速度和加速度参数,修改controller.yaml关节电机配置信息。

3.3 启动机器人系统

运行一个launch文件启动配置的所有插件、节点和内置启动文件,其中主要包括4个节点,rviz、arbotix、robot_state_publisher和move_group节点。move_group激活一系列主题和服务来处理运动学动力学、规划场景、碰撞检测和关节轨迹控制。运行launch启动机器人系统,rviz显示加载的机器人及其场景,终端显示加载的控制参数。

4 基于机器人切割任务的轨迹规划

4.1 轨迹规划任务要求

本研究背景是机器人等离子切割板坯毛刺,按照任务要求设计运动流程,RVIZ可视化轨迹如图8所示:首先机器人回到初始位姿home,之后伸展至板坯远端a点,同时末端执行器到达切割位姿(切割板坯毛刺要求末端执行器6轴水平且绕Z轴转动45°)。然后末端执行器切割点贴近板坯面到达b点,然后直线切割到c点,切割过后末端执行器离开板坯小段距离,最后机器人回到home初始位姿。

4.2 基于Python的笛卡儿轨迹规划原理及方法

运动规划采用笛卡儿空间规划为末端执行器设定目标位姿,并限制轨迹的位置和方向。笛卡儿空间的路径规划就是计算机器人在给定路径点处的位姿,其直线插补公式如下所示:

对于位置插补,设定初始位置为P1,步长为a,目标位置为P(i):

P(i)=P1+a×i

(1)

对于姿态插补,设定初始姿态为R1,目标姿态为R2,调整姿态为R:

(2)

同时利用旋转变换求取等效转轴的转角,进而求取机器人第i步相对于初始姿态的调整量。在笛卡儿空间中,将位置和姿态整合,进而求得第i步的位姿矩阵:

(3)

运动规划采用MoveIt调用OMPL(open motion planning library)的LBKPIECE随机采样规划算法[9-11]。路径中如果不施加约束,Moveit生成的 TCP路径将是曲线,如图8中的初始位姿到a点,而在机器人切割板坯工作过程中要求有直线切割,如图8的b点到c点。因此,通过在笛卡儿路径规划中引入一系列路径点的方法来限制末端执行器轨迹的位置和方向。笛卡儿直线运动规划方法的部分Python代码如下:

waypoints=[] #初始化一个空列表

if cartesian: waypoints.append(start_pose) #添加当前位姿到列表

vrpose=deepcopy(start_pose)

vrpose.position.y-=1.5 #设定板坯宽度方向另外一点的位姿

if cartesian: waypoints.append(deepcopy(vrpose)) #添加位姿到列表

else: arm.set_pose_target(vrpose) #笛卡儿参数为false,设定目标点位姿

arm.go() rospy.sleep(1) #立即移动机器人并休息1s

if cartesian: fraction=0.0 max=50 atmp=0 #设定计数器

arm.set_start_state_to_current_state()

while fraction<1.0 and atmp

(plan,fraction)=arm.compute_cartesian_path(waypoints,0.001,0,True) #设定笛卡儿路径计算函数的参数

atmp+=1 #计算下一个路径点位姿

4.3 运动规划结果

RVIZ显示如图7所示,黄色机器人代表初期导入的模型,白色表示初始和最终的home位姿,左上角的终端窗口可以看到OMPL成功调用LBKPIECE算法生成运动轨迹,左下角终端输出机器人6轴的位置、速度和时间(PVT)数据,这个数据通过JointTrajectoryAction话题传送给机器人底层控制器。机器人末端执行器的轨迹如图8所示,全程轨迹符合程序代码设计的期望。通过ROS工具rqt_plot添加终端joint_states话题数据,实时监控各个关节随时间变化曲线,具体如图9所示,整个运动过程机器人各个关节都能实现平滑的轨迹过渡,最后通过终端rosbag命令保存运动规划和离线仿真PVT数据包。

图7 RVIZ机器人运动过程

图8 末端执行器轨迹

图9 机器人各关节角度随时间变化曲线

5 结束语

在ROS中构建了URDF模型、RVIZ可视化检验、配置及启动MoveIt控制系统,设计了Python运动规划程序执行等离子切割任务、rqt_plot可视化分析运动轨迹。通过上述工作流程,在ROS中实现了机器人等离子切割板坯毛刺的运动规划及离线仿真,全程轨迹符合程序代码设计的期望。该研究方法便捷有效,为机器人等离子切割板坯毛刺开源平台的开发提供技术支持,对工业机器人在ROS下的应用研究有着重要的科学意义。

猜你喜欢

笛卡儿板坯毛刺
板坯连铸机结晶器在线调宽技术的应用
阀芯去毛刺工艺研究
邯钢2250mm热轧厂报废板坯再利用的研究与应用
一种铸铁钻孔新型去毛刺刀具的应用
异步凸度轧制对AZ31镁合金板坯损伤抑制分析
一种筒类零件孔口去毛刺工具
虚无与无所谓
——笛卡儿自由意志理论探析
笛卡儿会下棋吗
笛卡儿与平面直角坐标系
可抑制毛刺的钻头结构