这个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,开心哈哈

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐