Mavros: 错误:“BODY_FRD”不是“mavlink::common::MAV_FRAME”的成员

创建于 2020-05-07  ·  13评论  ·  资料来源: mavlink/mavros

你好,
构建 ~/catkin_ws 时,我收到此错误消息

/catkin_ws/src/mavros/mavros_extras/src/plugins/odom. cpp:228 :53: 错误:“BODY_FRD”不是“mavlink::common::MAV_FRAME”的成员
msg.child_frame_id = utils::enum_value(MAV_FRAME::BODY_FRD);

有人知道如何解决吗?

build error question

最有用的评论

好吧,似乎情况正好相反。 由于https://github.com/mavlink/mavlink/pull/1112,mavlink版本 2020.5.5 也中断了

我认为用硬编码值替换 enum_value 的临时解决方案,直到它在上游修复。

所有13条评论

更新 mavlink 包。

好吧,似乎情况正好相反。 由于https://github.com/mavlink/mavlink/pull/1112,mavlink版本 2020.5.5 也中断了

我认为用硬编码值替换 enum_value 的临时解决方案,直到它在上游修复。

谢谢 vooon,昨天我对这个错误很着迷!

关闭此已解决。 但如果需要,请随时重新打开。

嗨,几分钟前我开始了一个新项目,但问题仍然存在......(我已经像你一样修复了它)。
我已按照此处的说明进行操作
https://github.com/mavlink/mavros/tree/master/mavros#installation
可能主版本有问题(未随您的更改更新)?

@Cristian-wp 提交是为了掌握。 尝试git pull

@vooon你也许可以帮助我。 以上似乎是由 mavlink 删除框架引起的,我认为这可能是不正确的。
你能帮我理解那个移除是否合适吗? 见https://github.com/mavlink/mavlink/pull/1112#issuecomment -625050092

已编辑。 现在我看到你很难编码来解决这个问题。 这告诉我我们需要 MAV_FRAME_BODY_FRD - 对吗? 我的假设是我们不需要 FLU 变体?

@hamishwillee不幸的是,我不确定,我的提交只是解决编译问题的快速修复。
我记得 BODY_NED 实际上是 FRD,所以它引入了一些减少混淆。

https://github.com/mavlink/mavros/commit/1789e810d59cdad70ac0ada134254c96b05a06ed#diff -750c83d1bf274515183c544f142bac77 odom只使用FRD,不使用FLU。

@vooon仅供参考,MAV_FRAME_BODY_FRD 刚刚被添加回 common.xml :-)

@hamishwillee谢谢! 我会尽快发布软件包。

我解决了这个问题如下:

  1. 卸载 mavlink:

sudo apt-get remove ros-kinetic-mavlink

  1. 克隆 mavlink-gbp-release:

cd catkin_ws/src/
git clone https://github.com/mavlink/mavlink-gbp-release.git
cd mavlink-gbp-release
git checkout release/kinetic/mavlink

  1. 构建柳絮工作区:

cd ~/catkin_ws
catkin clean -y
catkin build

此页面是否有帮助?
0 / 5 - 0 等级