checkCollision
语法
描述
(
检查之间的碰撞iscolliding
,separationdist
,witnesspts
)= checkCollision (平台
,targetbody
)rigidBodyTree
基于机器人平台平台
和一组目标的身体targetbody
。
例子
在机器人执行选择和场景
创建一个robotScenario
对象。
场景= robotScenario (UpdateRate = 1, StopTime = 10);
创建一个rigidBodyTree
对象的Franka Emika熊猫机械手使用loadrobot
。
robotRBT = loadrobot (“frankaEmikaPanda”);
创建一个rigidBodyTree
的robotPlatform
使用机械手模型对象。
机器人= robotPlatform (“操纵者”场景,…RigidBodyTree = robotRBT);
创建一个非rigidBodyTree
的robotPlatform
一个盒子来操纵的对象。指定网格类型和大小。
盒= robotPlatform (“盒子”场景中,碰撞=“网”,…InitialBasePosition = [0.5 0.15 0.278]);updateMesh(盒子,“长方体”碰撞=“网”、大小= (0.06 0.06 0.1))
想象的场景。
ax = show3D(场景中,碰撞=“上”);视图(79年,36)光
指定的初始和拾音器联合配置机械手,将机械手从最初对接近。
initialConfig = homeConfiguration (robot.RigidBodyTree);pickUpConfig = [0.2371 -0.0200 0.0542 -2.2272 0.0013…2.2072 -0.9670 0.0400 0.0400);
创建一个RRT路径规划使用manipulatorRRT
对象,并指定机械手模型。
规划师= manipulatorRRT (robot.RigidBodyTree scenario.CollisionMeshes);计划。IgnoreSelfCollision = true;
计划之间的路径的初始和拾音器联合配置。然后,想象整个路径,插入路径成小步骤。
rng (“默认”)路径=计划(计划、initialConfig pickUpConfig);路径=插入(规划师,路径,25);
建立了模拟。
设置(场景)
之前检查碰撞机械手拿起盒子。
checkCollision(机器人,“盒子”,…IgnoreSelfCollision =“上”)
ans =逻辑0
移动机械手的关节沿路径和可视化的场景。
helperRobotMove(路径,机器人,场景,ax)
检查碰撞后机械手拿起盒子。
checkCollision(机器人,“盒子”,…IgnoreSelfCollision =“上”)
ans =逻辑1
使用附加
函数把盒子机械手的夹持。
附加(机器人,“盒子”,“panda_hand”,…ChildToParentTransform = trvec2tform ([0 0 0.1]))
指定的下降联合配置机械手移动机械手的上车对箱子下车姿势。
dropOffConfig = [-0.6564 0.2885 -0.3187 -1.5941 0.1103…1.8678 -0.2344 0.04 0.04);
计划之间的道路上车和下车联合配置。
路径=计划(计划、pickUpConfig dropOffConfig);路径=插入(规划师,路径,25);
移动机械手的关节沿路径和可视化的场景。
helperRobotMove(路径,机器人,场景,ax)
使用分离
函数分离机械手爪的盒子。
分离(机器人)
计划下降之间的路径和初始联合配置移动机械手从盒子下降对初始姿势。
路径=计划(计划、dropOffConfig initialConfig);路径=插入(规划师,路径,25);
移动机械手的关节沿路径和可视化的场景。
helperRobotMove(路径,机器人,场景,ax)
Helper函数移动机械手的关节。
函数helperRobotMove(路径,机器人,场景,ax)为idx = 1:尺寸(路径,1)jointConfig =路径(idx:);(移动机器人,“联合”jointConfig) show3D(场景,fastUpdate = true,父母= ax,碰撞=“上”);drawnow推进(场景);结束结束
输入参数
平台
- - - - - -rigidBodyTree
基于机器人平台
robotPlatform
对象
rigidBodyTree
基于机器人平台,作为一个指定robotPlatform
对象。
targetbody
- - - - - -非rigidBodyTree
的目标平台
字符串标量|特征向量|字符串数组|单元阵列的特征向量
非rigidBodyTree
的目标平台,指定为字符串标量,特征向量,特征向量的字符串数组,数组或单元。
例子:“盒子”
例子:“盒子”
例子:(“盒”,“可以”)
例子:{“盒”,“可以”}
数据类型:字符
|字符串
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
例子:详尽的= " "
详尽的
- - - - - -详尽的检查所有的碰撞
“关闭”
(默认)|“上”
详尽的检查所有的碰撞,指定为“上”
或“关闭”
。设置这个“关闭”
当第一个发现碰撞中断碰撞检查。如果回来早,separationdist
和witnesspts
值不完整的检查正
。设置这个“上”
计算分离距离和见证点对。
例子:详尽的= " "
数据类型:字符
|字符串
IgnoreSelfCollision
- - - - - -跳过检查机器人的身体和基地之间的碰撞
“关闭”
(默认)|“上”
跳过检查机器人的身体和基础之间的碰撞,指定为“上”
或“关闭”
。
例子:IgnoreSelfCollision = " "
数据类型:字符
|字符串
SkippedSelfCollisions
- - - - - -身体对检查self-collisions跳过
“父”
(默认)|“附近”
身体对跳过检查self-collisions,指定为“父”
或“附近”
。
“父”
——孩子和家长之间跳过碰撞检查身体。“附近”
-跳过碰撞检查身体之间相邻的指数。
例子:SkippedSelfCollisions =“邻”
数据类型:字符
|字符串
输出参数
iscolliding
——指标与目标机构自碰撞和碰撞
双元素逻辑向量|逻辑标量
指标与目标体自碰撞和碰撞,作为双元素返回逻辑向量或逻辑标量。如果IgnoreSelfCollision
被设置为“上”
,然后iscolliding
是一个逻辑标量来指示机器人平台与目标的身体碰撞。
数据类型:逻辑
separationdist
-分离距离目标机构和机器人平台机构包括基地
(N+ 1)
——- - - - - -(N+米+ 1)
矩阵|(N+ 1)
——- - - - - -米矩阵
分离距离目标机构和机器人平台机构包括基地,作为一个返回(N+ 1)
——- - - - - -(N+米+ 1)
矩阵。N是机器人平台的数量。米是目标体的数量。如果IgnoreSelfCollision
被设置为“上”
,separationdist
是一个(N+ 1)
——- - - - - -米矩阵的列索引对应目标的身体。
返回正
不完整的检查。
数据类型:双
witnesspts
——见证点之间的身体包括机器人平台的基础
3 (N+ 1)
——- - - - - -2 (N+ 1)
矩阵
机器人平台的见证点之间的身体包括基地,作为一个返回3 (N+ 1)
——- - - - - -2 (N+ 1)
矩阵。N是身体的数量。矩阵的格式:
每一个元素,或者说是出最近的,是一个3×2矩阵(xyz]
点相对应的两个身体的机器人平台。最后一行和列对应于机器人平台的基础。
返回正
不完整的检查。
数据类型:双
版本历史
介绍了R2023a
Abrir比如
这种版本modificada德埃斯特比如。害怕Desea abrir埃斯特比如con sus modificaciones吗?
第一de MATLAB
Ha事实clic en联合国围绕此时一个埃斯特第一de MATLAB:
Ejecute el第一introduciendolo en la ventana de第一de MATLAB。洛杉矶navegadores网络没有admiten第一de MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。