0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RoboMaster S1/EP SDK 在 Linux 下安装及使用

KiCad 来源:KiCad 作者:KiCad 2024-12-04 18:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

心心念的大疆 RoboMaster 机器人,终于以教小孩子编程的理由淘了一台回来。大疆的 RoboMaster EP 套装在 2023 年底停售了,而且也太贵,原价12000,于是在网上淘了一套二手的,不到3000块。孩子玩起来还爱不释手,还能顺便学编程。

在 Rust 群里得知有一个 Dora-rs (https://dora-rs.ai/) 框架,而其作者也是用 Robomaster S1 进行的演示,所以就趁孩子睡觉的时候,开始尝试捣鼓一下 RoboMaster SDK。

为了快速切换炮塔模式和机械臂模式,我单独买了一个喇叭,一个摄像头和一个 S1 的主控,安装在炮塔上,而原来的配件安装在机械臂和扩展支架上。

为了让 S1 可以使用 SDK 访问,需要 hack / root 进 S1 进行一些修改。所以如果你拥有或者买了 S1,尽量不要升级。因为大疆升级固件会进行封堵。网上能找到的破解方案在 ( https://github.com/collabnix/robomaster/ ),但是对于2023年3 月以后的固件,已经不能直接使用了。如果是较新的固件,还需要经过一些尝试和修改方可 root。

因为大疆还在销售 S1,目前社区倾向于不公开 root 的过程/代码,尽量不让大疆再针对性更新固件。修改并不难,所以还是自己尝试一下吧。

wKgZoWcy13uAWjajAAJA0SdmBFg791.png

大疆的 RoboMaster SDK ( https://github.com/dji-sdk/RoboMaster-SDK )最新更新已经是两年前了,要求 Python 3.10 以前的版本和 FFMPEG 4.x.x 的版本。我这里使用了 Python 3.8.18 和 FFmpeg 4.4.5。如果使用其他版本组合出现问题,可以按照我的版本来安装。

这里只描述一些包的配置安装,但是软件编译还需要一些编译器和其他库的依赖,我自己的电脑已经安装过了,请读者自己按需安装。如果本机的版本符合RoboMaster SDK对应的版本要求,也不需要单独安装。

假设我在某个目录下,例如 `/home/username/` 建立一个目录,比如 `RoboMaster`,下面我就以`ROOT` 指代这个目录`/home/username/RoboMaster`。

我使用的 Debian 12,只提供了 Python 3.11,所以要自己编译 Python。

从 Python.org 下载 Python 3.8.18 的源代码包,解压至`ROOT/`,进入 `ROOT/Python 3.8.18`,执行

# 注意这里 ROOT 要替代成你实际的路径configure --prefix=ROOT/local --enable-optimizationsmake -j`nproc`make install

下载 FFmpeg 4.4.5 ( https://www.ffmpeg.org/releases/ffmpeg-4.4.5.tar.xz ),同样解压到 `ROOT/`,进入 `ROOT/ffmpeg-4.4.5`,执行

./configure--enable-shared--prefix=$(dirname$PWD)/local#这里dirname$PWD的结果应该还是ROOTmake -j`nproc`make install

注意这里一定要加 `--enable-shared`,为了使用其他的优化 FFmpeg 的配置参数,请自行添加对应参数。

环境准备好了,开始正式安装 `RoboMaster SDK`

因为我选择在 `ROOT/local` 下安装了所需要的 Python 和 ffmpeg ,所以下面的执行和之后的运行都需要先设置一些环境变量。可以每次输入也可以编辑一个 shell 脚本通过 `source` 或者 `.` 来导入环境。

ROOT=/home/username/RoboMasterexport PATH=$ROOT/local/bin:$PATHexport LD_LIBRARY_PATH=$ROOT/local/lib:$LD_LIBRARY_PATH

我使用 `pipenv` 管理我的 python 环境,你可以使用其他自己熟悉的工具

pipenv --python 3.8pipenv shell

在 `ROOT` 下执行

git clone https://github.com/dji-sdk/RoboMaster-SDK.gitcd RoboMaster-SDK/lib/libmedia_codec

编辑 `setup.py` 文件,为 `cmake_args` 增加:

'-DCMAKE_PREFIX_PATH=' + 'ROOT/local'

注意符合 Python 语法以及注意替换 ROOT 为你实际的路径

修改`CMakeLists.txt`,为 `IF (CMAKE_SYSTEM_NAME MATCHES "Windows")` 一句的 `ELSE()` 增加:

target_include_directories(libmedia_codec PRIVATE "ROOT/local/include"))target_link_directories(libmedia_codec PUBLIC "ROOT/local/lib")

同样注意 CMake 语法和替换 ROOT 路径。

仍然在 `libmedia_codec` 目录下

python setup.py buildpython setup.py bdist_wheelpython setup.py install

如果没有出错误,可以使用命令

ldd build/lib.linux-x86_64-cpython-38/libmedia_codec.cpython-38-x86_64-linux-gnu.so

检查一下链接的 FFmpeg 库,比如 `libavcodec.so.58` 是否指向了我们自己编译的版本 (比如路径是 `ROOT/lib/libavcodec.so.58`,如果指向了系统的版本,可能会由于版本不兼容导致无法运行。

此时退回 `ROOT/RoboMaster-SDK` 目录,执行

python setup.py install

在我的机器上,它执行 numpy 安装失败了,需要再手动执行

pip install numpy

再执行

python setup.py install

才能安装成功。

如果一切安装顺序,下面可以运行 SDK 带的 demo 为验证一下。在 Linux 下,一般会启动防火墙,使得主机到 S1/EP 控制器连接失败,简单地方式就停掉防火墙,或者只需要开启 45678 端口的 udp及 tcp 的访问。

之后修改 `ROOT/RoboMaster-SDK/examples/01_robot/05_sta_conn_helper.py` 中 WiFi 路由器的 SSID 及密码,然后使用 python 运行此脚本,用机器人扫描二维码,应该就可以正确连接了。如果执行不成功,可以考虑关闭所有防火墙再测试一下。

好了, SDK 已经可以正确执行,可以快乐的编程了。后面我会尝试使用 `dora-rs` 框架和 `ROS2` 来控制,编程机器人。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11818

    浏览量

    219573
  • SDK
    SDK
    +关注

    关注

    3

    文章

    1112

    浏览量

    52029
  • RoboMasters
    +关注

    关注

    2

    文章

    9

    浏览量

    9221
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    AI定义座舱新高度|搭载天玑座舱S1 Ultra的奇瑞风云T9L

    AI 任务的基础。 计算架构上,S1 Ultra 的 CPU 采用全大核设计,提供高达 280K DMIPS 的强大算力,确保了风云 T9L 处理多任务并发时的
    的头像 发表于 02-12 16:19 2761次阅读
    AI定义座舱新高度|搭载天玑座舱<b class='flag-5'>S1</b> Ultra的奇瑞风云T9L

    ISO5852S-EP:高性能隔离式IGBT和MOSFET栅极驱动器的卓越之选

    就来深入探讨一TI推出的ISO5852S-EP隔离式栅极驱动器,看看它有哪些独特的特性和应用场景。 文件下载: iso5852s-ep.pdf 一、产品特性亮点 1. 高共模瞬态抗扰
    的头像 发表于 01-22 16:50 466次阅读

    光峰科技助力闪极科技发布loomos AI显示眼镜S1

    2025年12月29日,闪极科技发布loomos AI显示眼镜S1,闪极S1聚焦“主动AI提醒助手”,通过传感器持续感知环境、精准识别用户意图,关键时刻可推送信息提示,实现“关键时刻,一眼就够”的极致体验。
    的头像 发表于 01-06 09:15 796次阅读

    虹软助力夸克AI眼镜S1系列正式发布

    2025年11月27日,夸克AI眼镜正式发布,其中集 “拍摄神器” 与 “AI助理” 于一身的S1 系列影像、AI 交互、显示、佩戴体验以及续航能力等核心维度上实现了多重突破。作为该产品影像能力
    的头像 发表于 12-03 17:53 1870次阅读

    Windows和Linux环境分别使用Olimex和蜂鸟调试器下载程序

    ://doc.nucleisys.com/hbirdv2/quick_start/sdk.html 中的说明进行操作。 Linux系统使用Olimex ARM-USB-TINY
    发表于 10-31 08:26

    linux利用Hbird SDK对helloworld进行build

    最近板子还没到, 就先试了试蜂鸟SDK, 在按照QuickStart进行操作时发现跑不通. 可能是因为版本迭代问题, 查了查错, 做了修改, 在这里分享一. 我们
    发表于 10-27 06:29

    MediaTek发布天玑座舱S1 Ultra芯片

    MediaTek 3nm 旗舰座舱芯片——天玑 座舱 S1 Ultra 正式亮相,以先进的生成式 AI 技术和卓越的 3nm 制程,带来远超同级的算力突破与智能座舱体验。
    的头像 发表于 10-23 11:39 1162次阅读

    技术洞见:THEIA S1 &amp; S1 LITE 直播机实操效果真的棒!

    富视智通专业直播设备THEIA S1直播机家族即将推出该产品便携版—— THEIA S1 LITE ,以“轻量化”为核心设计理念,将专业直播系统的体积和重量压缩至传统设备的1/3,高效能多路4K直播
    发表于 08-25 15:39

    【Milk-V Duo S 开发板免费体验】SDK系统构建体验

    ; references the file "/usr/lib/x86_64-linux-gnu/libEGL.so"安装sudo apt-get install libegl1
    发表于 07-08 14:41

    linux使用cyusbserial SDK错误怎么解决?

    我使用的TI DLP3010EVM模块是通过CY7C65215 芯片进行控制的,我可以win环境正常使用TI DLP的调试软件或者使用cyusbserial SDK的vs程序完成对设备的控制
    发表于 06-03 07:46

    不借助Linux系统,Windows如何搭建ZMC900E交叉编译环境

    嵌入式Linux系统,由于系统资源的匮乏,通常无法安装本地编译器进行本地开发,而需要在借助一台主机进行交叉开发。一般情况主机安装相应的
    的头像 发表于 05-21 11:34 1087次阅读
    不借助<b class='flag-5'>Linux</b>系统,<b class='flag-5'>在</b>Windows<b class='flag-5'>下</b>如何搭建ZMC900E交叉编译环境

    使用SDK 1.3.4中内置的固件,USB传输4kV ESD失败了,怎么解决?

    使用基于 SDK 1.3.4 的固件、 进行 4kV ESD 测试时,设备复位,USB 传输失败,无法从 EP0 获取 UVC 探头和提交控制数据。 随后,没有进一步的数据传输,导致超时错误
    发表于 05-20 06:59

    索尼ILX-LR1相机远程遥控SDK V1.13.00载教程

    轩展科技作为SONY(中国)官方授权代理商, SONY ILX-LR1相机的最新版本SDK及其他资料都是由SONY(中国)授权发布,不仅权威,而且安全。为方便用户更便捷地找到SDK,将官方SD
    的头像 发表于 05-15 09:52 935次阅读
    索尼ILX-LR<b class='flag-5'>1</b>相机远程遥控<b class='flag-5'>SDK</b> V1.13.00<b class='flag-5'>下</b>载教程

    EZUSB FX3 SDK win10操作系统安装失败的原因?

    EZUSB FX3 SDK win10操作系统安装失败。
    发表于 04-30 07:54

    官网上下载的linux之下使用的canmvide如何安装

    官网上下载的linux之下使用的canmvide如何安装,有没有安装手册呢? 期待结果和实际结果
    发表于 04-29 06:24