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

相关文章

基于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

Flask解决指定端口无法生效问题

《Flask解决指定端口无法生效问题》文章讲述了在使用PyCharm开发Flask应用时,启动地址与手动指定的IP端口不一致的问题,通过修改PyCharm的运行配置,将Flask项目的运行模式从Fla... 目录android问题重现解决方案问题重现手动指定的IP端口是app.run(host='0.0.

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin

CSS模拟 html 的 title 属性(鼠标悬浮显示提示文字效果)

《CSS模拟html的title属性(鼠标悬浮显示提示文字效果)》:本文主要介绍了如何使用CSS模拟HTML的title属性,通过鼠标悬浮显示提示文字效果,通过设置`.tipBox`和`.tipBox.tipContent`的样式,实现了提示内容的隐藏和显示,详细内容请阅读本文,希望能对你有所帮助... 效

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo