获取机械手碰撞检测的碰撞数据
本例展示了获取a的三种方法rigidBodyTree
用碰撞数据建模。要查看检查自碰撞或环境碰撞检测的更深入示例,请参阅其他示例:
URDF进口
许多机器人都带有在统一机器人定义格式(URDF)文件中指定的碰撞网格或原语。
KUKA®IIWA机器人配备了一套碰撞网格,这是视觉网格的简化版本。调用importrobot
函数生成rigidBodyTree
对象从URDF文件。将配置的输出格式设置为“列”
.
iwa = importrobot(“iiwa14.urdf”);iiwa。DataFormat =“列”;
目视检查机器人碰撞网格。
显示(iiwa“视觉效果”,“关闭”,“碰撞”,“上”);
在指定的配置中检查自碰撞
指定具有自碰撞的配置。的checkCollision
函数指示机器人在特定配置下是否与自身发生碰撞。可视化配置。
Config = [0 -pi/4 PI 0.9* PI 0 -pi/2 0]';checkCollision (iiwa配置,“SkippedSelfCollisions”,“父”)
ans =逻辑1
显示(iiwa配置,“视觉效果”,“关闭”,“碰撞”,“上”);
负载提供模型
机器人系统工具箱™提供常用的机器人模型和使用loadrobot
函数。
kukaIiwa14 =装载机器人“kukaIiwa14”,“DataFormat”,“列”);checkCollision (kukaIiwa14配置,“SkippedSelfCollisions”,“父”)
ans =逻辑1
Config = [0 -pi/4 PI 0.9* PI 0 -pi/2 0]';
可视化机器人与碰撞网格可见。
显示(kukaIiwa14配置,“视觉效果”,“关闭”,“碰撞”,“上”);
添加单独的碰撞对象
的addCollision
功能使您能够添加碰撞对象的任何刚体在机器人基本形状(盒、球体、缸)。你可以用这些碰撞几何图形构建整个机器人,但这通常不如高保真网格定义准确。
对于本例,请注意加载的IIWA机器人模型缺少一个夹持器。元素中添加一个由碰撞原语组成的夹持器iiwa_link_ee
身体在机器人上。
addCollision (iiwa。身体{}结束,“气缸”[0.06, 0.05]) addCollision (iiwa。身体{}结束,“盒子”(0.02, 0.02, 0.15), trvec2tform ([0.03, 0, 0.05])) addCollision (iiwa。身体{}结束,“盒子”(0.02, 0.02, 0.15), trvec2tform ([-0.03, 0, 0.05]))
想象机器人。注意,夹持器是附加的。
显示(iiwa“视觉效果”,“关闭”,“碰撞”,“上”);