matlab碰撞检测

发布于:2024-04-02 ⋅ 阅读:(87) ⋅ 点赞:(0)

碰撞对象

函数 功能
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:n
    ph = 2*pi*rand(1);
    th = pi*rand(1);
    pts(k,:
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到