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

相关文章

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

如何解决mmcv无法安装或安装之后报错问题

《如何解决mmcv无法安装或安装之后报错问题》:本文主要介绍如何解决mmcv无法安装或安装之后报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mmcv无法安装或安装之后报错问题1.当我们运行YOwww.chinasem.cnLO时遇到2.找到下图所示这里3.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

电脑win32spl.dll文件丢失咋办? win32spl.dll丢失无法连接打印机修复技巧

《电脑win32spl.dll文件丢失咋办?win32spl.dll丢失无法连接打印机修复技巧》电脑突然提示win32spl.dll文件丢失,打印机死活连不上,今天就来给大家详细讲解一下这个问题的解... 不知道大家在使用电脑的时候是否遇到过关于win32spl.dll文件丢失的问题,win32spl.dl

pip无法安装osgeo失败的问题解决

《pip无法安装osgeo失败的问题解决》本文主要介绍了pip无法安装osgeo失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 进入官方提供的扩展包下载网站寻找版本适配的whl文件注意:要选择cp(python版本)和你py

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM