解决:ros进行gazebo仿真,rviz没有显示传感器数据

目录

前言

看了很多urdf、xacro文件的编写,每次看了都觉得自己会了,然后自己写一点,就是废物了。

在我这里的案例是,我在一个大方块上面,添加了两个VLP-16的雷达,然后我想获取雷达扫描的数据

但是打开rviz后,导入模型以后,发现没有相关的话题可以导入,我一直以为在urdf或者xacro文件中,有开启雷达的相关代码,然后一直没成功。

因此我搜了好久,也郁闷了好久。

解决

我之前的launch文件如下

xml 复制代码
<launch>

    <!-- 将 Urdf 文件的内容加载到参数服务器 -->
    <!-- 加载机器人模型描述参数 -->
    <param name="robot_description" command="$(find xacro)/xacro --inorder '$(find two_lidar_pkg)/urdf/xacro/two_lidar.xacro'" /> 

    <!-- 启动 gazebo -->
    <include file="$(find gazebo_ros)/launch/empty_world.launch" />

    <!-- 运行robot_state_publisher节点,发布tf  -->
    <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher"  output="screen" >
        <param name="publish_frequency" type="double" value="50.0" />
    </node>

    <!-- 在 gazebo 中显示机器人模型 -->
    <node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen"
          args="-urdf -model mbot -param robot_description"/> 
    
</launch>

后来发现,是因为少写了一行

xml 复制代码
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" ></node> 

因为少写了这一行,导致rviz中就没有啥话题你也可以使用rostopic list去看看话题。

xml 复制代码
<launch>

    <!-- 将 Urdf 文件的内容加载到参数服务器 -->
    <!-- 加载机器人模型描述参数 -->
    <param name="robot_description" command="$(find xacro)/xacro --inorder '$(find two_lidar_pkg)/urdf/xacro/two_lidar.xacro'" /> 

    <!-- 启动 gazebo -->
    <include file="$(find gazebo_ros)/launch/empty_world.launch" />
        <!-- 运行joint_state_publisher节点,发布机器人的关节状态,如果没有这个,就不会有雷达的话题,rviz中就没有雷达扫描的数据  -->
    <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" ></node> 

    <!-- 运行robot_state_publisher节点,发布tf  -->
    <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher"  output="screen" >
        <param name="publish_frequency" type="double" value="50.0" />
    </node>

    <!-- 在 gazebo 中显示机器人模型 -->
    <node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen"
          args="-urdf -model mbot -param robot_description"/> 

</launch>


总结

可以发现,自己有时候看了很多东西,但是自己学的还是不透。

相关推荐
闻道且行之18 分钟前
TurboOCR:基于PP-OCRv6的极速Windows离线OCR工具,深度解析3.4GB依赖背后的技术架构
c++·人工智能·python·qt·机器学习·ocr
c238563 小时前
Bug 猎手入门指南
c++·算法·bug
玖玥拾5 小时前
C++ 数据结构 八大基础排序算法专题
数据结构·c++·算法·排序算法
YYYing.5 小时前
【C++大型项目之高性能服务器框架 (七) 】Socket与ByteArray模块
服务器·c++·后端·框架·高性能·c/c++
不羁的木木5 小时前
HarmonyOS APP实战-基于Image Kit的图像处理APP - 第9篇:批量处理与编辑历史
图像处理·ubuntu·harmonyos
从零开始的代码生活_6 小时前
C++ list 原理与实践:双向链表、迭代器与简化实现
开发语言·c++·后端·学习·算法·链表·list
春卷同学6 小时前
HarmonyOS掌上记账APP开发实践第15篇:ArkTS 类型系统深度解析 — 从接口到联合类型的灵活运用
ubuntu·华为·harmonyos
charlie1145141916 小时前
现代C++工程实践——WeakPtr 第二关:核心骨架与控制块
开发语言·c++
2401_869769596 小时前
内容9 string 1
c++
ComputerInBook7 小时前
C & C++ 中的关键字 volatile 之详解
c语言·c++·volatile·编译器优化