这个bug就是一整个特别离谱。
在按照GPT给的所有解决方法处理了一个遍,还是这个样子。
link之间的关系的也没错,check_urdf文件的结构也没问题。但是还是这样子。
去咸鱼问大佬,大佬跟我要1.5k,算逑算逑,要不起。
思来想去还是自己改了改。没想到最后真让我改成功了。
是因为我在launch文件中只往gazebo导入了urdf的模型,我本以为打开rviz直接add robot model没啥问题,但他就是只显示车体,不显示坐标。我小车的urdf模型结构如图。
打开display.launch一点问题都没得。 但是一打开工作空间的myworld.launch就出bug
所以,我直接在myworld.launch中写入display.launch的代码,也就是直接引入robot_state_publisher和joint_state_publisher_gui这两个节点。
<launch>
<!-- 将 Urdf 文件的内容加载到参数服务器 -->
<param name="robot_description"
command="$(find xacro)/xacro $(find myminion)/urdf/myminion.urdf" />
<!-- 启动 gazebo -->
<include file="$(find gazebo_ros)/launch/empty_world.launch">
<arg name="world_name" value="$(find gh_gazebo)/worlds/greenhouse.world"/>
</include>
<!-- 在 gazebo 中显示机器人模型 -->
<node pkg="gazebo_ros" type="spawn_model" name="model"
args="-urdf -model myminion -param robot_description" />
<node name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" />
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find myminion)/urdf.rviz" />
</launch>
针对这行代码<node name="rviz" pkg="rviz" type="rviz" args="-d $(find myminion)/urdf.rviz" />,根本不用管他的文件在哪,一点影响都没有。
到最后成功解决。
但是但是以上都是在wsl2中运行的,wsl2会时不时的出小bug。可能过一段时间你就会发现小车又缺胳膊少腿了,这玩意我是解决不了的。
我只能用双系统ubuntu2004再运行相同的代码,一切都迎刃而解啦。又省了1.5k,开心哈哈