提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
背景
修改过后的ur5的机器人模型文件,想重新配置一下moveit,于是运行roslaunch ur5_moveit_config setup_assistant.launch ,加载的是ur5.urdf.xacro这个文件,一开始报错是(这个报错出现在命令行上):
[ERROR] [1649224909.076522137]: No name given for the robot.
打开ur5.urdf.xacro这个文件,确实robot标签里没有名字,于是手动加上
<robot name="ur5" xmlns:xacro="http://wiki.ros.org/xacro">
再次load,报错[ERROR] [1649224996.611236726]: No link elements found in urdf file
[ERROR] [1649224996.611236726]: No link elements found in urdf file
提示:以下是本篇文章正文内容,下面案例可供参考
一、解决方案
这个报错的意思是urdf文件中没有链接元素,明明里面写了七八个link元素却报这个错,是为什么呢?这两个链接里给了答案: ros answer的答案
github上的回答 这两个回答最终都指向一个,就是加载的ur5.urdf.xacro文件里面,是写了<xacro:macro name="ur5_robot" params="prefix joint_limited 和<xacro:macro name="cylinder_inertial" 两个宏定义,而<xacro:macro name="ur5_robot" params="prefix joint_limited 这个宏定义只有定义没有实例化.参考github回答里的这句话:
The create.urdf.xacro file just contains a macro for instantiating a create model, but does not call it. The intended use is to include the create.urdf.xacro file in your model and then instantiate it like so:
<xacro:include filename="$(find create_description)/urdf/create.urdf.xacro"/>
<create />
UR_description里的文件结构是,这部分的实例化写在了ur5_robot.urdf.xacro 这个文件,所以需要加载的是这个文件.虽然这个文件里也包含了robot name,但我试了一下,如果删除ur5.urdf.xacro里的robot name ,第一个报错也就是之前我们第一步解决No name given for the robot还是会出现.所以为了保险起见,先在ur5.urdf.xacro添加robot name,也就是
<robot name="ur5" xmlns:xacro="http://wiki.ros.org/xacro">
再加载ur5_robot.urdf.xacro 这个文件 成功加载以后的图片如下:
|