From 642b8bf224f763800570938331eb5c1393fa12dc Mon Sep 17 00:00:00 2001 From: keita <16924591+keita_sakura@user.noreply.gitee.com> Date: Thu, 24 Sep 2026 09:52:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3mavsdk=E8=87=AA=E6=A3=80?= =?UTF-8?q?=E6=96=B9=E5=BC=8F:=204.x=E6=97=A0mavsdk=5Fserver=E5=8F=AF?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 改为直接加载libcmavsdk.so(构造offboard设定点复现加载点)+ldd链接检查, 并注明单测全绿不证明mavsdk已装(测试已打桩脱钩) --- docs/树莓派4B部署注意事项.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/docs/树莓派4B部署注意事项.md b/docs/树莓派4B部署注意事项.md index 1ece420..eba3051 100644 --- a/docs/树莓派4B部署注意事项.md +++ b/docs/树莓派4B部署注意事项.md @@ -55,9 +55,20 @@ pytest # 仅上机自测需要,部署运行可省 `undefined symbol: ..._M_futex_wait_until...` 不应复现。若仍报: `ldd | grep stdc` 确认链接对象,必要时用 `LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libstdc++.so.6` 兜底。 -- 安装后别只验证 import,要让内嵌二进制真跑一次: - `find ~/venv-pod -name mavsdk_server` 找到路径后直接执行(无参数即起服务, - Ctrl+C 退出),能打印启动信息说明架构匹配;`Exec format error` 则装错了架构。 +- 安装后别只验证 import,要让原生库真加载一次。**mavsdk 4.x 已无独立 + `mavsdk_server` 可执行文件**(2.x gRPC 架构的旧物),原生库是 + `mavsdk/lib/libcmavsdk.so`,正确自检: + + ```bash + # 复现设定点构造(原生库在此加载),打印 cmavsdk OK 即通过 + python -c "from mavsdk import offboard; offboard.VelocityBodyYawspeed(0,0,0,0); print('cmavsdk OK')" + # 动态链接齐全性(无输出=齐全) + ldd ~/venv-pod/lib/python3*/site-packages/mavsdk/lib/libcmavsdk.so | grep "not found" + ``` + + 报 `undefined symbol` 按上面 libstdc++ 条目排查;`Exec format error` 是架构装错。 + 注意:单测全绿**不**证明 mavsdk 已装或原生库健康(测试已打桩脱钩), + 本步不可替代。 - 连接串写法(`pod_bridge.json` 的 `px4.connection_string`): - Pi 串口直连飞控 TELEM:`serial:///dev/ttyUSB0:57600`(波特率按飞控侧设置); - 经数传/仿真:`udp://:14540`。