机械臂的运动控制

前言:近年来,随着服务机器人的兴起,机械臂也正走进我们的日常生活,近年来出现了一些低成本的、小型的、“桌面版”的机械臂的产品,相信这将是服务机器人的一个重要方向!机械臂由很多连杆(金属杆),和关节(电动轴枢)构成。典型的机械臂有一个基座、一个末端执行器(例如夹钳、吸盘或毛笔啥的)和它们之间的六个连杆和关节,这样机械臂可以在其活动范围内实现任意的三维位置和朝向(位姿)。目前DoBot的控制还是直接控制各个关节的电机,这个比较简单,但其实你真正需要的是将末端的夹持器移动到期望的位置,如拿起远处的某一物体。但问题来了,1—5号电机一个个靠手动控制,极其繁琐啊!现在一个解决办法,第一步,操作者抓着机械臂的末端,放到期望位置上,并在控制台按下操作按钮记录下此时机械臂的位姿,按顺序记录的一系列位姿随后用作机器人编程的参考点,例如捡——放任务中的重复性动作。机械臂会记忆住关节的角度和位置,并自动编程,然后再重复实现。给定期望空间位置,若想通过程序计算出机械臂的相应的运动指令,则需要解决以下两个基本问题:
1. 给定一些列关节的状态,如何确定机械臂末端操作器的位姿?
这可由前向运动学解决。
2. 为达到机械臂末端操作器的一个位姿,需要如何设置关节的角度?
这可由逆向运动学解决。
当然,机械臂运动学有很多更为复杂的问题,在这不多讨论,以下是两个常见的应用例子:
l 如何让末端操作器沿直线运动?(运动方程式)l 如何让末端操作器给物体施加特定的力?(雅克比矩阵)现在有很多机械臂的编程语言和库软件包,并且其数目在持续地增长。程序语言中传统的有AL、VAL-II,以及函数式语言。另一种是库软件包,可以用来与C/C++或Matlab进行链接。下面我们将专门介绍一款基于ROS的功能强大的机械臂软件Moveit!
2. ROS编程
我们希望用机器来去完成一些简单枯燥的工作。但是机械臂设计复杂 , 运动学方程、程序编写复杂,为简化设计可使用一些已有的成熟工具。如MoveIt!,它是ROS中机器人进行移动操作的一套工具。主页(MoveIt! Motion Planning Framework)包含使用MoveIt!的文档、教程和安装说明以及多种机械臂(或机器人)的示例演示,如一些移动操作任务,包括抓握、拾取和放置或简单的逆向运动学的运动规划。
这个库包含一个快速的逆运动学解算器(为运动规划单元的一部分)、先进的操作算法、三维感知抓握(通常以点云的形式)、运动学、控制和导航等功能。除了后台功能,它还提供了一个易于使用的图形用户界面(GUI)通过MoveIt!和RViz插件配置新的机械臂,使用户能以直观的方式进行运动规划任务的开发。
体系结构的中心是move_group单元。其主要思想是,首先需要定义由关节和其他元件所构成的群组(group),然后使用运动规划算法执行移动操作。这类算法考虑与物体交互的场景以及该群组关节的特性。
MoveIt!为我们提供了一类使用规划求解逆运动学模型(IK)进行机械臂运动规划的非常简单和简洁的工具,以及便于使用的丰富文档,但鉴于该体系结构的复杂性,但只有当正确理解了MoveIt!、机器人的传感器和执行器之间所有的不同相互作用时,才能正常工作。
3.未来

为了能更好的玩耍机械臂,我们还需要深入学习高科技。。。。。。
l 增加视觉传感器控制速度
人类和动物在现实中通常只进行非常小的提前规划,主要依靠高度发达的智能反馈机制,使用感觉信息纠正错误和补偿扰动。例如打网球,玩家不断观察球和球拍,调整他的手的运动,最终在空中接球。这种反馈快速、高效、至关重要的是,可以纠正误差或意想不到的扰动。机器人使用视觉传感器得到的图像作为反馈信息,构造机器人的位置闭环反馈,又称为视觉伺服。近年来,视觉伺服控制系统一直是机器人研究领域的热点课题。从利用信息方式的不同,可以将视觉伺服系统分为两类:一是基于位置的视觉伺服系统(Position-Based Visual Servo system,PBVS),一种是基于图像的视觉伺服系统(Image-Based Visual Servo system,IBVS)。根据摄像机位置的不同,视觉伺服可以分成全局视觉和局部视觉(eye-in-hand)两种。全局视觉的优点是视野较宽,缺点是存在分辨率低和目标遮挡问题;而局部视觉的特征与全局视觉恰好相反。因此,有人提出全局视觉和局部视觉相结合的视觉伺服控制方法。视觉伺服控制的性能与摄像机和机器人的标定误差紧密相关,而模型的准确标定是一项复杂的工作。因此视觉伺服控制的无标定模型引起了广泛关注。其主要优点是不需要知道机器人模型和标定摄像机参数,具有自适应能力,能够在线估计雅可比矩阵。

你可能感兴趣的:(ROS)