树莓派无人机开发指南之一:系统篇

2023-05-16

一、树莓派介绍

树莓派作为一款物美价廉的微型电脑,被广发应用于物联网、开源电子和机器人等领域。它的官方组织是Raspberry Pi foundation,并被Broadcom公司支持。树莓派版本从2012年开始至今发展了很多代,最新的是Raspberry Pi 4B,已经自带GPU,功能很强大,各版本的详细参数对比可以参考:

https://socialcompare.com/en/comparison/raspberrypi-models-comparison#:~:text=RaspberryPI models comparison , 12 more rows

在这里插入图片描述树莓派堪比微型电脑中的性价比之王,对于硬件设计者来说,看到树莓派的感觉就是,它实在太便宜了。所以对于无人机开发者来说,把树莓派作为机载电脑是很自然的选择,并且满足很多初级应用已经足够。

二、树莓派无人机软件框架

在这里插入图片描述

图1. 树莓派无人机软件框架

三、树莓派操作系统选择和分析

支持树莓派的操作系统选择挺多,但不是都适合做无人机应用开发,我们针对我们尝试的操作系统具体分析如下:

(1)Raspbian系统

Raspbian系统是树莓派官方开发和维护的系统,官网是:https://www.raspbian.org。该系统基于Debian Linux内核,版本更新较快,现在最新的是Raspbian Buster,可以支持从model 1到model 4所有硬件型号。

在这里插入图片描述

图2. 树莓派Raspbian系统界面

该系统的功能对树莓派自身生态支持是最好的,支持树莓派自己维护的镜像库,对各类外设如wifi,蓝牙,摄像头,GPIO等物联网应用支持都不错,也支持可视化编程等教育应用。不足之处在于对于无人机开发而言,我们需要的是它对ROS和无人机配套软件的支持,这点相对欠缺。笔者通过尝试发现,Raspbian系统对ROS软件库的支持很弱,安装步骤复杂且容易失败。例如:

  • 针对ROS melodic的安装:

http://wiki.ros.org/ROSberryPi/Installing ROS Melodic on the Raspberry Pi
步骤相比一般的ROS在ubuntu下的安装复杂很多。

  • 针对mavros包的安装:

Mavros包是做无人机开发应用的必备软件基础,它承担的作用是把用户在机载电脑的指令转化为底层飞控支持的指令。在尝试安装mavros库的时候,由于该库需要依赖很多其他软件,但所依赖的软件没有apt的编译版本,导致安装风险很大。用户只有把所有依赖软件重新在Raspbian下编译通过才有可能成功,经测试发现所依赖的软件有几十个。搜索得到的方法经尝试都未能成功,且维护起来很不便。

参考链接有:
https://answers.ros.org/question/232631/how-to-install-mavros-on-raspbian-for-rpi/

https://blog.csdn.net/Lin_QC/article/details/88900139

所以,针对无人机开发应用,Raspbian系统是不推荐的。

(2)Ubuntu Mate系统

Ubuntu mate系统是ubuntu linux系统的一个衍生版本,相比于ubuntu而言,它适用于计算能力受限的应用。对于树莓派,它只支持model 2, 3, 3+的b系列和model 4,至少需要5GB的SD卡空间。现在ubuntu mate的系统已经更新到ubuntu mate 20.04。对于不同树莓派版本,用户需要注意选择的ubuntu mate系统适配性,例如ubuntu mate 16.04不能在model 3b+上使用。

在这里插入图片描述

图2. Ubuntu Mate系统界面

依赖于ubuntu强大的软件生态,在ubuntu mate下面进行无人机软件开发相对容易很多。例如对于ROS的安装,可以直接参考官方安装步骤,推荐安装ros-melodic-desktop-full:
http://wiki.ros.org/melodic/Installation/Ubuntu

对于mavros的安装,针对ROS melodic,安装命令为:

sudo apt update
sudo apt install ros-melodic-mavros

当然,整个过程不是这么直接,用户经常会遇到国内网络封锁和github访问的问题,对于入门新手而言,安装系统和ROS的时间往往耗费很多效果却差强人意,只有经历了重复安装尝试才能知悉其中所有的细节问题。

Ubuntu mate也有它不足之处,除了版本更新和硬件匹配的问题,ubuntu mate在UI用户界面上占用的资源导致它实际运行的效率不是很高,例如对CPU的占用偏高,硬盘空间占据也较大。这对无人机开发而言是个麻烦,因为无人机的软件相对比较复杂,编译和运行过程都会消耗较多系统资源。这种情况下,考验用户对系统资源把握的要求就挺高了。
我们针对树莓派model 3b+ (16G SD flash)和ubuntu mate 18.04的配置测试如下,可以发现在不启动额外任务的情况下,系统CPU占用率为7.8%(不含top进程),在操作中我们也会发现系统对交互的响应不是很快,尤其是在做软件开发时有短暂的卡顿发生。

在这里插入图片描述

图3. Ubuntu Mate 18.04系统资源占用明细

(3)ubuntu其他优化版本

ubuntu其他优化版本也是可行的方案之一,例如ROS官方链接
http://wiki.ros.org/ROSberryPi/Installing ROS Kinetic on the Raspberry Pi中推荐的Ubuntu 16.04 (LXDE) 和ROS Kinetic镜像,可以支持树莓派model 3 和model 3b+。该镜像系统采用的是Lubuntu系统(可以理解成轻量级桌面设计的ubuntu系统),官方链接为:https://lubuntu.net/

在这里插入图片描述

图4. Lubuntu系统

Lubuntu相比ubuntu和ubuntu mate而言,对硬件的要求更低,资源利用率更高,目前Lubuntu的版本支持到19.04版本,相比ubuntu mate而言更新稍慢。
我们建议用户可以使用ubiquityrobotics提供的镜像,因为可以省去很多不必要的ROS安装操作。尽管如此,对于国内用户仍然有许多需要设置的地方,如语言,更新库,ROS更新等。
我们云讷科技团队的树莓派无人机产品系列采用的方案基于Lubuntu镜像,在此基础上预装了opencv, python开发环境,mavros,mavlink等软件,并在底层配置上做了更多优化如系统启动项,在资源有限的情况下更大支持了用户对无人机软件的开发需求。

在这里插入图片描述

图5. 云讷科技优化的Lubuntu系统

同样,我们在同等硬件配置树莓派model 3b+ (16G SD flash)下测试结果如下图所示,该系统在开发过程中相比ubuntu mate而言更加顺畅快捷,不会有卡顿现象。采用top和df命令查看系统资源可以发现:用户资源使用率为5.6%(不含top进程)。

在这里插入图片描述

图6. Lubuntu系统系统资源占用明细

(4)总结

各操作系统的利弊总结分析如下:

系统选择能否方便支持无人机开发软件硬件资源使用效率整体意见
Raspbian中等不推荐
Ubuntu Mate稍低,有卡顿可以使用,但不够优化
Lubuntu满意推荐

四、关于我们

更多后续内容敬请期待,未来我们将谈谈更多树莓派无人机可以实现的有趣的事。

文中的树莓派无人机可以在云讷科技的官方淘宝店铺采购得到:
https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.50111deb88O0ii&ft=t&id=611162705139
在这里插入图片描述

云讷科技(深圳)有限公司是一家立足智能软硬件技术积累,面向科技教育行业的公司,公司旨在提供优质的科技教育产品,传播科技文化。公司现提供以下产品和服务:

  1. 提供基于无人系统技术的教育产品和课程,如可编程无人机/无人车、人工智能教育等
  2. 提供少儿可视化编程软件产品和课程,如python, scratch等
  3. 公司同时提供部分无人机行业核心解决方案,如飞行控制器,无人机操作系统等
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

树莓派无人机开发指南之一:系统篇 的相关文章

  • STM32F103ZET6的中断管理

    1 STM32的中断 STM32的中断管理是属于内核部分的 xff0c 所以中断管理的寄存器也是属于内核组 xff0c 不属于芯片外设 xff0c 在查看相关资料的时候 xff0c 需要查看相对应的内核手册 STM32F103ZET6是Co
  • c语言strrchr()函数,C 库函数 – strrchr() ——jQuery中文网

    C 库函数 strrchr 描述 C 库函数 char strrchr const char str int c 在参数 str 所指向的字符串中搜索最后一次出现字符 c 一个无符号字符 的位置 声明 下面是 strrchr 函数的声明 c
  • 让我持续下去的理由

    牛仔裤 格子衬衫 运动鞋和双肩包 如果把这四个词放在一个人的身上 xff0c 似乎不用描述长相 xff0c 大家就对他的职业有了猜测 八成是个程序员吧 这个被笑称 月入五万过成月入五千样子 的群体 xff0c 以 收入高 脑回路简单 一成不
  • 一个工作多年的嵌入式工程师漫谈

    1 关于公司 公司是做什么的 xff1f 是属于项目型公司还是属于产品型公司 xff1f 我觉得公司分为两种 xff0c 一种做产品 xff0c 一种做项目 做产品的公司 xff0c 老板一般都会讲梦想 xff0c 情怀 梦想是什么 xff
  • 优秀APP启动页的设计思维

    一 APP启动项的定义 启动APP时 xff0c 第一画面一般都会是一张含有logo的图片 这张图片就叫做启动页面 二 APP启动页的设计方法 启动页设计要与主界页面要相似 xff0c 颜色 xff0c 风格等都不要有太大的跨度 xff0c
  • GAAS installlation on Ubuntu 18.04

    GAAS installlation on Ubuntu 18 04 GAAS 安装教程 xff1a document GAAS 中的安装教程中提到的 ROS Kinetic xff08 LTS 版 xff09 并不是最新的版本 xff0c
  • Django使用request和response对象

    size 61 large url http iluoxuan iteye com blog 1738522 url size 当请求一张页面时 xff0c Django把请求的metadata数据包装成一个HttpRequest对象 xf
  • 去哪儿网2015校招研发类笔试题

    从网上找到的题目 xff0c 自己做了一遍 1 二分查找 2 给定一个字符串 xff0c 得到这个字符串中首先出现两次的那个字符 方法 xff1a 可以用一个hash map或者数组来存储字符出现的次数 xff0c 一旦有一个出现了2次 x
  • 如何查看mysql镜像参数_Docker中查看Mysql数据库中的各环境参数

    通过官方的文档可以看到运行MySQL容器的命令是 xff1a docker run name some mysql e MYSQL ROOT PASSWORD 61 mypwd d mysql tag 如 xff1a docker run
  • 趣味离散数学题(巧猜围棋子)

    甲手里有一个围棋子 xff0c 要乙来猜棋子的颜色是白的还是黑的 xff0e 条件是 xff1a 只允许乙问一个只能回答 是 或 否 的问题 xff0c 但甲可以说真话 xff0c 也可以说假话 xff0e 问乙可以向甲提出一个什么问题 x
  • nrm安装与使用

    一 什么是nrm nrm 是一个 npm 源管理器 xff0c 允许你快速地在 npm源间切换 什么意思呢 xff0c npm默认情况下是使用npm官方源 xff08 使用npm config ls命令可以查看 xff09 xff0c 在国
  • Docker中的Dockerfile命令详解FROM RUN COPY ADD ENTRYPOINT...

    Dockerfile指令 这些建议旨在帮助您创建高效且可维护的Dockerfile FROM FROM指令的Dockerfile引用 尽可能使用当前的官方图像作为图像的基础 我们推荐Alpine图像 xff0c 因为它是严格控制的并且尺寸小
  • 视觉单词模型、词袋模型BoW

    多用于图像检索 分类 3 2 1 4 视觉单词模型 视觉词袋 xff08 BoVW xff0c Bag of Visual Words xff09 模型 xff0c 是 词袋 xff08 BoW xff0c Bag of Words xff
  • 卡尔曼滤波器推导与解析 - 案例与图片

    在SLAM的后端优化中有存在这两大类优化方法 滤波器优化和非线性优化 目前大多数基于视觉的SLAM算法都是采用的非线性优化的相关方法 如应用较多的G2O图优化框架 但是滤波器的方法仍然在某些情况下有应用 且以前不少论文都是基于滤波器优化的方
  • Ubuntu下使用USB串口接收数据

    环境 xff1a VMware xff0c Ubuntu 14 xff0c uBlox EVK M8L 1 把包含USB接口的uBlox插入PC中 xff0c 确定虚拟机右下角uBlox连接到虚拟机中 xff1b 2 在Ubuntu的终端中
  • docker ubuntu桌面

    docker run it rm p 8080 80 dorowu ubuntu desktop lxde vnc 转载于 https www cnblogs com fengjian2016 p 11417340 html
  • 三种蓝牙架构实现方案(蓝牙协议栈方案)

    蓝牙架构实现方案有哪几种 xff1f 我们一般把整个蓝牙实现方案叫做蓝牙协议栈 xff0c 因此这个问题也可以这么阐述 xff1a 蓝牙协议栈有哪些具体的架构方案 xff1f 在蓝牙协议栈中 xff0c host是什么 xff1f cont
  • linux 与 单片机 串口通信

    本人最近在尝试在linux下用串口与单片机通信 xff0c 虽然说网上资料例程五花八门 xff0c 但是缺乏严格的注释或者完整的实例 xff0c 或许本人能力有限 xff0c 某些问题无法理解 xff0c 在实际过程中遇到不少问题 xff0
  • 【异常】postman能够请求成功获取到参数,前端请求的却请求不到

    1 前端联调的时候 xff0c 反馈自己的参数没有生效 xff0c 无论传递任何参数都是一样的结果 盯了一下日志发现 postman请求的是 34 getParameter 34 34 provinceCode 34 34 11 34 34
  • JavaScript自动播放背景音乐

    问题描述 js控制audio自动播放音乐时报错 xff1a Uncaught in promise DOMException 我的报错之前的代码 xff1a code lt audio id 61 34 myaudio 34 src 61

随机推荐

  • 创建实例报错 未找到主机

    删除nova服务 重新注册 转载于 https www cnblogs com lsw blogs p 11594602 html
  • 创建实例 报错 secret 密钥找不到

    lt secret ephemeral 61 39 no 39 private 61 39 no 39 gt lt uuid gt 0668cc5e 7145 4b27 8c83 6c28e1353e83 lt uuid gt lt usa
  • C语言求1-1/3+1/5-1/7+...——小程序,大道理

    问题 xff1a 用C语言编写程序求1 1 3 43 1 5 1 7 43 示例 xff1a 1 include lt stdio h gt 2 void main 3 int n 61 1 4 float sum 61 0 a 61 1
  • C程序设计 (第三版) 谭浩强著 中文高清PDF版下载

    C程序设计 第三版 谭浩强著 中文高清PDF版下载 转载于 https www cnblogs com gavinhughhu archive 2009 12 08 1619072 html
  • 浅谈OCR之Onenote 2010

    上一次我们讨论了Tesseract OCR引擎的用法 xff0c 作为一款老牌的OCR引擎 xff0c 目前已经开源 xff0c 最新版本3 0中更是加入了中文OCR功能 xff0c 再加上Google的更新 维护 xff0c 可以说是潜力
  • element-ui弹窗实现自定义宽度

    lt el dialog title 61 34 title 34 visible sync 61 34 hiddenDialogCommon 34 width 61 34 width 34 64 close 61 34 closeDilo
  • Linux内核设计与实现 原书第3版中文版pdf

    下载地址 xff1a 网盘下载 内容简介 编辑 Linux内核设计与实现 原书第3版 基于Linux 2 6 34内核详细介绍了 Linux内核系统 xff0c 覆盖了从核心内核系统的应用到内核设计与实现等各方面的内容 Linux内核设计与
  • STM32电路设计注意

    以后画STM32的电路板 VDDA一定要接 张JF说 VDDA是给内部的时钟电路供电的 还有一定要留 串口或者 下载调试口 xff08 串口 xff09 或者显示器接口 输入输出设备最好都留着 这样才能方便调试 转载于 https www
  • Kerloud vision 视觉无人机室内定位演示

    产品介绍 云讷科技 xff08 深圳 xff09 有限公司作为无人机之都的一家创业公司 xff0c 旨在立足智能技术 xff0c 传播科技文化 xff0c 可以提供以无人系统为主打的行业方案和教育方案 xff0c 包括无人机飞行控制器 视觉
  • 欢迎走进VSLAM

    1 开启新技术之门 SLAM xff0c 全称叫做Simultaneous Localization and Mapping xff0c 中文叫做同时定位与建图 SLAM技术发展到如今已经几十年 xff0c 目前以激光雷达作为主传感器的SL
  • 《Opprentice: Towards Practical and Automatic Anomaly Detection Through Machine Learning》 笔记

    以下我为这篇 Opprentice Towards Practical and Automatic Anomaly Detection Through Machine Learning 做的阅读笔记 Jeanva ABSTRACT Howe
  • linux系统如何进行录屏

    linux系统如何录屏 安装SimpleScreenRecorder 按Ctrl 43 ALt 43 T打开终端 添加源 xff1a sudo add apt repository ppa maarten baert simplescree
  • 立体视觉 之 三个坐标系

    计算机视觉中 xff0c 常用的有三个坐标系 xff1a 图像坐标系 相机坐标系和世界坐标系 它们之间的关系 xff0c 可以通过三个变换 来表示 xff1a 仿射变换 xff0c 投影变换 xff0c 刚体变换 这三个变换是三维重构几何框
  • IIS部署网站(建站)

    双击IIS图标 xff0c 运行IIS服务器 xff1b 如下图所示 xff1a 2 IIS打开后 xff0c 选中网站 xff0c 然后右键 xff0c 在弹出的菜单中 xff0c 选择新建 xff0c 然后选择网站 xff1b 如下图所
  • 自动化学报投稿过程记录

    2017年2月28号 注册账号后投稿2017年3月2号 稿件状态中有了管理员的名字 xff0c 不再是默认的admin center xff0c 同时显示等待主编指定副主编2017年3月15号左右 等待编委选择审稿人2017年3月22号 收
  • 树莓派入门之装系统

    1 首先下载一个格式化SD卡的工具 xff0c 格式化SD卡https www sdcard org downloads formatter 4 eula windows 2 下载Win32 DiskImager xff0c 这是一个把镜像
  • php的la框架,PHP“企业模式”直观描述(lavale,yii,thinkphp)

    相信大家都接触过php框架吧 xff0c lavale xff0c yii xff0c thinkphp xff0c 简单来书这些都是企业模式 这些模板虽然各不相同 xff0c 各具优势 xff0c 但是归根结底都是一样的 xff0c 框架
  • 网络摄像头100万至500万分辨率多少?传输带宽占用多少?存储空间是多少?

    网络摄像头100万 200万 300万 400万 500万分辨率多少 xff1f 传输带宽分别是多少 xff1f 存储空间是多少 xff1f 500W 2560 1920 300W 2048 1536 200W 1920 1080 200W
  • generate报错 make_melodic版本运行 catkin_make后报错

    因为之前貌似找不到navigation 所以我在src目录下git clone了官方的navigation 然后发现 43 43 43 processing catkin package 39 amcl 39 61 61 gt add su
  • 树莓派无人机开发指南之一:系统篇

    一 树莓派介绍 树莓派作为一款物美价廉的微型电脑 xff0c 被广发应用于物联网 开源电子和机器人等领域 它的官方组织是Raspberry Pi foundation xff0c 并被Broadcom公司支持 树莓派版本从2012年开始至今