从0制作自主空中机器人-3-【环境与常用软件安装】
从0制作自主空中机器人-3-【环境与常用软件安装】
MGodmonkey关于本课程:
本次课程是一套面向对自主空中机器人感兴趣的学生、爱好者、相关从业人员的免费课程,包含了从硬件组装、机载电脑环境设置、代码部署、实机实验等全套详细流程,带你从0开始,组装属于自己的自主无人机,并让它可以在未知的环境中自由避障穿行。
本次课程的重心主要落在自主空中机器人的搭建、代码部署及调试上,关于自主空中机器人的一些理论基础,例如动力学模型,路径搜索,轨迹规划,地图构建等内容。
课程视频
B站:【完结】从0制作自主空中机器人 | 开源 | 浙江大学Fast-Lab
深蓝学院:从0制作自主空中机器人
相关源码
1. 机载电脑环境安装
机载电脑推荐环境
系统:Ubuntu20.04 LST
ROS1:noetic
ROS2:foxy
说明:ROS1和ROS2可以安装在同一个系统,但需要进行一点配置,见【ROS1和ROS2的共存问题】
目前很多算法,包括本教程都是基于ROS1的版本,但ROS2对比ROS1优势很大,而且ROS1目前已经宣布将会在2023年停止更新,因此ROS2已经是大众所趋,建议学有余力的同学在学完ROS1后可以顺带连ROS2也一起学了
1.1 Ubuntu安装
视频教程如下:
- 镜像站地址: http://mirrors.aliyun.com/ubuntu-releases/20.04/ 下载 ubuntu-20.04.4 desktop-amd64.iso
- 烧录软件UltraISO官网:https://cn.ultraiso.net/
- 分区设置:
- **EFI系统分区(主分区)**512M
- **交换空间(逻辑分区)**16000M(内存大小的两倍)
- **挂载点/(主分区)**剩余所有容量
教程中推荐笔记本上也安装Ubuntu,但实际用下来并不推荐安装Ubuntu在笔记本上,很多软件Windows也有,而且笔记本的作用主要就是编辑并发送代码文件到机载电脑上,用VScode+MobaXterm+ssh+nomachine即可
1.2 ROS安装
推荐使用鱼香ros的一键安装脚本:一行代码搭建机器人开发环境(ROS/ROS2/ROSDEP)
1 | wget http://fishros.com/install -O fishros && . fishros |
开源地址:https://github.com/fishros/install
问题汇总:一键安装 | 鱼香ROS (fishros.org.cn)更多ROS的资源及教程参考:ROS资源汇总 | MGodmonkeyの世界
2. 必备软件安装
2.1 realsense驱动安装(RGB-D相机)
参考:https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md
添加秘钥
1 | sudo apt update |
添加安装源
1 | echo "deb [signed-by=/etc/apt/keyrings/librealsense.pgp] https://librealsense.intel.com/Debian/apt-repo `lsb_release -cs` main" | \ |
以下是README.pdf中的方法
1
2
3
4 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE ||
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u
- 安装包
1 | # 下面两个必装 |
- 测试
1 | realsense-viewer |
通过realsense-viewer
的指令来检查深度相机是否正确安装并显示
2.2 MAVROS
- 介绍
MAVROS相当于PX4飞控中的MAVLINK模块。MAVROS将话题转为MAVLINK格式消息发送给飞控,飞控中的MAVLINK模块将MAVLINK格式消息转化为uORB消息给PX4各模块间传递消息使用,也可以反过来从uORB消息一直到ROS话题。
代码示例看MAVROS Offboard control example就好了,讲得很清楚。
- 安装
1 | sudo apt-get install ros-noetic-mavros # 这里的noetic是ros的版本,其他版本自行更换名称 |
2.3 git、gcc、g++、python与make
1 | sudo apt install git # git |
检查版本
1 | git --version |
2.4 ceres、glog与ddyanmic-reconfigure
-
介绍
-
ceres是什么
Ceres Solver是一个开源**C++**库,用于建模和解决大型复杂的优化问题。它可以用于解决具有边界约束和一般无约束优化问题的非线性最小二乘问题。它是一个成熟,功能丰富且高性能的库。Ceres Solver是谷歌2010就开始用于解决优化问题的C++库,2014年开源。在Google地图,Tango项目,以及著名的SLAM系统OKVIS和Cartographer的优化模块中均使用了Ceres Solver。 -
glog是什么
glog是google出品的c++日志库,提供了很多非常不错的功能,例如日志分等级打印、条件打印、日志格式化、日志文件滚动大小等。
-
ddynamic-reconfigure是什么
ddynamic-reconfigure是一个ROS软件包,它提供了一个动态重新配置的框架,可以在运行时修改ROS节点的参数。它可以帮助用户在
不停止节点的情况下,实时地调整节点的参数,从而优化节点的性能。
-
-
下载并解压
3rd_party.zip
1 | wget https://gitee.com/pn_code/Fast-Drone-250/blob/master/3rd_party.zip |
- 编译安装
1 | cd ./glog |
这里的
libcxsparse3
如果有错误,参考下面这篇博客【安装Ceres相关依赖时libcxsparse3.1.2报错_安装ceres相关依赖项时显示找不到_振华OPPO的博客-CSDN博客】
2.4 ego-plannner
参考:ZJU-FAST-Lab/ego-planner (gitee.com)的**Readme.md**中的说明
- 安装uav_simulator需要的Armadillo库
1 | sudo apt-get install libarmadillo-dev |
-
下载源码
From github
1 | git clone https://github.com/ZJU-FAST-Lab/ego-planner.git |
Or from gitee
1 | git clone https://gitee.com/iszhouxin/ego-planner.git |
- 编译源码
1 | cd ego-planner |
- 执行
在ego-planner
文件夹的一个终端中,打开rviz进行可视化和交互
1 | source devel/setup.bash |
在ego-planner
文件夹的另一个终端中,打开仿真
1 | source devel/setup.bash |
3. 常用软件安装
- vscode
- 前往【vscode官网】下载Linux x64 deb包
- 使用
sudo apt install ****.deb
进行安装
- Terminator
- 多窗口命令行终端
- 使用
sudo apt install terminator
进行安装
- Plotjuggler
- 可视化时间时序的工具
- 使用
sudo apt install ros-noetic-plotjuggler ros-noetic-plotjuggler-ros
进行安装 - 使用
rosrun plotjuggler plotjuggler
进行查看
- Net-tools
- 网络工具包,用于查看linux的IP地址
- 使用
sudo apt install net-tools
进行安装 - 使用
ifconfig
进行查看IP地址
- ssh
- 使用
sudo apt install openssh-server
进行安装 - 使用ssh终端等工具连接上机载电脑
- 使用
以上工具的使用方式请自行前往度娘搜索
以上工具的阿里云盘下载地址:【下载入口】