Matlab在智能采摘机械手中的应用

Matlab在智能采摘机械手中的应用 ——RB03机器人的运动空间分析及其避障规划仿真 在Matlab中用数值法对广州数控RB03机器人进行工作空间的分析,然后根据机器手参数,建立了机械手的工作空间模型。为了提高农业采摘机器人在工作空间的避障能力,实现避障行为控制,首先,以圆形包络线对采摘空间的障碍物进行C-空间建模,通过坐标变换简化障碍物空间的计算;其次,使用A*算法,通过仿真验证其有效性。 1.1广州数控RB03机器人简介 图1.1 RBO3机器人本体 表1.1 RB03机械手连杆D-H参数 关节i α(°) (mm) d(mm) θ(°) 关节角度范围(°) 1 90 155 380 0 -170~170 2 0 360 0 90 -60~150 3 90 100 0 0 -170~75 4 -90 0 365 0 -190~190 5 90 0 0 0 -125~125 6 0 0 150 0 -360~360 1.2 RB03机器人的工作空间仿真与分析 机器人工作空间是衡量机械手工作能力的一个重要的运动学指标。机器人工作空间的求解方法主要有解析法、图解法及数值法。解析法用方程表示工作空间的边界,但是表达式过于复杂,不适用于工程应用;图解法直观性强,但不太适合当主运动自由度过多时;数值法简单,可以分析任意结构形式的机器人工作空间。结合本文中的RB03机械手,下面采用数值法分析机械手工作空间。 蒙特卡洛模拟方法是数值法的一种,其主要思路是随机生成各个关节在取值范围内的离散值,然后通过运动学方程计算出末端执行器的末端点,当离散值趋于连续时,得到的末端点的集合就组成了机械手的工作空间,方法直观。利用MATLAB实现,具体步骤如下: 1) 根据各关节的取值范围,利用下式5.1可以获取各关节的随机量,其中rand函数产生N个[0,1]之间的随机数,为关节变量的最小值,为关节变量的最大值。 θi=θimin+(θimax-θimin)×rand(N,1) (5.1) 2) 将上式5.1得到的N个随机关节角度值代入到机械手的正运动学方程中,得到末端执行器的N个随机位姿。 调用画图命令,绘制工作空间,如图1.2所示。 图1.2 1.3 RB03采摘机械手的避障规划算法 当机器人移动到合适的采摘位置后,面临的问题是如何规划各个机械手的运动进行采摘。当没有障碍物时,可以采用点到点(PTP)的运动方式,此时只需要进行轨迹规划即可;但是当有障碍物时,则需要借助路径规划避开障碍物从而完成采摘任务。本节主要讨论当有前置障碍物时,利用C-空间法把障碍物映射到C-空间,然后通过A*搜索算法寻找一条避障路径的避障路径规划方法。 为了得到C-空间映射,首先进行建模。根据采摘机器人机械手的特点,其大臂、小臂以及末端执行器可简化为一个平面3R(3个旋转型关节)型串联机械手;位于采摘平面的障碍物就可以简化为:圆形障碍物,是指在采摘平面内的未成熟果实;直线段障碍物是指茎干或枝干在采摘平面上的投影,而矩形障碍物是指组成矩形多边形的茎干或枝干在采摘平面上的投影。为了简化计算,本章把障碍物模型全部简化为圆形障碍物,机械手模型各关节以中轴线建模,把其厚度w并入障碍物进行建模,简化为直线段。以大臂关节为例,如图1.3所示,大臂关节简化为长度为L1的直线段,虚线段为另一极限碰撞位姿,半径为r的阴影部分为圆形障碍物;为了补偿关节的厚度,把机械手的厚度w加入圆形障碍物的半径,R即模拟的最终用于计算的直径,以此建立障碍物模型。如此类推建立长细条的多边形障碍物或矩形障碍物,如图5.6所示,建立多个圆形障碍物进行建模,因此需要导出机械手与圆形障碍物的碰撞极限角的公式。 a圆形障碍物简化模型 b 矩形障碍物简化模型 图1.3 求出上述极限角后进行C空间障碍建模,如图1.4所示 图1.4 一个圆形障碍物在三维C-空间的映射 当建立好障碍物在C-空间的映射后,利用A*搜索算法在该空间内搜索一条从始点到终点的无障碍路径,完成避障规划。 1.4使用A*算法实现无障碍路径搜索 通过上节的计算,得出了三个关节角的碰撞区间,即可完成障碍物在C-空间的映射;建立了三维的C-空间,进行C-空间障碍的栅格化表示,以及将C-空间的栅格信息利用合适的数据结构描述后,利用A*搜索算法实现路径搜索。 A*搜索算法步骤为: 1) 确定C-空间坐标系OXYZ、初始位姿和目标位姿 2) 计算坐标变换矩阵,把初始位姿和目标位置变换到新的坐标系中 3) 在新的坐标系中实施平面A*搜索算法,计算出一系列路径点 4) 把计算出的路径点通过坐标变换矩阵的逆矩阵,反算在OXYZ坐标系中的个关节角的变量 通过坐标变换后的C-空间进行平面搜索,把搜索结果按照坐标变换逆变换返回三维C-空间的三个关节的角变量,这样大大减少了在三维搜索空间搜索的节点,减少了计算量。 图1.5 基于C-空间的障碍空间映射仿真算法 图1.6 C空间避障搜索 1.5 小结 本章节针对RB03采摘机器人的空间避障行为进行了三方面的研究:首先对其工作空间进行了分析,由于工作空间有限,为了实现有效采摘,对其适采空间进行分析和建模,提高了其采摘效率;其次进行了工作空间的避障规划建模与仿真,分别对机械手臂和障碍物模型化,建立了基于关节变量的C-空间,利用A*算法在C-空间搜索无碰撞路径,提高了其避障能力。 参考文献 [1]彭礼辉.机械臂运动学与路径规划研究[D].湖南:湖南工业大学,2012 [2]姚立健.茄子收获机器人视觉系统和机械臂避障规划研究[D].南京:南京林业大学,2008 [3]戈志勇.番茄采摘机械手运动学仿真与避障算法研究[D]. 镇江:江苏大学,2007 附录 注:本论文部分M文件 (1)机器人工作空间仿真 syms x1 x2 x3 x4 x5 x6 z1 z2 z3 z4 z5 z6 a=[];b=[];c=[];N=10000; z1=link([pi/2 155 0 380], sta ); z2=link([0 360 0 0], sta ); z3=link([pi/2 100 0 0], s

matlab根据末端位姿p求出xyz,Matlab在智能采摘机械手中的应用相关推荐

  1. matlab转换为部分分式,用MATLAB的residuez函数,求出下列各式的部分分式展开式和反变换f[n]。 说明:residuez函数...

    用MATLAB的residuez函数,求出下列各式的部分分式展开式和反变换f[n]. 说明:residuez函数 更多相关问题 需求价格弹性反映需求量与价格之间的敏感程度.( ) (2.0分) 实验( ...

  2. matlab文件序号超出511,求教一段matlab的代码 - 数学 - 小木虫 - 学术 科研 互动社区...

    不知楼主说的没法求出优化值,是什么意思.是报错还是怎么. 我也是刚接触优化,觉得楼主的错误可能是在:主函数里 A=[-1;1];的括号中间应该用逗号,而不是分号.即改为A=[-1,1]; 我对你的程序 ...

  3. matlab显示峰值点横坐标,怎么求出峰值对应横坐标问题,急

    程序 doas=[-30 -5 40]*pi/180; %DOA's of signals in rad. P=[1 1 1]; %Power of incoming signals N=10; %N ...

  4. matlab 固有频率 振型,请教如何求出有阻尼系统的固有频率及相应振型矩阵

    用矩阵形式表示方程:M*X''+C*X'+K*X=F(t) 方程实际上是六自由度系统的振动响应方程,就是说X是一个6×1的矩阵,M,C,K为质量,阻尼,刚度矩阵.而且C,K不是对角阵,各个自由度之间有 ...

  5. matlab参数数目不足lorenz,求指导,MATLAB程序,老是提示这个“未定义与 'double' 类型的输入参数相对应的函数 'genfisl'。”错误,...

    答:不要帖图,否则看不出是咋回事,要程序可调试.利用, >> help genfisl genfisl not found. Use the Help browser search fie ...

  6. matlab最小拍控制怎么求传递函数,基于Matlab 的最少拍控制系统设计

    - 计算机控制技术实验 -基于Matlab 的最少拍控制系统设计 学院:计算机科学与技术 班级: 姓名: 学号: 指导老师: 日期: 基于Matlab 的最少拍控制系统设计 一. 实验目的 学习使用 ...

  7. 数值分析方程求根实验matlab,数值分析实验之非线性方程求根(MATLAB实现)

    一.实验目的 1. 了解一般非线性方程的求根是比较复杂的事情:要讨论(或知道)它有无实根,有多少实根:知道求近似根常用的几种方法,每种方法的特点是什么. 2. 用通过二分法(区间半分法).不动点(也P ...

  8. matlab求解非线性常微分方程组,求一道用matlab编程解非线性方程组

    满意答案 a67211123t 2013.05.10 采纳率:53%    等级:12 已帮助:9981人 对于非线性方程组F(X)=0,用fsolve函数求其数值解.fsolve函数的调用格式为: ...

  9. matlab怎么求两个数的和,matlab怎么求出两个函数的交点

    matlab中,两个自变量的函数怎么求最大值(急!1) 需求:利用matlab求解二元函数y=f(x1,x2)=(339-0.01*x1-0.003*x2)*x1+(399-0.004*x1-0.01 ...

最新文章

  1. local map at cambridge
  2. oracle is ref cursor java_oracle cursor 用法总结
  3. 位域 内存 字节序_C语言中的位域、字节序、比特序、大小端(转)
  4. SQL必知必会-过滤数据
  5. python3 安装opencv_树莓派安装Python3的OpenCV
  6. DC.SetMapMode()的用法记录
  7. 地图poi数据库下载
  8. 网站域名后缀index.html的去除方法
  9. C语言——三位数的百位,十位,个位分别输出
  10. win7计算机网络连接,笔记本win7无线网络红叉电脑网络连接不可用的解决方法
  11. 反悔有门,找回word未保存或丢失文档内容
  12. openCV: 利用python和cv2绘出一个笑脸
  13. 虚拟服务器能直接识别U盘吗,虚拟云服务器u盘
  14. 山下英子与家政学员亲密接触 深度解读断舍离生活美学
  15. ​FPGA便捷开发-TCL商店(开源)
  16. 小数乘以100后精度丢失
  17. 【Elasticsearch源码】 检索分析
  18. 加速度计 陀螺仪 磁力计
  19. Win 10配置VPN代理时遇到的问题:500 Internal Privoxy Error
  20. OFDM--IDFT实现

热门文章

  1. 可视化:python绘制多组多维数据雷达图
  2. B域,M域,O域具体是指什么
  3. 这就是搜索引擎——搜索引擎索引(2)
  4. Exchange 2013 就地保留
  5. 2020年中国水利工程设施发展概况分析: 已建成5级及以上江河堤防32.8万公里[图]
  6. 【redis】-redis单线程模型讲解
  7. 使用百度云对象存储BOSnodejs上传文件
  8. 安徽科技学院 信网学院网络文化节 朱序
  9. ArrayBlockingQueue和LinkedBlockingQueue解析
  10. rfcn 共享_RFCN理解,不完整待补全