gazebo 仿真阶段性问题汇总二

目录

  • 写在前面的话
  • 遇到的问题
    • 问题一:启动了多个 robot_state_publisher
      • 解决办法
    • 问题二:rviz 启动报错
      • 解决办法
    • 问题三:rviz 中 wheel 一直指向 base_link
      • 解决方法
    • 问题四:摄像头和opencv坐标系的问题
      • 解决方法
    • 问题五:雷达点很小显示不清晰
    • 问题六:在gazebo中显示雷达和图像
      • 解决方法
  • 参考文章

写在前面的话

以下问题是我在实验中遇到的,可能不是对谁都适用,具体问题具体分析,学会自己发现和解决问题。本文仅作参考,有问题欢迎加我微信一起探讨。

遇到的问题

问题一:启动了多个 robot_state_publisher

[ERRoR] [launch]: caught exception in launch (see debug for traceback): caught multiple exceptions when trying to load file of format [launch]:
InvalidfrontendLaunchfileError: caught multiple exceptions when trying to load file of format [launch]:
- ParseError:syntax error:line 1,column 0
- ScannerError: mapping values are not allowed here in "/home/xucg/car_exp_ws/install/car_urdf/share/car_urdf/launch/gazebo.launch", line 16, column 26
- XacroException: name 'base link point' is not defined
when evaluating expression 'base link point'

在这里插入图片描述

解决办法

删除掉 package.xml 里面的 robot_state_publisher 这行,再次编译运行即可。

在这里插入图片描述

问题二:rviz 启动报错

解决办法

将 .rviz 文件中 Gloabl Options 的 Fixed Frame 修改成 xacro 中已经声明的 Link (base link 或者 base_footprint),这个报错是我从其他地方复制的 rviz 文件会有问题。这个也可以在 rviz 界面的左上角参数自己修改。

在这里插入图片描述

在这里插入图片描述

问题三:rviz 中 wheel 一直指向 base_link

我的模型是四轮转向模型,转向器是跟base_link连接,车轮是跟转向器连接,所以这里的指向是不对的,它会出现下图的报错找不到 transform

[rviz2-10] Error:TF_NAN_INPUT: Ignoring transform for child frame id "left_front_wheel_Link" from authority "Authority undetectable" because of a nan value in the transform (nan nan nan)(nan nan nan nan)
[rviz2-10] at line 235 in ./src/buffer core.cpp
[rviz2-10] TF DENORMALIZED QUATERNION: Ignoring transform for child frame id "left_front_wheel_Link"
[rviz2-10] Error:from authority "Authority undetectable" because of an invalid quaternion in the transform (nan nan nan nan)

注意:修改.rviz文件中Tree是没用的,我尝试过

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

解决方法

上述报错的原因说是robot_state_publisher只能发布静态信息(fixed),不能发布动态信息(continues),解决办法是多启动一个 joint_state_publisher 就行

注意:如果还启动了 joint_state_broadcaster 还要把这个注释掉

在这里插入图片描述

    robot_state_publisher = Node(package='robot_state_publisher',executable='robot_state_publisher',parameters=[{'use_sim_time': True}, params, # {"publish_frequency":15.0},],output='screen')joint_state_publisher_node = Node(package='joint_state_publisher',executable='joint_state_publisher',)# gazebo在加载urdf时,根据urdf的设定,会启动一个joint_states节点# 关节状态发布器# joint_state_broadcaster = ExecuteProcess(#         cmd=['ros2', 'control', 'load_controller', '--set-state', 'active', 'joint_state_broadcaster'], #         output='screen'#     )

问题四:摄像头和opencv坐标系的问题

摄像头的坐标在 rviz 中是 Z 轴向上,X 向前,而在Opencv中是 Z 轴是向前,Y轴向上。

需要加上一个 camera_optical_jointcamera_link_optical,代码如下所示。

解决方法

        <link name="camera_link_optical"></link><joint name="camera_optical_joint" type="fixed"><!-- these values have to be these values otherwise the gazebo cameraimage won't be aligned properly with the frame it is supposedlyoriginating from --><origin xyz="0 0 0" rpy="${-pi/2} 0 ${-pi/2}"/><parent link="camera_link"/><child link="camera_link_optical"/></joint><gazebo reference="${prefix}_link"><sensor type="camera" name="camera_node"><visualize>true</visualize><update_rate>30.0</update_rate><camera name="head"><horizontal_fov>1.3962634</horizontal_fov><image><width>1280</width><height>720</height><format>R8G8B8</format></image><clip><near>0.02</near><far>300</far></clip><noise><type>gaussian</type><mean>0.0</mean><stddev>0.007</stddev></noise></camera><plugin name="gazebo_camera" filename="libgazebo_ros_camera.so"><ros><!-- <namespace>stereo</namespace> --><remapping>~/image_raw:=image_raw</remapping><remapping>~/camera_info:=camera_info</remapping></ros><camera_name>${prefix}</camera_name><frame_name>camera_link_optical</frame_name><hack_baseline>0.2</hack_baseline></plugin></sensor></gazebo>

在这里插入图片描述

问题五:雷达点很小显示不清晰

修改 Size 的显示大小,默认是0.01m,设置大点即可

在这里插入图片描述

问题六:在gazebo中显示雷达和图像

在这里插入图片描述

解决方法

增加 visualize 属性为 true 即可

 <visualize>true</visualize>

在这里插入图片描述

参考文章

1 No transform found between base link and wheels for the TF of my robot when setting odom as fixed frame. Robot steers just fine when sending twist messages to /cmd_vel
2 Rviz ERROR: No transform from [wheel_left_link] & [wheel_right_link] to [odom]
3 No transform from front_left_wheel to base_link

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/427043.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaWeb笔记整理——Redis

目录 Redis数据类型 各种数据类型的特点 Redis常用命令 字符串操作命令 哈希操作命令 列表操作命令 集合操作命令 有序集合操作命令 通用命令 在Java中操作Redis Spring Data Redis的使用方式 操作字符串类型的数据 ​编辑操作hash类型的数据 ​编辑 操作列表类…

Rasa对话模型——做一个语言助手

1、Rasa模型 1.1 模型介绍 Rasa是一个用于构建对话 AI 的开源框架&#xff0c;主要用于开发聊天机器人和语音助手。Rasa 提供了自然语言理解&#xff08;NLU&#xff09;和对话管理&#xff08;DM&#xff09;功能&#xff0c;使开发者能够创建智能、交互式的对话系统。 1.2…

《中国数据库前世今生》纪录片观感:从古至今数据库的演变与未来

我的数据库之路&#xff1a;从新手到稳步前行 三年数据库开发的经历&#xff0c;让我从一名菜鸟程序员逐步成长为能够独立解决问题的开发者。这段时间里&#xff0c;我经历过迷茫、困惑&#xff0c;也感受过技术攻关后的成就感。最近看了腾讯云推出的《中国数据库前世今生》纪…

ARM相关概念

ARM课程大纲 ARM相关的基本概念 机器码 计算机能够识别由1和0组成的编码格式 汇编&#xff1a;将汇编文件转换为二进制文件&#xff08;.bin/.elf&#xff09; 汇编指令 是一条具备特殊功能的指令 编译&#xff1a;生成汇编文件 int a 10; ------> mov r0 #10 …

架构师:在 Spring Cloud 中实现全局异常处理的技术指南

1、简述 在分布式系统中,微服务架构是最流行的设计模式之一。Spring Cloud 提供了各种工具和库来简化微服务的开发和管理。然而,随着服务的增多,处理每个服务中的异常变得尤为复杂。因此,实现统一的全局异常处理成为了关键。本篇博客将介绍如何在 Spring Cloud 微服务架构…

Docker日志管理

ELK Filebeat Filebeat 是 ELK 组件的新成员&#xff0c; 也是 Beat 成员之一。基于 Go 语言开发&#xff0c; 无任何依赖&#xff0c; 并且比 Logstash 更加轻量&#xff0c; 不会带来过高的资源占用&#xff0c; 非常适合安装在生产机器上。轻量意 味着简单&#xff0c;Fileb…

51单片机-DA(数字转模拟)

作者&#xff1a;Whappy 个人理解&#xff1a;将电压或电流信号进行等分或不等分&#xff08;高电平的电压范围和低电平的范围&#xff0c;如0-5v&#xff0c;0-1.8位低电平&#xff0c;3.8-5v为高电平&#xff09;&#xff0c;同样也是通过采样&#xff0c;量化等操作将不连续…

苍穹外卖Day01-2

目录 导入接口文档 创建项目​编辑 导入接口文件 ​编辑 导入结果界面​编辑 Swagger 介绍 如何集成 Swagger&#xff1f; 1.添加依赖 2.配置 Swagger 3.创建 Swagger 配置类 4.使用注解生成文档 5.访问 Swagger UI 6.Swagger 的优势 导入接口文档 yApi接口管理平台h…

Oracle从入门到放弃

Oracle从入门到放弃 左连接和右连接Where子查询单行子查询多行子查询 from子句的子查询select子句的子查询oracle分页序列序列的应用 索引PL/SQL变量声明与赋值select into 赋值变量属性类型 异常循环游标存储函数存储过程不带传出参数的存储过程带传出参数的存储过程 左连接和…

【数据结构】排序算法系列——堆排序(附源码+图解)

堆排序 堆排序基于一种常见的**[[二叉树]]结构**&#xff1a;堆 我们前面讲到选择排序&#xff0c;它在待排序的n个记录中选择一个最小的记录需要比较n一1次。本来这也可以理解&#xff0c;查找第一个数据需要比较这么多次是正常的&#xff0c;否则无法知道它是最小的记录。 …

BCLinux您的授权码是无效的,请获得正确的授权码来注册大云Linux操作系统

更新yum源老弹出这个&#xff0c;很烦人。 [rootlocalhost yum.repos.d]# yum clean all 服务器检查结果: ***信息***您的授权码是无效的&#xff0c;请获得正确的授权码来注册大云Linux操作系统。您可以使用bclinux-license -g命令获得机器码&#xff0c;然后与我们联系帮您产…

网络安全:建筑公司会计软件遭受暴力攻击

黑客正在暴力破解基金会会计服务器上高权限账户的密码&#xff0c;这些账户广泛用于建筑行业&#xff0c;从而侵入企业网络。 这一恶意活动最先被 Huntress 发现&#xff0c;其研究人员于 2024 年 9 月 14 日检测到了此次攻击。 Huntress 已经发现这些攻击对管道、暖通空调、…

ChatGPT提示词-中文版(awesome-chatgpt-prompts中文版)

原是Github上110.6K星的项目&#xff1a;GitHub - f/awesome-chatgpt-prompts: This repo includes ChatGPT prompt curation to use ChatGPT better. 我翻译成了中文需要自提 我用夸克网盘分享了「Chat GPT提示词.csv」&#xff0c;点击链接即可保存。打开「夸克APP」在线查看…

考研数学精解【3】

文章目录 重要公式定理运算公式大全 重要公式定理 运算公式大全

VirtualBox7.1.0 安装 Ubuntu22.04.5 虚拟机

环境 &#xff08;1&#xff09;宿主机系统&#xff1a;Windows10 &#xff08;2&#xff09;虚拟机软件&#xff1a;VirtualBox7.1.0 &#xff08;3&#xff09;虚拟机系统&#xff1a;Ubuntu 22.04.5 LTS (Jammy Jellyfish) 安装虚拟机 &#xff08;1&#xff09;第一步…

MyBatis中一对多关系的两种处理方法

目录 1.多表联查&#xff08;通过collection标签的ofType属性&#xff09; 1&#xff09;mapper 2&#xff09;mapper.xml 3&#xff09;测试代码 4&#xff09;测试结果 2.分布查询(通过collection标签的select属性) 1&#xff09;mapper 2&#xff09;mapper.xml 3&#xff0…

【机器学习】--- 生成对抗网络 (GANs)

生成对抗网络 (GANs) —— 机器学习中的一个热点 生成对抗网络&#xff08;GANs, Generative Adversarial Networks&#xff09;近年来在机器学习领域成为一个热点话题。自从Ian Goodfellow及其团队在2014年提出这一模型架构以来&#xff0c;GANs 在图像生成、数据增强、风格转…

Android开发高频面试题之——Android篇

Android开发高频面试题之——Android篇 Android开发高频面试题之——Java基础篇 Android开发高频面试题之——Kotlin基础篇 Android开发高频面试题之——Android基础篇 1. Activity启动模式 standard 标准模式,每次都是新建Activity实例。singleTop 栈顶复用。如果要启动的A…

使用Docker安装 Skywalking(单机版)

使用Docker安装 Skywalking&#xff08;单机版&#xff09; 文章目录 使用Docker安装 Skywalking&#xff08;单机版&#xff09;Skywalking 介绍Skywalking 安装 Skywalking 介绍 Skywalking官网 分布式系统的应用程序性能监视工具&#xff0c;专为微服务、云原生架构和基于容…

水果成熟度检测系统源码分享

水果成熟度检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer V…