文章目录
- 碰撞对象
- collisionCylinder
- collisionBox
- collisionMesh
- collisionSphere
- collisionCapsule
- checkCollision
- fitCollisionCapsule
- showCollisionArray
- capsuleApproximation
- addCapsule
- removeCapsule
- convertToCollisionMesh
碰撞对象
函数 | 功能 |
---|---|
checkCollision | 检测两几何体是否存在碰撞 (Since R2019b) |
collisionBox | 创建盒体碰撞几何模型 (Since R2019b) |
collisionCapsule | 创建胶囊碰撞几何模型 (Since R2022b) |
collisionCylinder | 创建圆柱碰撞几何模型 (Since R2019b) |
collisionMesh | 创建凸网络的碰撞几何模型 (Since R2019b) |
collisionSphere | 创建球体碰撞几何模型 (Since R2019b) |
geom2struct | 将碰撞几何体转为结构矩阵 (Since R2024a) |
collisionVHACD | 使用V-HACD将网格转换为凸网络 (Since R2023b) |
showCollisionArray | 在图中显示碰撞对象矩阵 (Since R2023b) |
collisionCylinder
使用CollisionCylinder创建以原点为中心的圆柱体碰撞几何图形。
CYL = collisionCylinder(Radius,Length)
CYL = collisionCylinder(___,Pose=pose)
CYL = collisionCylinder(半径,长度)创建具有指定半径和长度的圆柱体碰撞几何体。圆柱体与自身固有坐标系的轴对齐。圆柱的侧面位于z轴方向。固有坐标系的原点在圆柱体的中心。
CYL = Collision Cylinder( _ , Pose =pose)将圆柱的位姿属性设置为相对于世界坐标系的位姿。
rad = 1;
len = 4;
cyl = collisionCylinder(rad,len)
show(cyl)
title("Cylinder")
ang = pi/4;
mat = axang2tform([0 1 0 ang]);
cyl.Pose = mat;
show(cyl)
collisionBox
使用collisionBox创建以原点为中心的盒子碰撞几何图形。
BOX = collisionBox(X,Y,Z)
BOX = collisionBox(___,Pose=pose)
BOX = collisionBox( X、Y、Z)在几何固有坐标系中创建以原点为中心,以X、Y、Z为边长,沿相应轴的轴对齐的盒子碰撞几何体。默认情况下,几何固有坐标系与世界坐标系重合。
BOX = collisionBox(_ , Pose =pose)设置盒子的Pose属性为位姿,相对于世界坐标系。
box = collisionBox(3,1,2)
show(box)
title("Box")
matZ = axang2tform([0 0 1 pi/2]);
matX = axang2tform([1 0 0 pi/8]);
box2 = collisionBox(3,1,2);
box2.Pose = matZ*matX;
show(box2)
title("Box2")
collisionMesh
使用CollisionMesh创建一个作为凸网格的碰撞几何体。
MSH = collisionMesh(Vertices)
MSH = collisionMesh(___,Pose=pose)
MSH = collisionMesh( Vertices )从三维顶点列表中创建一个凸网格碰撞几何。顶点是相对于一个选择坐标系(碰撞几何坐标系)指定的。默认情况下,碰撞几何坐标系与世界坐标系重合。
MSH = collisionMesh(_ , Pose =pose)设置网格的Pose属性为位姿,相对于世界坐标系。
rng default
n = 10;
pts = zeros(n,3);
for k = 1:nph = 2*pi*rand(1);th = pi*rand(1);pts(k,: