当前位置: 首页 > news >正文

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.mrgr.cn/news/30264.html

相关文章:

  • Vue页面假死点不动现象Cannot read properties of undefined(reading ‘_wrapper‘)报错
  • 基于ECS实例搭建Hadoop环境
  • HTTP vs. HTTPS:从基础到安全的全面对比
  • 在Linux上部署(MySQL Redis Elasticsearch等)各类软件
  • HarmonyOS 沉浸式状态实现的多种方式
  • Linux C/C++ Socket 编程
  • C# 携手 7-Zip 命令行:大文件压缩的终极武器?
  • 电脑装系统装错了盘怎么恢复文件?全方位指南
  • 排序题目:三次操作后最大值与最小值的最小差
  • 智能车镜头组入门(四)元素识别
  • 图片翻译器,分享四款直接翻译图片的软件!
  • SourceTree保姆级教程3:(分支创建 及 合并)
  • 深入探讨 JVM 内存泄漏与溢出:定位与解决方案
  • VirtualBox7.1.0 安装 Ubuntu22.04.5 虚拟机
  • 【机器学习】OpenCV高级图像处理
  • 睢宁自闭症寄宿学校:培养特殊孩子的无限潜能
  • 【科技论文写作与发表】论文分类
  • springboot通过tomcat部署项目(包含jar、war两种方式,迄今为止全网最详细!2024更新..建议收藏,教学!万字长文!)
  • 当 PC 端和移动端共用一个域名时,避免 CDN 缓存页面混乱(nginx)
  • C++:类和对象全解
  • 海康威视摄像机和录像机的监控与回放
  • 【安当产品应用案例100集】017-助力软件服务商高效集成多因素认证
  • MySql调优(三)Query SQL优化(2)explain优化
  • 小学教师计算机培训教案
  • 【Linux】动静态库
  • python怎么打开文件对话框