文档帮助中心文档
更新几何性质的障碍
updateObstacleGeometry (capsuleListObj obstacleIDs geomStruct)
状态= updateObstacleGeometry (capsuleListObj obstacleIDs geomStruct)
例子
updateObstacleGeometry (capsuleListObj,obstacleIDs,geomStruct)更新几何参数在胶囊列表中指定的障碍。如果ID指定的障碍已经不存在,添加一个新的功能障碍与ID列表。
updateObstacleGeometry (capsuleListObj,obstacleIDs,geomStruct)
capsuleListObj
obstacleIDs
geomStruct
状态= updateObstacleGeometry (capsuleListObj,obstacleIDs,geomStruct)返回一个指示是否一个障碍被添加,更新,或复制。
状态= updateObstacleGeometry (capsuleListObj,obstacleIDs,geomStruct)
状态
全部折叠
建立一个自我身体路径和维护使用障碍状态dynamicCapsuleList对象。可视化的环境中的所有对象在不同的时间戳。验证自我身体的路径通过检查与障碍物碰撞的环境。
dynamicCapsuleList
创建dynamicCapsuleList对象。提取步骤使用的最大数量随着时间戳你的对象数量的路径。
obsList = dynamicCapsuleList;numSteps = obsList.MaxNumSteps;
增加自我的身体
定义一个自我身体通过指定ID,在结构几何和状态。胶囊几何长度3米,半径1米。国家指定为一个线性路径x= 0 mx= 100。
egoID1 = 1;几何学=结构(“长度”3,“半径”,1“FixedTransform”、眼睛(3));州= linspace (0, 1, obsList.MaxNumSteps)”。* (100 0 0);egoCapsule1 =结构(“ID”egoID1,“州”州,“几何”、几何学);addEgo (obsList egoCapsule1);显示(obsList“步伐”(1:numSteps));ylim (20 [-20])
添加障碍
指定国家自我身体分开的两个障碍5 m在相反的方向y设在. .假设的障碍有相同的几何几何学身体的自我。
几何学
obsState1 =州+ [0 5 0];obsState2 =州+ [0 5 0];obsCapsule1 =结构(“ID”,1“州”obsState1,“几何”、几何学);obsCapsule2 =结构(“ID”2,“州”obsState2,“几何”、几何学);addObstacle (obsList obsCapsule1);addObstacle (obsList obsCapsule2);显示(obsList“步伐”(1:numSteps));ylim (20 [-20])
更新障碍
随着时间的推移改变你的障碍位置和几何尺寸。使用前面生成的结构,修改字段,并使用更新障碍updateObstacleGeometry和updateObstaclePose对象的功能。减少了半径0.5米的第一障碍,并改变对自我身体的路径移动它。
updateObstacleGeometry
updateObstaclePose
obsCapsule1.Geometry。半径= 0.5;obsCapsule1。州=…[linspace(0100年,numSteps)”…% xlinspace (5 4 numSteps) '…y %0 (numSteps 1)];%θupdateObstacleGeometry (obsList 1 obsCapsule1);updateObstaclePose (obsList 1 obsCapsule1);
检查碰撞
可视化的新路径。展示自我的身体和一个障碍之间的碰撞,其中用红色突出显示。注意,不检查障碍之间的碰撞。
显示(obsList“步伐”(1:numSteps),“ShowCollisions”1);ylim(20[-20])包含(“X”(m))ylabel (“Y (m)”)
通过使用编程方式检查碰撞checkCollision对象的功能。函数返回一个向量的逻辑值,表明每个时间步的状态。向量是转置显示的目的。
checkCollision
碰撞= checkCollision (obsList) '
碰撞=1 x31逻辑阵列0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0
验证路径与大量的步骤,使用任何碰撞函数向量的值。
任何
如果任何(碰撞)disp (“碰撞检测。”)结束
碰撞检测。
更新自我的道路
指定一个自我身体的新路径。可视化的路径,显示碰撞。
egoCapsule1。州=…[linspace(0100年,numSteps)”…% x3 * sin (linspace(0, 2 *π,numSteps))”…y %0 (numSteps 1)];%θupdateEgoPose (obsList 1 egoCapsule1);显示(obsList“步伐”(1:numSteps),“ShowCollisions”1);ylim (20 [-20])
dynamicCapsuleList3D
动态胶囊列表,指定为一个dynamicCapsuleList或dynamicCapsuleList3D对象。
IDs的障碍来更新,指定为一个向量的正整数。
几何参数对自我身体,指定为一个结构或结构数组,其中每个结构包含的字段结构几何被更新的障碍. .这个领域的结构取决于您使用的是dynamicCapsuleList或dynamicCapsuleList3D对象。
几何
数据类型:结构体
结构体
结果更新障碍,指定为N,0元列向量的和消极的。N中指定的数量的障碍吗obstacleIDs论点。每个值表明障碍是否删除(1),没有发现(0),或复制(1)。如果您指定ID的多次相同的障碍obstacleIDs除了最后一个输入参数,那么所有条目标记为一个重复。
1
0
addEgo
addObstacle
egoGeometry
egoPose
obstacleGeometry
obstaclePose
removeEgo
removeObstacle
显示
updateEgoGeometry
updateEgoPose
你有一个修改版的这个例子。你想打开这个例子与编辑?
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站翻译内容,看到当地事件和提供。根据你的位置,我们建议您选择:。
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。
联系你当地的办公室