机器人学笔记
导论
导论
- 描述刚体状态
- 平面
- 自由度 DOF:x,y;旋转
- 3 DOF
- 空间
- DOF:x,y,z;绕x,y,z轴转动
- 6 DOF
- 平面
- 整合表示
- 在刚体上建立frame:body frame
- 移动:由body frame 的原点位置判定
- 转动:由body frame 的姿态判断(相对于world frame)
- 运动状态
- 利用各个DOF的微分,将位移和姿态(displayment/orientation)转换到速度和加速度(角)等运动状态
移动
- 以vector P 来描述body frame 原点B相对于world frame A 的状态
- px py pz 三个分量
转动
旋转矩阵
描述B相对于A的姿态
- ${}^{A}{B}R={}^{B}{A}R^{T}$
- ${}^{A}{B}R^{T}{}^{A}{B}R=I{3}(单位矩阵)={}^{A}{B}R^{-1}{}^{A}_{B}R$
- ->${}^{A}{B}R^{T}={}^{A}{B}R^{-1}(orthogonal\,matrix\,正交矩阵)={}^{B}_{A}R$
- always invertible; 2. columns: orthonoraml basis:length=1,mutually perpendicular
- 旋转矩阵9个数字,但上述条件置入了6个限制,所以R只有3个DOF,同前述空间中转动有3个DOF
转换向量坐标
${}^{A}P={}^{A}_{B}R{}^{B}P$
描述旋转状态
将vector 在同一个frame中进行转动
${}^{A}P’=R(\theta){}^{A}P$
旋转矩阵
与转角
旋转矩阵-3次旋转角度-3 DOF
两种拆解方式
- 方向固定不动的转轴旋转:fixed angles
- 对「转动的frame当下所在」的转轴方向旋转:Euler angles
Fixed Angles
- X-Y-Z angles->rotation matrix
- rotation matrix->angles
Euler Angles
Z-Y-X angles->rotation matrix
欧拉角旋转在每一步都改变了参考系,因此每个旋转矩阵作用在已经旋转过的坐标系上。固定角旋转则是在同一个固定参考系中进行的,因此每个旋转矩阵作用在原始的固定坐标系上。
Z-Y-Z angles->rotation matrix
rotation matrix->angles
总结
- 12种Euler/fixed 3x2x2
- 共12中转动拆解方式(E正转=f反转)
Mapping
- 整合移动和转动
- Homogeneous transformation matrix
- ${}^{A}{B}R{X,Y,Z}$
Operator
- $R_{K}(\theta)$
总结
transformation matrix三种用法:
- 描述一个frame相对于另一个frame的空间状态
- 将point由某一个frame的表达转换到另一个frame来表达
- 将point(vector)在同一个frame中进行移动和转动
Transformation Matrix 运算
- 连乘
反矩阵
求位置相对关系
- ${}^{U}{D}T={}^{U}{A}T{}^{A}{D}T={}^{U}{B}T{}^{B}{C}T{}^{C}{D}T$
- IF ${}^{C}_{D}T$ unknown
- $=({}^{U}{B}T{}^{B}{C}T)^{-1}{}^{U}{A}T{}^{A}{D}T$
- $={}^{B}{C}T^{-1}{}^{U}{B}T^{-1}{}^{U}{A}T{}^{A}{D}T$
- IF ${}^{B}_{C}T$ unknown
- $={}^{U}{B}T^{-1}{}^{U}{A}T{}^{A}{D}T{}^{C}{D}T^{-1}$
- 总结
- B对A的转轴旋转,premultiply,类似fixed angles
- B对B的转轴旋转,postmultiply,类似euler angles
顺向运动学
导论
手臂几何描述
- joint
- 对某特定axis进行rotation或translation
- link
- 连接joint的杆件,刚体
- link0 地杆 不动的
- link1,2,从下到上
- 描述
- 旋转joint和移动joint
D-H表示法 Denavit-Hartenberg
- 建立frame
Link Transformation
Actuator, Joint, and Cartesian Spaces
- Joint space , Cartesianspace
- ${}^{W}P<-\theta{1}…\theta{n}$ Forward Kinematics
- ${}^{W}P->\theta{1}…\theta{n}$ Inverse Kinematics
- Actuator space, Joint space
- $\theta{joint}=\theta{motor}*N(齿轮比)$
逆向运动学
导论
reachable workspace:手臂可以用一种以上的姿态到达的位置
dexterous workspace:手臂可以用任何姿态到达的位置
subspace: 手臂在定义头尾的𝑇所能达到的变动范围
多重解
- 解析法
- 代数,几何
- 数值法
Pieper’s Solution
步骤一:确定手腕中心点的位置
- 利用末端的目标位置和姿态,反推出“手腕中心点”的位置。
- 只需要前三个关节来达到这个点。
步骤二:求解前三个关节角度(θ1、θ2、θ3)
- 这是一个三连杆(RRR)逆向运动学问题,通常可以用几何法或代数法解析求解。
步骤三:求解后三个关节角度(θ4、θ5、θ6)
- 有了前三轴的解后,末端执行器的方向就只由后三轴决定。
- 通过旋转矩阵,将末端目标姿态分解到后三轴,通常用欧拉角(如Z-Y-Z)或四元数等描述。
物件取放任务
->Pieper’s Solution
机械手臂轨迹规划
导论
smooth path: continuous with first derivative
Joint Space 下的轨迹规划
- 步骤
- 定义T相对于G的initial,via,final points
- inverse kinematics:将手臂末端点状态转换到joint状态
- 对所有joints规划smooth trajectories
- forward kinematics:将joint状态转换到手臂末端点状态,将手臂末端点再Cartesian space下轨迹的可行性
Cartesian Space 下的轨迹规划
步骤
定义T相对于G的initial,via,final points
对所有手臂末端点状态规划smooth trajectories
- 将规划好手臂末端点状态的轨迹点转换到joint状态,检查joint状态在Joint Space 下轨迹的可行性
Cubic Polynomials
三次多项式
多段Cubic Polynomials
每段的边界条件
- 每一段的起止点位置要和实际的关键点吻合。
- 相邻两段的连接点(即中间点)处,要求:
- 位置连续(轨迹不跳跃)
- 速度连续(运动不突变)
- (有时还要求加速度连续,但三次多项式只能保证前两项)
General Cubic Polynomials
- 每段有4个系数(a0, a1, a2, a3),N段就有4N个未知数。
- 通过以下条件来列方程:
- 位置连续:每个点都必须被轨迹准确经过(2N个条件)。
- 速度/加速度连续:中间点的速度、加速度要连续(一般2(N-1)个条件)。
- 两端条件:还需要2个额外条件,通常是设置起点和终点的速度或加速度。
Linear Function with Parabolic Blends
Only linear function;Linear function with parabolic blends;Only parabolic functions
多段Linear Function with Parabolic Blends
参数设置
- 可以选择“给定加速度算时间”或“给定时间算加速度”
这种方法有时轨迹不会严格经过所有给定的via points(中间点),如果必须经过,可以通过设置“伪via点”来调整。
Linear Function with Parabolic Blends注解
这种方法轨迹未必严格经过所有中间点;
若要求严格经过,需调整via点或用伪via点;
轨迹计算要分清每段类型;
受实际机械臂能力和空间限制影响,轨迹规划需结合实际情况灵活处理。
Cartesian Space下轨迹几何下限
中间某些区域无法到达,轨迹需要高加减速,针对特定的起始和终点姿态,无法产生连续轨迹