问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

机器人运动学 - 运动控制和规划的基础

创作时间:
作者:
@小白创作中心

机器人运动学 - 运动控制和规划的基础

引用
1
来源
1.
http://www.360doc.com/content/24/1007/11/49290572_1135925064.shtml

机器人运动学是研究机器人各部分之间的几何关系及其运动规律。它主要关注机器人的位置、姿态和运动轨迹,而不涉及运动过程中产生的力或能量。运动学是机器人控制和规划的基础,帮助确定如何在给定的输入,如给定角度和给定速度等情况下,实现期望的运动。

机器人运动学是什么?

机器人运动学是研究机器人各部分之间的几何关系及其运动规律。它主要关注机器人的位置、姿态和运动轨迹,而不涉及运动过程中产生的力或能量。运动学是机器人控制和规划的基础,帮助确定如何在给定的输入,如给定角度和给定速度等情况下,实现期望的运动。在某些特定的关节角度配置下,机器人可能无法达到某些位置或姿态,或者逆向运动学有无限多解,这些点称为奇异点。

机器人运动学主要两个方面

  • 正向运动学(Forward Kinematics):研究已知的关节变量,如角度和位移,如何影响机器人末端执行器的位置和姿态。通过正向运动学,计算出在给定关节角度的情况下,机器人末端的精确位置和方向。
  • 逆向运动学(Inverse Kinematics):研究如何通过已知的末端执行器的位置和姿态,求解各个关节变量。逆向运动学用于机器人控制中,使机器人末端能够到达指定的位置和方向。

机器人运动学的组成

  • 关节和连杆:机器人由一系列的关节和连杆组成,之间发生相对运动。
  • 坐标系统:每个关节和连杆都有自己的坐标系统,用于描述它们在空间中的位置和方向。
  • 变换矩阵:在机器人的每个关节处,使用齐次变换矩阵来描述关节的运动和方向。
  • 运动链:机器人的运动链是由关节和连杆组成的序列,它可以是开链(如机械臂)或闭链(如四足机器人的腿)。

机器人运动学的应用

机器人运动学在机械臂控制、移动机器人路径规划、自动化生产线中的机器人编程等领域中广泛应用。轮式底盘、履带式底盘、足式底盘机器人等不同类型的移动机器人具有各自的特点和适用场景,对其进行准确的运动学分析是实现精确控制和高效运动的关键。

轮式机器人底盘的机器人运动学

轮式底盘的运动学动关注的包括位置、速度和加速度等。两轮差速底盘轮式机器人,通过控制两个轮子的转速差来实现转向,其运动学模型可以根据轮子的半径、间距以及转速等参数来建立。四轮轮式底盘运动学分析需要考虑各个轮子的驱动力分配和转向角度。

差速底盘运动学模型

差速小车运动是由于左右轮的转速不同而形成的轨迹,差速小车通常通过控制左右轮的速度差来实现转向和移动。

运动模型的建立需要的参数包括:轮间距,即左右轮之间的距离;左右轮速度,即左轮和右轮的线速度;小车的前进速度,可近似为左右轮速度的平均值;转向半径,取决于左右轮速度的差异,当左右轮速度不同时,小车会沿着一个圆弧路径行驶。

差速小车运动状态:

  • 直线行驶,左右轮速度相等;
  • 圆弧行驶,当左右轮速度不等时,小车沿圆弧行驶;
  • 原地旋转,当左右轮速度大小相等但方向相反时,小车会原地旋转,转向半径为零。

差速小车运动控制:通过控制指令分解控制指令分解,实现通过控制左右两个轮的独立速度,使整个机器人的整体运动既满足前向速度要求,又满足转动角速度要求。从而实现各种复杂的运动路径。

四轮阿克曼小车的运动学

阿克曼轮的运动模型核心是转向机制,其设计目标是确保所有车轮在转弯时都指向共同的瞬时转动中心ICR(Instantaneous Center of Rotation),以避免轮胎侧滑,提高转向效率和稳定性。

  • 阿克曼转向几何:通过机械设计使前轮在转向时有不同的转向角,通常外侧轮的转向角小于内侧轮的转向角。这种设计基于以下原理在车辆转弯时,所有车轮的延长线都应交汇于一个点,这个点就是车辆的瞬时转动中心(ICR)。
  • 运动学模型建立:阿克曼转向几何的运动学模型可以通过几何关系推导出来,主要包括以下变量有,车辆的轴距、车辆整体的转向角、内侧和外侧车轮的转向角、内侧和外侧车轮的转弯半径、车辆的转弯半径(从车辆几何中心到ICR的距离)。
  • 运动学控制:在实际应用中,阿克曼转向运动学模型被用于设计车辆的转向控制系统,实现速度控制和转向角度控制,还有反馈控制,如利用传感器(如IMU、轮速传感器)实时监测车辆的状态,并通过反馈调整转向角度和速度,确保车辆按照预定路径行驶。

保证机器人运动控制的实时性和稳定性

保证机器人运动控制代码的实时性和稳定性是机器人编程中的核心工作之一,以下是一些实现这些目标方法

  • 使用实时操作系统(RTOS):实时操作系统可以提供确定性的时间保证,确保任务在规定时间内完成。
  • 优化任务处理方式:在多任务系统中,确保关键任务优先执行;优化中断处理程序,使其尽可能快速和高效,以减少中断响应时间;避免复杂计算,控制算法应尽可能简单,避免在实时任务中进行复杂的计算。
  • 代码优化:对代码进行优化,减少循环和条件判断;避免在关键路径上进行动态内存分配,降低出现不可预测的延迟风险;选择适合实时系统的控制算法,如PID控制。
  • 通信协议优化:使用高效的通信协议,减少数据传输时间;减少非关键信息对带宽的占用。
  • 硬件选择:选择高性能的处理器和适合实时控制的硬件组件。

ROS中的机器人运动控制实现

ROS 中运动学正解和逆解的实现

  • 正解/正运动学模型(forward kinematic model):是将获得的机器人底盘速度指令/cmd_vel转化为每个车轮的实际速度。
  • 逆解/逆运动学模型(inverse kinematic model):是根据电机编码器获得的每个车轮速度计算出机器人底盘速度,从而实现航迹推算。

ROS中常用的运动学工具

ROS提供了丰富的工具和库用于处理机器人运动学问题

  • TF变换库:TF库用于跟踪多个坐标系之间的变换,例如机器人基座、各个关节、末端执行器等。
  • MoveIt!框架:ROS中用于机器人操作框架,包含了运动规划、碰撞检测、逆向运动学求解等功能。如MoveIt!帮助解决逆向运动学问题,生成机器人从起始位置到目标位置的运动路径。
  • URDF(Unified Robot Description Format):URDF文件用于描述机器人的模型,包括关节、连杆和它们之间的关系。
  • KDL(Kinematics and Dynamics Library): KDL是一个用于计算机器人运动学和动力学的库,支持正向和逆向运动学求解。

机器人运动学在ROS中的实现步骤(以有机械臂的机器人为例)

  • 定义机器人模型:比如可以使用URDF描述机器人模型,定义了机器人各个部分的物理和几何属性,如质量、关节位置、连杆长度等。
  • 初始化TF树:使用TF库初始化机器人的TF树,确保可以在各个坐标系之间进行转换。这对于正向和逆向运动学计算至关重要。
  • 正向运动学计算:使用TF库计算从基座到末端执行器的变换,得到末端执行器的当前位置。
  • 逆向运动学求解:使用MoveIt!或KDL库来解决逆向运动学问题,确定为了达到某个目标位置所需的关节角度。
  • 运动规划和控制:结合正向和逆向运动学,使用MoveIt!进行路径规划,并控制机器人沿着规划好的路径运动。

仿真与调试

使用Gazebo等仿真工具,在虚拟环境中测试和调试运动学算法,在虚拟环境中遇到的问题,必然会在实际环境中以更复杂的形式出现。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号