在MATLAB命令行窗口输入
>>roblocks
出现模块库,如下图:
目录
(一)Toolbox function:
1.1 SE3 operations三维空间中的操作
1.2 SE2 to SE3 二维空间转化到三维空间的操作
1.3 Trajectory generation轨迹生成
1.4Vector utility向量的操作
1.5Matrixutility矩阵的操作
1.6 Spacial velocity空间速度的操作
(二)RobotArm:
2.1 Kinematics运动学
2.2Velocity Kinematics(Jacobians)速度运动学(雅克比矩阵)
2.3Rigid-body dynamics刚体动力学
(一)Toolbox function:
1.1 SE3 operations三维空间中的操作
(SE:Structural elements结构元素,以矩阵来表示)
1)涉及的输入/输出参量有:
①T:位姿的齐次变换矩阵
②x,y,z:表示一组平移向量,即直角坐标系下的坐标
③roll:绕z轴旋转的角度,也称翻滚角
pitch:绕x轴旋转的角度,也称俯仰角
yaw:绕y轴旋转的角度,也称偏航角
一个包含横滚-偏摆-俯仰角度的向量,其角度的正负有右手螺旋判定
④:欧拉角
2)模块的含义:
①xyz2T:将一个平移向量转化为一个齐次变换矩阵
②rpy2T:将一个包含横滚-偏摆-俯仰角度的向量转化为一个齐次变换矩阵
③eul2T:将一个欧拉角向量转化为一个齐次变换矩阵
1.2 SE2 to SE3 二维空间转化到三维空间的操作
①xyt:二维空间的平移齐次矩阵,t为平移向量
②xy:二维空间下的旋转齐次矩阵,为旋转向量
1.3 Trajectory generation轨迹生成
1)涉及的输入/输出参量有:
①q、qd、qdd:点的位置坐标、坐标的一阶微分、坐标的二阶微分,即位置、速度、加速度
②xy:点的xy坐标
③在MATALB的帮助手册中(如下图可打开),查到pure pursuit模块
Pure pursuit模块为:
Pose:机器人的当前位姿[x y theta];
Waypoints:n个路径点用n×2的数组表示(n个[x,y])
LinVel:(实时更新的)线速度
AngVel:(实时更新的)角速度
2)模块的含义:
①jtraj:输出一个点沿一条五次多项式曲线运动时随时间变化的坐标及坐标的微分。
(通常的轨迹规划限制条件有:起始终止速度,设定起点和终点位置,总的运动时间,一共5个条件,所以最容易想到的是5次多项式轨迹规划。)
②lspb:Linear Segment(匀速) with Parabolic(抛物线) Blends(过渡),利用抛物线生成两点之间的规划轨迹,输出随时间变化的坐标及坐标的微分。
③Circle:输出一个点沿圆周运动时的xy坐标。涉及的参数有圆心、半径、角频率。
④mstraj:多重分割(multi-segment)轨迹规划。
⑤pure pursuit:纯跟踪轨迹生成,输入更新的姿势pose来更新速度命令,使机器人沿着所需的一组航路点跟随路径运动。
(常使用pure pursuit实现无人车轨迹追踪
算法可参考:无人驾驶汽车系统入门(十八)——使用pure pursuit实现无人车轨迹追踪_AdamShan的博客-CSDN博客)
1.4Vector utility向量的操作
1)模块的含义:
①angdiff:计算两个输入角度的差,差值不超过2π
②angdiff1:在输入的角度数列中,依次与相邻角度做差
③tr2delta:计算T0-T1(增量运动)的微分运动
tr:输入位姿矩阵;delta:输出增量矩阵求导后1×6维的矩阵
④norm:求四元数(v)的范数||v||
补充:四元数
1.5Matrixutility矩阵的操作
1)模块的含义:
①Pre multiply:输入一个齐次变换,输出位该齐次变换左乘一个常数参数
②Post multiply:输入一个齐次变换,输出位该齐次变换右乘一个常数参数
③inverse:矩阵求逆
④inv Jac:输入一个正方形雅克比矩阵J和一个空间速度e,输出位J-1e以及矩阵J的条件数
⑤PinvJac:雅可比矩阵求伪逆(1.对于方阵A,如果为非奇异方阵,则存在逆矩阵inv(A)
2.对于奇异矩阵或者非方阵,并不存在逆矩阵,但可以使用pinv(A)求其伪逆)
输入一个雅克比矩阵J和一个空间速度e,输出位J-1e以及矩阵J的条件数
⑥trprint:输出该位姿的关节角度(°),(tr在工具箱中表示 位姿矩阵)
1.6 Spacial velocity空间速度的操作
1)模块的含义:
①tr2diff:计算两个齐次变换矩阵(T1,T2)的差分,T为一个6元素向量,包含了齐次变换中的平移和转动的差分。
②pose integral:计算位姿的积分。输入各关节速度,返回位姿齐次变换矩阵
(二)RobotArm:
2.1 Kinematics运动学
1)模块的含义:
①fkine:求解运动学正解,q为输入的关节坐标向量,输出末端执行器位姿的一个齐次变换
②ikine6s:求解逆运动学封闭解(仅限有球腕机构的六轴串联机械臂)
③ikine:求解逆运动学数值解
④plot:绘图,q为输入的关节坐标向量,对于有移动关节的机械臂必须添加worksapce参数,该模块能在一个新窗口创建机器人的图形动画
2.2Velocity Kinematics(Jacobians)速度运动学(雅克比矩阵)
1)模块的含义:
①jacob0:输出相对于基坐标系的雅克比矩阵,输入量为关节坐标向量
②jacobn:输出相对于工具坐标系N的雅克比矩阵
③ijacob:对于输入的矩阵求逆雅克比矩阵
2.3Rigid-body dynamics刚体动力学
1)基本参数解释:
①q——关节坐标;qd——关节速度;qdd——关节加速度;三者均是6列的矩阵,记录6自由度机械臂各关节的运动学信息。
②Q——广义关节力矩阵
③Alpha——各关节的关节扭角
④J——雅可比矩阵
⑤g——各关节重力载荷
⑥w——关节角速度
⑦w——关节角速度
⑧tau_ff——前馈(front feedback)力矩(力矩前馈控制)
⑨tau——关节的输出力矩
⑩Integral——对角速度变量的积分,即关节扭角矩阵
2)模块的含义:
①Robot:该模块针对串联式机械臂,计算机械臂的正向动力学
输入:广义关节力矩阵
输出:关节坐标、关节速度、关节加速度
②RNE:计算机械臂的逆向动力学
输入:关节坐标、关节速度、关节加速度
输出:广义关节力矩阵
③cinertia:转动惯量
输入:关节坐标
输出:各关节的关节扭角
④inertia:关节空间惯性矩阵
输入:关节坐标
输出:雅可比矩阵
⑤gravload:重力载荷
输入:关节坐标,输出:各关节重力载荷
⑥vloop:速度环控制
未完待续,其他模块另写ing
以上均是个人学习心得,恳请及时批评指正!