小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
运行自己编写的代码时出现Could not find parameter robot_description_semantic and did……问题
-
@空白 我在ros2 param list |grep robot_description 中可以找到robot_description和robot_description_semantic相关参数,感觉重点好像在下面一句无法解析上面?
-
@空白 正确运行的时候会有以下日志输出:
[panda_move_node-1] [INFO] [1670539142.267081075] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 0.0560178 seconds [panda_move_node-1] [INFO] [1670539142.267119504] [moveit_robot_model.robot_model]: Loading robot model 'panda'...
-
@空白
robot_description
包你运行了吗?我研究的不深,一般机械臂的模型参数都是那个包发布的 -
@Lorry 包都是可以正常运行的,效果就是启动了RViz,然后可以使用界面进行控制,查看参数的时候也可以找到robot_description和robot_description_semantic的对应描述,参数文件在launch里面有描述,如abb_moveit.launch.py
robot_description_content = Command( [ PathJoinSubstitution([FindExecutable(name="xacro")]), " ", PathJoinSubstitution( [FindPackageShare(support_package), "urdf", robot_xacro_file] ), ] ) robot_description = {"robot_description": robot_description_content} robot_description_semantic_content = Command( [ PathJoinSubstitution([FindExecutable(name="xacro")]), " ", PathJoinSubstitution( [FindPackageShare(moveit_config_package), "config", moveit_config_file] ), ] )
具体的细节我也不是特别了解,所以也不确定哪里出问题了
-
@空白 感觉有两个解决思路,一个就是在代码部分加上参数声明,一个就是改launch文件配置,但是两个都不是特别会
-
@Lorry 我刚刚在chatgpt上面找到了一个可能的思路,就是我moveit提供的机器人描述信息是通过运行节点时输入参数获得的,然后我在启动自己的节点包时可能这种方法会找不到描述信息
-
@空白 我之前看一个moveit2的包,他其中的机械臂描述文件通过robot_description包发布出去
-
@空白 用rviz2中的moveit插件手动拖拉规划是正常的吗,如果有robot_description可以尝试做一个重映射
将move_group_interface_tutorial节点robot_description_semantic重映射为robot_description
-
@小鱼 小鱼你好,手动拖拉是可以的,也能正常规划,我在param get 里面发现move_group的publish_robot_description的值是无not set,会不会是因为move_group没有发布robot_description的相关内容?
-
@空白 因为我发现其他能用move_group控制的这个参数是bool值true
-
@空白 有这个可能,没理解错这个值设成true的意思才是发布robot__description,你可以到配置文件找找这个参数,改改看
-
@小鱼 将semantic重映射的原理是什么呢,我在设置里面semantic对应的是srdf模型,对应的是动作组机械臂,而robot_description是用的urdf,对应的是机械臂模型
-
@小鱼 因为我重新改了launch文件,urdf文件都还是报一样的错误,只有觉得是参数的问题了
-
@空白 从你的参数这块入手,重映射方法要先确保robot_description是正常的才行,你可以通过ros2 topic echo /robot_description看看
-
@小鱼 我用ros2 param get robot_description得到的内容是正确的,同理robot_description_semantic内容也是正确的
-
@小鱼 这个重映射是为什么呢?因为在我的理解范围内两者并不是同一个内容
-
@空白 这应该都是机械臂的描述文件吧,看具体的错误是没有订阅到数据,不是通过参数传递的,而是话题,所以你应该检查话题
@空白 在 运行自己编写的代码时出现Could not find parameter robot_description_semantic and did……问题 中说:
did not receive robot_description_semantic via std_msgs::msg::String subscription within 10.000000 seconds.
-
@小鱼 我好像没有发布和订阅相关的话题 在后面用panda机械臂对比的时候也是,我理解中应该是调用move_group给节点的时候自动发布和订阅了这个话题吧?
-
@空白 有可能,这两天比较忙,抽空看看moveit源码这个话题到底用来干啥的
-
@小鱼 嗯嗯,辛苦小鱼了,我明天再尝试下反馈结果