sb老师要求,没有学过,十分简陋,有错误见谅
第一章 绪论
1.1课题背景
码垛机器人,是机械与计算机程序有机结合的产物。为现代生产提供了更高的生产效率。码垛机器在码垛行业有着相当广泛的应用。码垛机器人大大节省了劳动力,节省空间。码垛机器人运作灵活精准、快速高效、稳定性高,作业效率高。
码垛机器人系统采用专利技术的坐标式机器人的安装占用空间灵活紧凑。能够在较小的占地面积范围内建造高效节能的全自动切块成型机生产线的构想变成现实。[1]
伴随着工业自动化技术的日臻成熟,码垛机器人在医药、包装、水泥、造酒等诸多领域得到了应用。近年来,由于市场环境的不断变化,人们已经不止满足于码垛机器人简单地替代体力劳动而是在低成本、高效率、高精度等方面提出了更多的期望。因此,开展对码垛机器人控制系统的研究对于提高我国码垛机器人的设计水平,推动码垛机器人更广泛地走向市场具有重要的意义。[2]
1.2概述本课程设计主要工作
熟悉机器人学数学基础、正逆运动学、动力学、轨迹规划相关知识,并在CoppeliaSim 环境中建立一个智能码垛机器人系统,完成整个系统的开发。
1.3 介绍后续章节内容
1、在CoppeliaSim 环境中建立智能码垛机器人系统,两人组需要一台工业机器人,三人组至少两台工业机器人,码垛产品至少10个;
2、针对每种机器人,需要分析其结构,给出其D-H参数,给各关节齐次变换矩阵。验证用CoppeliaSim函数库直接得到的末端坐标和用机器人关节齐次变换矩阵得到的末端坐标是否一致;
3、可在CoppeliaSim内进行脚本语言设计,也可在CoppeliaSim外基于MATLAB、Python控制机器人。鼓励基于MATLAB、Python控制机器人;
4、采用CoppeliaSim函数库进行轨迹规划或独立重新设计轨迹规划函数,实现机器人抓取产品。需要给出各关节角度、角速度、角加速度、角加加速度曲线,以及机器人末端位置、速度、加速度、加加速度曲线。
第二章 系统方案设计
设计任务
使用两台机械臂不断从传送带上搬运物块到指定位置并且排列整齐
实验场景
我们在CoppeliaSim软件中建立智能码垛机器人系统,使用两个Franka机械臂
软件结构
使用两个Graph记录机械臂末端的速度和位置,Box为要搬运物块的复制体,ConveyorBelt会不断在insertBoxDummy点复制物块落在履带上,然后通过传感器ConveyorBelt-sensor感知物块到来然后停止履带,发出信号让Franka移动到指定位置吸附物块然后移动到dropDummy点位置防止物块
第三章 Franka机械臂运动学分析
我们使用的机械臂为Franka机械臂
我们使用vrep自带的DH传感器获得了机械臂DH参数值
七个关节运动中的坐标,欧拉角和变换矩阵
--实现传送带自动复制物块 function insertBox(insertCoordinate) local insertedObjects = sim.copyPasteObjects({box,boxDummy},0) T_last_inserted = sim.getSimulationTime() --Set the location sim.setObjectPosition(insertedObjects[1],-1,insertCoordinate) --Deposit the boxList,boxDummyList table.insert(boxList,insertedObjects[1]) table.insert(boxDummyList,insertedObjects[2]) end |
--得出关节角度并打印 function jointPosition() jointConfig = {-1.000,-1.000,-1.000,-1.000,-1.000,-1.000,-1.000} for i=1,7,1 do jointConfig[i] = sim.getJointPosition(jointHandles[i]) end print('joint:'..string.format("%.4f %.4f %.4f %.4f %.4f %.4f %.4f", jointConfig[1],jointConfig[2],jointConfig[3],jointConfig[4],jointConfig[5],jointConfig[6],jointConfig[7])) print('') end |
--实现逆矩阵计算控制机械臂移动到目标位置 function moveTo(dummyHandle) targetPos = sim.getObjectPosition(dummyHandle,-1) targetQua = sim.getObjectQuaternion(dummyHandle,-1) sim.rmlMoveToPosition(ikTarget,-1,-1,currentVel,currentAccel,maxVel,maxAccel,maxJerk,targetPos,targetQua,targetVel) end |
第四章 系统软件设计
第五章 系统测试与总结
实验结果:完成两个机械臂的智能码垛
各关节各时期的角度
抓取一个物块时机器人末端关节的角速度
抓取一个物块时机器人末端的速度曲线
抓取一个物块时机器人末端的位置