news 2026/5/2 21:55:11

主从机械臂协作系统【附ROS仿真】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
主从机械臂协作系统【附ROS仿真】

博主简介:擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。
✅ 如需沟通交流,扫描文章底部二维码。


(1)UR10与AY5运动学建模与AABB碰撞检测:

采用改进DH参数法分别对UR10六轴机械臂和AY5-900七轴机械臂进行运动学建模。UR10连杆参数:d1=0.1273m, a2=-0.612m, a3=-0.5723m, d4=0.1639m, d5=0.1157m, d6=0.0922m;AY5-900因额外关节增加了a4=0.25m。利用MATLAB Robotics Toolbox建立仿真模型,通过蒙特卡洛法在关节限位内随机采样50000组构型,计算并绘制出UR10工作空间近似为半径1.6m的球体,AY5-900为1.9m。碰撞检测采用AABB层次包围盒:将两个机械臂的连杆简化为一系列长方体包围盒,每个包围盒根据连杆长度和半径动态调整尺寸,通过分离轴定理进行相交测试。仿真测试10000次随机位姿对,检测准确率100%,单次检测平均耗时0.12ms,满足实时性要求。该模型嵌入到ROS MoveIt中,用于主从机械臂协作运动时的实时碰撞规避。

(2)改进RRT路径规划与五次均匀B样条轨迹规划:

针对协作激光加工任务中主从臂需保持恒定相对位姿的要求,提出一种改进双向RRT算法(Bi-RRT*)用于关节空间避碰路径规划。算法在扩展节点时引入目标偏置因子p_bias=0.15,以一定概率直接指向目标节点;同时在距离目标节点较近区域采用动态步长,步长随距离指数衰减加快收敛。利用路径修剪消除冗余节点后,路径节点数平均减少34%。在此基础上,采用五次均匀B样条对关节路径进行插值生成轨迹,控制点间隔0.05s,确保位置、速度、加速度连续。仿真对比五次多项式和五次B样条两种插值方法,B样条的关节加速度峰峰值降低23.1%,轨迹平滑度更高,因此选择B样条作为轨迹规划算法。整个规划流程在关节空间内进行,保证避碰约束,为主从机械臂协同加工作好准备。

(3)双目视觉定位与主从协作激光加工实验:

为实现工件精准抓取,搭建了基于双目相机的视觉定位系统。使用25mm焦距工业相机,基线距离120mm,拍摄角度30度。通过MATLAB相机标定工具箱对双目系统标定,重投影误差0.18像素。采用眼在手外方式完成手眼标定,求得相机与机械臂基座间的变换矩阵。图像处理流程:采集工件图像后,先进行分段线性灰度变换增强对比度,再中值滤波(5×5窗口)去噪,利用Canny算子提取边缘,对不完整边缘采用NURBS曲线拟合补全,计算形心坐标和工件方向角。基于双目视差原理通过三维重建得到形心三维坐标,重建误差在1.5mm以内。开发了基于Python的上位机软件,控制UR10主臂抓取工件、AY5-900从臂执行激光加工。在15次抓取实验中,成功抓取14次,成功率93.3%,定位误差平均0.84mm。激光加工轨迹跟踪最大偏差0.34mm,验证了主从协作运动控制算法的正确性。

import numpy as np import roboticstoolbox as rtb from scipy.interpolate import splprep, splev # 改进DH参数法建立UR10模型 def ur10_dh(): # 标准改进DH参数表 L1 = rtb.RevoluteDH(d=0.1273, a=0, alpha=np.pi/2) L2 = rtb.RevoluteDH(d=0, a=-0.612, alpha=0) L3 = rtb.RevoluteDH(d=0, a=-0.5723, alpha=0) L4 = rtb.RevoluteDH(d=0.1639, a=0, alpha=np.pi/2) L5 = rtb.RevoluteDH(d=0.1157, a=0, alpha=-np.pi/2) L6 = rtb.RevoluteDH(d=0.0922, a=0, alpha=0) robot = rtb.DHRobot([L1, L2, L3, L4, L5, L6], name='UR10') return robot # AABB碰撞检测 def aabb_collision(boxA, boxB): return (abs(boxA[0] - boxB[0]) * 2 < (boxA[3] + boxB[3])) and \ (abs(boxA[1] - boxB[1]) * 2 < (boxA[4] + boxB[4])) and \ (abs(boxA[2] - boxB[2]) * 2 < (boxA[5] + boxB[5])) # 改进Bi-RRT*规划关节空间路径 def birrt_star(start, goal, obstacle_check, max_iter=5000, bias=0.15): nodes_start = [start]; nodes_goal = [goal] tree_start = {0: {'q':start, 'parent':None}} tree_goal = {0: {'q':goal, 'parent':None}} for it in range(max_iter): if np.random.rand() < bias: q_rand = goal else: q_rand = np.random.uniform(-np.pi, np.pi, 6) # 扩展树,连接两树(省略具体实现) # ... return path # 五次均匀B样条轨迹生成 def quintic_bspline_trajectory(waypoints, dt=0.05): tck, u = splprep(waypoints.T, s=0, k=5, t=np.linspace(0,1,waypoints.shape[0])) t_sample = np.arange(0, 1, dt) traj = np.array(splev(t_sample, tck)).T return traj # 双目视觉三维重建 def stereo_reconstruct(pt_left, pt_right, stereo_params): f, B, cx, cy = stereo_params['f'], stereo_params['B'], stereo_params['cx'], stereo_params['cy'] disparity = pt_left[0] - pt_right[0] if disparity <= 0: return None Z = f * B / disparity X = (pt_left[0] - cx) * Z / f Y = (pt_left[1] - cy) * Z / f return np.array([X, Y, Z])


如有问题,可以直接沟通

👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/2 21:53:31

在自动化Agent工作流中集成Taotoken实现多模型路由与调度

在自动化Agent工作流中集成Taotoken实现多模型路由与调度 1. 多模型Agent工作流的挑战与需求 现代AI智能体应用往往需要处理多样化任务场景&#xff0c;单一模型难以满足所有需求。开发者在构建复杂工作流时通常面临几个核心问题&#xff1a;不同任务对模型能力的需求差异显著…

作者头像 李华
网站建设 2026/5/2 21:52:28

基于MCP协议的AI编程助手本地工具集YangDuck:让AI拥有文件操作能力

1. 项目概述&#xff1a;YangDuck&#xff0c;一个为AI开发者量身打造的本地化工具集如果你和我一样&#xff0c;每天都在和Cursor、Claude Code这类AI编程助手打交道&#xff0c;那你肯定也遇到过类似的困扰&#xff1a;想快速查看一下项目目录结构&#xff0c;得在终端里敲tr…

作者头像 李华
网站建设 2026/5/2 21:49:39

保姆级教程:在STM32平台上通过SPI驱动NXP TJA1145收发器(附代码片段)

STM32实战&#xff1a;SPI驱动TJA1145收发器的完整开发指南 引言 在汽车电子开发中&#xff0c;CAN总线节点的低功耗设计一直是工程师面临的挑战。NXP的TJA1145作为专为汽车电子设计的高速CAN收发器&#xff0c;其出色的休眠唤醒特性使其成为ECU开发的理想选择。本文将手把手带…

作者头像 李华
网站建设 2026/5/2 21:49:17

线性表——单链表的增删查改操作

一.认识单链表 目录 一.认识单链表 1.什么是单链表呢&#xff1f; 2.结点的初始化 二.单链表的增删查改操作 1.单链表的头插操作 2.单链表的尾插操作 3.指定位置的前方和后方进行插入 1.在p1的前面插入ps 4.单链表的删除操作 1.中间位置删除 2.头删 3.尾删 1.什么是…

作者头像 李华
网站建设 2026/5/2 21:47:57

好口碑的草袋厂家

引言草袋是一种广泛应用的产品&#xff0c;通常用于农业、园林、建筑和防汛等领域。考虑到其日常使用的重要性以及环保特性&#xff0c;选择一家声誉好、产品质量可靠的企业至关重要。本文将根据近期市场反馈和数据来源&#xff0c;为您提供几家口碑良好的草袋厂家推荐排行榜&a…

作者头像 李华