gazebo 已加载模型但无法显示

2024-09-08 07:36

本文主要是介绍gazebo 已加载模型但无法显示,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 写在前面的话
  • 问题一:robot_state_publisher 发布机器人信息失败
    • 报错一 Error: Error document empty.
    • 报错二 .xcaro 文件中有多行注释
    • 成功启动
  • 问题二:通过 ros2 启动 gazebo 失败
    • 成功启动
  • 问题三:gazebo 崩溃和无法显示模型
  • 问题四: 缺少 robot_description 等话题
    • 正确的输出

写在前面的话

本人学习ROS2的进阶,参考视频:ROS2从初级到高级(LEVEL2):使用 URDF 设计自定义机器人,在 Gazebo 中模拟机器人,在视频第6.8节讲了如何通过终端命令在 gazebo 仿真软件中启动机器人,但是我在实验过程中发现了一下问题,总结一下。

问题一:robot_state_publisher 发布机器人信息失败

ros2 run robot_state_publisher  robot_state_publisher --ros-args -p robot_description:="$(xacro src/car_urdf/urdf/car_urdf.urdf)"

报错一 Error: Error document empty.

报错说文件错误,原因是"$xacro src/car_urdf/urdf/car_urdf.urdf.xacro"这个命令写法要加上括号,改成"$(xacro src/car_urdf/urdf/car_urdf.urdf.xacro)"就可以了。

Error:   Error document empty.at line 100 in ./urdf_parser/src/model.cpp
Failed to parse robot description using: urdf_xml_parser/URDFXMLParser
terminate called after throwing an instance of 'std::runtime_error'what():  Unable to initialize urdf::model from robot description
[ros2run]: Aborted

在这里插入图片描述

报错二 .xcaro 文件中有多行注释

.xcaro 文件中的多行注释有问题,删除后可以解决,注意要重新编译(colcon build)。

在这里插入图片描述
在这里插入图片描述

成功启动

在这里插入图片描述

问题二:通过 ros2 启动 gazebo 失败

通过 ros2 启动 gazebo 失败,终端卡着,gazebo界面没有显示

ros2 launch gazebo_ros gazebo.launch.py

在这里插入图片描述

修改环境变量,在.bashrc文件里面加入source /usr/share/gazebo/setup.bash,编译即可。

sudo gedit ~/.bashrc
source ~/.bashrc

在这里插入图片描述

成功启动

在这里插入图片描述

问题三:gazebo 崩溃和无法显示模型

运行 gazebo_ros 的 spawn_entity 节点:获取机器人的发布信息

ros2 run gazebo_ros spawn_entity.py -topic robot_description -entity car_urdf

gazebo 崩溃,弹窗显示是否强制退出,这个不用理会,需要等待个4-5分种即可,但是模型加载进来后(可以从gazebo左边窗口的Models下看到已加载的模型),但是在gazebo右边显示的界面却空空如也。

**但是可以通过右键点击模型名称选择View,勾选Collision,可以在右边窗口看到描述的碰撞体。**这说明模型发布

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

问题四: 缺少 robot_description 等话题

查看话题,没有发现 robot_description 等话题

ros2 topic list

在这里插入图片描述

原因有两个可能 robot_state_publisher 话题关闭了,要不就是没有更新环境空间,要在工作空间目录下使用source ./install/setup.sh命令就可以解决。

正确的输出

在这里插入图片描述

这篇关于gazebo 已加载模型但无法显示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1147507

相关文章

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

SpringSecurity显示用户账号已被锁定的原因及解决方案

《SpringSecurity显示用户账号已被锁定的原因及解决方案》SpringSecurity中用户账号被锁定问题源于UserDetails接口方法返回值错误,解决方案是修正isAccountNon... 目录SpringSecurity显示用户账号已被锁定的解决方案1.问题出现前的工作2.问题出现原因各

Oracle修改端口号之后无法启动的解决方案

《Oracle修改端口号之后无法启动的解决方案》Oracle数据库更改端口后出现监听器无法启动的问题确实较为常见,但并非必然发生,这一问题通常源于​​配置错误或环境冲突​​,而非端口修改本身,以下是系... 目录一、问题根源分析​​​二、保姆级解决方案​​​​步骤1:修正监听器配置文件 (listener.

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos

RedisTemplate默认序列化方式显示中文乱码的解决

《RedisTemplate默认序列化方式显示中文乱码的解决》本文主要介绍了SpringDataRedis默认使用JdkSerializationRedisSerializer导致数据乱码,文中通过示... 目录1. 问题原因2. 解决方案3. 配置类示例4. 配置说明5. 使用示例6. 验证存储结果7.

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结