【原创】树莓派4B + VSCode + MAVSDK-Python + PX4环境搭建

2023-05-16

一、前言

为了在树莓派下开发机载计算机相关功能,通过MAVSDK与PX4进行通讯需要搭建相关环境。以往都是东拼西凑最后成功编译运行,但过一段时间就得重新来过,年龄大了不能老这么折腾,这次记录一下,便于下次省点脑细胞。

二、树莓派4B刷机

        为什么要刷机呢,之前树莓派里有一个系统,里面安装了Python3.7,但是在安装和编译MAVSDK-Python的过程中,总是缺少一些库,索性直接重装后,问题解决。

 1. 下载镜像

           地址:Operating system images – Raspberry Pi

           根据系统选择合适的版本,我这里选64位带GUI的版本如下图所示:

           

 2. 用7zip解压缩下载的镜像

 3. 下载镜像烧录工具Win32DiskImager

        官网下载: Win32DiskImager

 4. 烧录镜像

       打开 树莓派镜像烧录工具,选择解压后的镜像

      选择刚刚解压的镜像文件,确认盘符待烧录的设备盘符是否正确

       烧录完成后,点击 OK 退出软件即可,此时,系统会弹出提示检测到磁盘需要格式化,要点击取消。

 三、树莓派安装MAVSDK_Python

        进入新安装的【2022-04-04-raspios-bullseye-arm64.img】树莓派系统,它默认安装了python3.9。按照MAVSDK-Python官方文档 描述的安装命令下载起来太慢了,我们直接用清华Python镜像下的mavsdk_python,命令如下:

pip3 install mavsdk -i https://pypi.tuna.tsinghua.edu.cn/simple

四、安装VsCode

        1. 下载deb安装包

             Download Visual Studio Code - Mac, Linux, Windows

             由于我们前面安装的是64位系统,所以这里我们选择ARM 64版本的VsCode。    

              

                

         2. 安装VSCode

                 进入到安装文件所在目录,执行以下命令,其中-i后的安装包名要与实际文件名一致。

sudo dpkg -i code_1.67.2-1652811872_arm64.deb

 五、运行MAVSDK_Python例程

        1. 克隆MAVSDK-Python到本地

        GitHub - mavlink/MAVSDK-Python: MAVSDK client for Python.

        

        2. 打开VSCode及例程

              进入MAVSDK-Python-main文件夹下的examples文件夹下。通过终端输入“code .”命令打开VSCode,安装python插件。

   

       3. 查看串口号

           由于本次是用线直接连接树莓派和PX4,因此要知道PX4在树莓派里的串口号,连 “无线接数传模块” 也是一个道理,对于树莓派来说都是一个串口设备。以下命令用于过滤并列出系统自开机以来,所有的tty相关设备插拔的事件。那么多插拔几次线,看哪个是在重复出现,就说明PX是那个串口号了,比如本次的名称为:ttyACM0

dmesg | grep tty*

       4. 修改连接方式并运行。

          源码里的drone.connect所用的连接地址是"udp://:14540",如果是直接用线连接的PX4,从官方API文档 可知,连接字符串应如下:

 

drone = System()
await drone.connect(system_address="serial:///dev/ttyACM0:115200")

       至此,就可以将MAVSDK的例子运行起来了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【原创】树莓派4B + VSCode + MAVSDK-Python + PX4环境搭建 的相关文章

  • [linux下]理解Semaphore及其用法详解

    2009 05 12 13 13 Mutex 是一把钥匙 xff0c 一个人拿了就可进入一个房间 xff0c 出来的时候把钥匙交给队列的第一个 一般的用法是用于串行化对critical section代码的访问 xff0c 保证这段代码不会
  • JavaScript 数据结构——栈

    概念 栈是一种线性结构 xff0c 最大的特点就是先进后出 xff0c 后进先出 入栈push xff1a 出栈pop xff1a 实现 JavaScript中可以用数组表示栈 xff1a span class token keyword
  • Python matplotlib 以pdf形式保存图片

    import matplotlib pyplot as plt from matplotlib backends backend pdf import PdfPages short version plt plot range 10 plt
  • 基于数据报(UDP)编程的接口总结

    文章目录 Udp编程接口socket 创建套接字bind 将套接字绑定到指定的网络地址本机字节序和网络字节序 recvfrom 接收一个数据报并保存源地址 从数据报套接字接收数据调用格式函数功能 sendto 按照指定目的地向数据报套接字发
  • Android-自定义View集合

    学习安卓几个月了 xff0c 也有点自己的体会 xff0c 然而我发现自己真正喜欢的是数据方面的东西 xff0c 当然android自定义view也很好玩 xff0c 很体验一些技巧性的东西 也不想自己以前学习过程总结的东西就此淹没 xff
  • Nginx同一端口部署多个vue项目

    场景 大家在部署项目的时候会遇到 xff0c 只申请了一个公网端口 xff0c 但是需要将多个前端vue项目部署到同一域名同一端口下 xff0c 下面记录一下vue打包时如何配置以及nginx如何配置 我们这个项目有多个vue工程 xff0
  • 树莓派3B安装Ubuntu Mate18.04版

    树莓派3B为什么要装Ubuntu Mate版本 xff0c 因为轻量化 xff0c 就这么简单 1 相关器材 树莓派 xff1a Raspberry PI 3 Model B 树莓派3 microSD卡 闪迪16GB存储卡 HDMI线 读卡
  • 谷歌浏览器提示您的连接不是私密连接的解决方法

    谷歌浏览器是一款非常好用的网络浏览器 xff0c 但是最近有用户反应 xff0c 使用谷歌浏览器时出现提示 xff1a 您的连接不是私密连接 xff0c 这是怎么回事呢 xff1f 接下来就为大家分享使用谷歌浏览器过程中提示您的连接不是私密
  • ElasticSearch7索引管理--别名(基于kibana)

    ElasticSearch可以对一个或者多个索引指定别名 xff0c 通过别名可以查询到一个或者多个索引的内容 在内部ElasticSearch会自动把别名映射到相应的索引上 可以对别名编写过滤器或者路由 xff0c 在系统中别名不能重复
  • matlab粒子群优化算法路径规划代码解读

    前言 粒子群算法是一种群智能优化算法 xff0c 该算法具有原理简单 易实现 控制参数较少等优点 xff0c 下面根据Yarpiz公司的matlab代码就其在路径规划中的应用进行简单的介绍 xff0c 以供读者更好的理解粒子群优化算法的实际
  • (转载)OpenWrt下把SD卡挂载到 /overlay ,扩大软件空间

    在wall内外搜索无数文章 xff0c 唯有这篇文章能够看得懂并奏效 xff0c 感谢作者 原文地址 xff1a https blog samnya cn mount sd card to overlay on openwrt 作者 xff
  • XTW100高速编程器WIN10驱动安装

    按照以下方法可以实现XTW100在WIN10系统下的驱动安装 xff0c 且不需禁用驱动强制签名 先去这个网站 xff1a https zadig akeo ie 下载这个软件件 xff1a zadig 2 5 exe 由于你懂的原因 xf
  • ffmpeg-python库的使用翻译(一)

    原文地址 xff1a https github com kkroening ffmpeg python xff0c 本文为google翻译 43 部分人工翻译 希望能对大家有用 ffmpeg python xff1a FFmpeg的Pyth
  • ffmpeg-python库的使用翻译(二)

    接上篇 ffmpeg python库的使用翻译 xff08 一 xff09 原文 xff1a https github com kkroening ffmpeg python tree master examples assemble vi
  • ffmpeg-python库的使用翻译(三)

    接上篇 ffmpeg python库的使用翻译 xff08 二 xff09 原文地址 xff1a https github com kkroening ffmpeg python blob master ffmpeg filters py
  • C语言中,利用宏定义一个字符串和字符数组定义的字符串其末尾都会自动添加\0字符

    C语言中 xff0c 利用宏定义一个字符串 define MYPHONE 34 AT 43 CMGS 34 字符数组的方式来定义一个字符串unsigned char SMS 61 34 HELLO WELCOME TO RCCTS 34 问
  • 串口卡住问题分析与解决

    对于消息类系统而言任何阻塞都会导致整个系统的消息被卡住造成系统假死的问题 今天来说说串口导致系统卡死的问题 1 问题说明 xff1a 路由器在挂机过程中 xff0c 偶现串口卡住 xff0c web页面进不去 xff0c 有限终端拿不到地址
  • HTTPS 协议到底比 HTTP 协议多些什么?

    来源 xff1a 公众号 杰哥的IT之旅 作者 xff1a 阿拉斯加 ID xff1a Jake Internet 原文地址 xff1a HTTPS 协议到底比 HTTP 协议多些什么 xff1f 大家好 xff0c 我是杰哥 最近卷了一篇
  • Python爬虫实战 | 利用多线程爬取 LOL 高清壁纸

    来源 xff1a 公众号 杰哥的IT之旅 作者 xff1a 阿拉斯加 ID xff1a Jake Internet 如需获取本文完整代码及 LOL 壁纸 xff0c 请为本文右下角点赞并添加杰哥微信 xff1a Hc220088 获取 一
  • 拿来就用的脚本案例(三)

    大家好 xff0c 我是杰哥 xff08 鸽 xff09 之前给大家分享了 7 个非常实用的 Shell 拿来就用脚本实例 xff01 和 超硬核 xff01 11 个非常实用的 Python 和 Shell 拿来就用脚本实例 xff01

随机推荐