要快速访问常见的机器人模型,可使用 loadrobot 功能,该功能可加载市售的机器人模型,如 Universal Robots? UR10 cobot、Boston Dynamics? Atlas 人形机器人和 KINOVA? Gen 3 机械手。探索如何生成关节配置并与机器人模型交互。
要导入自己的通用机器人描述格式(URDF),请参阅 importrobot 功能。
以字符串形式向 loadrobot 函数指定机器人模型类型。利用制表符完成从提供的模型列表中选择输入。
若要使用列向量进行关节配置,请将数据格式指定为 "列"。
ur10 = loadrobot("universalUR10");
atlas = loadrobot("atlas");
gen3 = loadrobot("kinovaGen3","DataFormat","column");
loadrobot 函数返回一个刚体树(rigidBodyTree)对象,该对象表示每个机器人模型的运动学和动力学。某些模型可能没有加载刚体的动力学或惯性属性。请使用 Bodies 属性或 getBody 函数检查各个刚体。
disp(gen3);
rigidBodyTree with properties:
NumBodies: 8
Bodies: {[1x1 rigidBody] [1x1 rigidBody] [1x1 rigidBody] [1x1 rigidBody] [1x1 rigidBody] [1x1 rigidBody] [1x1 rigidBody] [1x1 rigidBody]}
Base: [1x1 rigidBody]
BodyNames: {'Shoulder_Link' 'HalfArm1_Link' 'HalfArm2_Link' 'ForeArm_Link' 'Wrist1_Link' 'Wrist2_Link' 'Bracelet_Link' 'EndEffector_Link'}
BaseName: 'base_link'
Gravity: [0 0 0]
DataFormat: 'column'
调用 show 可视化主配置中的机器人模型。用其他模型替换 gen3 对象,使其可视化。
show(gen3);
show(atlas);
show(ur10);
?
为 KINOVA Gen3 机器人生成随机配置。随机配置(randomConfiguration)函数可在模型限制范围内输出随机关节位置。为验证模型是否符合预期,可视化一组四种配置。
for i = 1:4
subplot(2,2,i)
config = randomConfiguration(gen3);
show(gen3,config);
end
要移动机器人模型并检查其行为,可加载交互式刚体树图形用户界面。您可以设置末端执行器的目标位置,手动移动关节,并选择模型中的各种元素。?
interactiveGUI = interactiveRigidBodyTree(gen3);
单击并拖动中心圆盘可自由移动目标末端执行器的位置。图形用户界面使用逆运动学求解每个肢体的关节位置。使用轴线进行线性移动,使用圆圈绕轴旋转。?
点击刚体可查看其具体参数。
右键单击可设置不同的目标标记体。更改目标体可更新逆运动学求解器的末端执行器。
要手动控制关节,请右击并切换标记控制方法。?
?
要控制所选肢体上一个旋进关节的旋转,请单击并拖动黄色圆圈。?
保存使用 addConfiguration 函数设置的特定配置,该函数会将当前关节位置存储在 StoredConfigurations 属性中。本示例在存储前设置了一个随机配置。?
interactiveGUI.Configuration = randomConfiguration(gen3);
addConfiguration(interactiveGUI)
disp(interactiveGUI.StoredConfigurations)
-0.4218
-1.6647
1.3419
-2.0818
1.8179
-0.4140
-1.4517
现在您已经在 MATLAB? 中建立了模型,您可能想要做许多不同的事情。