摘要
最新小虎利用MATLAB学习robotics,发现了这个loadrobot。其实就是载入机器人的关节、杆长等机械机构,方便我们进行运动学的控制学习。
loadrobot使用细节
loadrobot的Syntax有三种形式。
robotRBT = loadrobot(robotname)
[robotRBT,metaData] = loadrobot(robotname)
[robotRBT,metaData] = loadrobot(robotname,Name,Value)
- robotname(模型名)可以是默认的模型,当然也可以是自己建的模。
- Name有’DateFormat’(只能选‘row’或者‘column’)和Gravity(重力)。一般重力竖直向下,与z轴方向相反,所以用[0 0 -9.81]表示重力的影响。
robot = loadrobot('kinovaGen3','DataFormat','row','Gravity',[0 0 -9.81]);
- robotRBT输出的是一个刚体树rigidBodyTree。
- metaData输出量则包含了模型名、模型路径以及模型的来源等等信息。
示例——机械臂避障夹取
结果
部分代码
读取kinovaGen3机械臂,并且利用homeConfiguration()读取机械臂配置。
robot = loadrobot('kinovaGen3','DataFormat','row','Gravity',[0 0 -9.81]);
currentRobotJConfig = homeConfiguration(robot);%机器人关节配置
任务初始化用到模型。
taskInit = getTransform(robot,jointInit,endEffector);%初始
运动模型也用到了机械臂模型。
tsMotionModel = taskSpaceMotionModel('RigidBodyTree',robot,'EndEffectorName','EndEffector_Link');
仿真显示用到了机械臂模型。
show(robot,currentRobotJConfig,'PreservePlot',false,'Frames','off');