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

相关文章

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

SpringBoot项目删除Bean或者不加载Bean的问题解决

《SpringBoot项目删除Bean或者不加载Bean的问题解决》文章介绍了在SpringBoot项目中如何使用@ComponentScan注解和自定义过滤器实现不加载某些Bean的方法,本文通过实... 使用@ComponentScan注解中的@ComponentScan.Filter标记不加载。@C

springboot 加载本地jar到maven的实现方法

《springboot加载本地jar到maven的实现方法》如何在SpringBoot项目中加载本地jar到Maven本地仓库,使用Maven的install-file目标来实现,本文结合实例代码给... 在Spring Boothttp://www.chinasem.cn项目中,如果你想要加载一个本地的ja

element-ui下拉输入框+resetFields无法回显的问题解决

《element-ui下拉输入框+resetFields无法回显的问题解决》本文主要介绍了在使用ElementUI的下拉输入框时,点击重置按钮后输入框无法回显数据的问题,具有一定的参考价值,感兴趣的... 目录描述原因问题重现解决方案方法一方法二总结描述第一次进入页面,不做任何操作,点击重置按钮,再进行下

最好用的WPF加载动画功能

《最好用的WPF加载动画功能》当开发应用程序时,提供良好的用户体验(UX)是至关重要的,加载动画作为一种有效的沟通工具,它不仅能告知用户系统正在工作,还能够通过视觉上的吸引力来增强整体用户体验,本文给... 目录前言需求分析高级用法综合案例总结最后前言当开发应用程序时,提供良好的用户体验(UX)是至关重要

电脑显示hdmi无信号怎么办? 电脑显示器无信号的终极解决指南

《电脑显示hdmi无信号怎么办?电脑显示器无信号的终极解决指南》HDMI无信号的问题却让人头疼不已,遇到这种情况该怎么办?针对这种情况,我们可以采取一系列步骤来逐一排查并解决问题,以下是详细的方法... 无论你是试图为笔记本电脑设置多个显示器还是使用外部显示器,都可能会弹出“无HDMI信号”错误。此消息可能

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

Java子线程无法获取Attributes的解决方法(最新推荐)

《Java子线程无法获取Attributes的解决方法(最新推荐)》在Java多线程编程中,子线程无法直接获取主线程设置的Attributes是一个常见问题,本文探讨了这一问题的原因,并提供了两种解决... 目录一、问题原因二、解决方案1. 直接传递数据2. 使用ThreadLocal(适用于线程独立数据)

MyBatis延迟加载的处理方案

《MyBatis延迟加载的处理方案》MyBatis支持延迟加载(LazyLoading),允许在需要数据时才从数据库加载,而不是在查询结果第一次返回时就立即加载所有数据,延迟加载的核心思想是,将关联对... 目录MyBATis如何处理延迟加载?延迟加载的原理1. 开启延迟加载2. 延迟加载的配置2.1 使用