希望之前有人用过Klampt,但我看不懂。因此,这个问题仅仅是关于我在urdf文件中遗漏了什么,这似乎是正确的,这是从一本使用Klampt进行机器人建模和仿真的电子书中的一个例子中直接得出的。
from __future__ import print_function,division
from klampt import *
import math
import os
world = WorldModel()
fileurdf = r"planar2R.urdf"
path = os.path.join(r"data",fileurdf)
res = world.readFile(path)
assert res, "There was an error loading data/planar2R.urdf"urdf文件的格式很好。
<robot name="test_robot">
<link name="base_link">
</link>
<link name="link1">
</link>
<link name="link2">
</link>
<link name="link3">
</link>
<link name="end_effector">
</link>
<joint name="joint1" type="revolute">
<parent link="base_link"/>
<child link="link1"/>
</joint>
<joint name="joint2" type="revolute">
<origin xyz="1 0 0" rpy="0 0 0"/>
<axis xyz="0 1 0"/>
<parent link="link1"/>
<child link="link2"/>
</joint>
<joint name="joint3" type="revolute">
<parent link="link2"/>
<child link="link3"/>
</joint>
<joint name="joint4" type="fixed">
<parent link="link3"/>
<child link="end_effector"/>
</joint>
</robot>我解析文件失败了
发布于 2022-11-08 15:02:39
可能有很多原因会导致“无法加载urdf”错误。
原因1:指定的文件地址不正确/可读。
原因2: urdf文件本身有一个错误。请记住,可以在一个urdf模拟器中加载urdf文件,而不会出现任何错误,但是相同的文件可能会导致klampt中的错误。
我面对这个问题已经有一段时间了,我不得不通过尝试并编写我的整个urdf文件来调试它,并向示例urdf学习。
Try 1:首先确保文件地址没有引起任何问题。
Try 2:从一个给定的示例开始。对urdf文件进行小修改,并同时进行调试。
Try 3:关于klampt的urdf,它需要最后一个<klampt> </klampt>数据。除非正确给出,否则编译将产生“无法加载urdf”错误。
可以给<klampt> </klampt>数据如下所示:
<klampt world_frame="world" defaultAccMax="4" use_vis_geom="1">
<noselfcollision group1="" group2="" />
<link name="world" />
<link name="base_link" />
<link name="link_1" servoP="1400" servoI="0" servoD="6" dryFriction="0.5" viscousFriction="8" />
<link name="link_2" servoP="1400" servoI="0" servoD="6" dryFriction="0.5" viscousFriction="8" />
<link name="fcp" />
</klampt>
</robot>我不喜欢这个klampt包的一件事是,它们没有说明加载urdf文件失败的原因,从而使初学者难以理解。
https://stackoverflow.com/questions/73085580
复制相似问题