PX4 SITL Gazebo 仿真时 libgazebo_multirotor_base_plugin 插件运行时出错

本文详细解析了在Gazebo中进行PX4软件在环仿真时,libgazebo_multirotor_base_plugin插件运行时出现的错误原因。问题源于mav_msgs::msgs::MotorSpeed消息的冲突,具体为sitl_gazebo和rotors_simulator功能包之间的动态库冲突。解决方法是移除重复的libmav_msgs.so库文件。

PX4 SITL Gazebo 仿真时 libgazebo_multirotor_base_plugin 插件运行时出错

问题描述

在 Gazebo 中进行 PX4 的软件在环仿真时,执 make px4_sitl gazebo命令时,整个编译过程都没问题,但是编译完成后,在启动 gazebo 时出现黑屏,报错如下:

gzserver: symbol lookup error: ~/Firmware/build/px4_sitl_default/build_gazebo/libgazebo_multirotor_base_plugin.so: undefined symbol: _ZN8mav_msgs4msgs10MotorSpeedC1Ev

原因分析

初步分析:

  1. 能成功编译但是启动时出错,说明这是运行时错误。
  2. 根据错误信息,可确定是与 libgazebo_multirotor_base_plugin插件有关,具体来说是与 mav_msgs有关。

经过反复的研究,确定具体错误如下:
libgazebo_multirotor_base_plugin.cpp源代码中使用了mav_msgs::msgs::MotorSpeed消息,Firmware/Tools/sitl_gazebo/msgs目录中存有 MotorSpeed.proto消息的定义文件。该消息实际上并不是mav_msgs功能包中定义的,在sitl_gazebo目录中的CMakeLists.txt文件中部分代码如下:

set
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值