从0制作自主空中机器人-3-【环境与常用软件安装】

关于本课程:

本次课程是一套面向对自主空中机器人感兴趣的学生、爱好者、相关从业人员的免费课程,包含了从硬件组装机载电脑环境设置代码部署、实机实验等全套详细流程,带你从0开始,组装属于自己的自主无人机,并让它可以在未知的环境中自由避障穿行。

本次课程的重心主要落在自主空中机器人的搭建、代码部署及调试上,关于自主空中机器人的一些理论基础,例如动力学模型路径搜索,轨迹规划,地图构建等内容。

课程视频

B站:【完结】从0制作自主空中机器人 | 开源 | 浙江大学Fast-Lab

深蓝学院:从0制作自主空中机器人

相关源码

GitHub:https://github.com/ZJU-FAST-Lab/Fast-Drone-250

Gitee:https://gitee.com/pn_code/Fast-Drone-250

1. 机载电脑环境安装

机载电脑推荐环境

系统:Ubuntu20.04 LST

ROS1:noetic

ROS2:foxy

说明:ROS1和ROS2可以安装在同一个系统,但需要进行一点配置,见【ROS1和ROS2的共存问题】

目前很多算法,包括本教程都是基于ROS1的版本,但ROS2对比ROS1优势很大,而且ROS1目前已经宣布将会在2023年停止更新,因此ROS2已经是大众所趋,建议学有余力的同学在学完ROS1后可以顺带连ROS2也一起学了

1.1 Ubuntu安装

视频教程如下:

教程中推荐笔记本上也安装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. 添加秘钥
1
2
3
4
sudo apt update
sudo apt-get install apt-transport-https
sudo mkdir -p /etc/apt/keyrings
curl -sSf https://librealsense.intel.com/Debian/librealsense.pgp | sudo tee /etc/apt/keyrings/librealsense.pgp > /dev/null
  1. 添加安装源
1
2
3
echo "deb [signed-by=/etc/apt/keyrings/librealsense.pgp] https://librealsense.intel.com/Debian/apt-repo `lsb_release -cs` main" | \
sudo tee /etc/apt/sources.list.d/librealsense.list
sudo apt-get update

以下是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
2
3
4
5
6
# 下面两个必装
sudo apt-get install librealsense2-dkms
sudo apt-get install librealsense2-utils
# 下面两个可选,主要是开发调试用
sudo apt-get install librealsense2-dev
sudo apt-get install librealsense2-dbg
  1. 测试
1
realsense-viewer

通过realsense-viewer的指令来检查深度相机是否正确安装并显示

2.2 MAVROS

  1. 介绍

MAVROS相当于PX4飞控中的MAVLINK模块。MAVROS将话题转为MAVLINK格式消息发送给飞控,飞控中的MAVLINK模块将MAVLINK格式消息转化为uORB消息给PX4各模块间传递消息使用,也可以反过来从uORB消息一直到ROS话题。

代码示例看MAVROS Offboard control example就好了,讲得很清楚。

  1. 安装
1
2
3
sudo apt-get install ros-noetic-mavros   # 这里的noetic是ros的版本,其他版本自行更换名称
cd /opt/ros/noetic/lib/mavros
sudo ./install_geographiclib_datasets.sh

2.3 git、gcc、g++、python与make

1
2
3
4
sudo apt install git			# git
sudo apt install build-essential # gcc、g++
sudo apt install make # make
sudo apt install python3 # python3

检查版本

1
2
3
4
5
git --version
gcc --version
g++ --version
make --version
python3 --version

2.4 ceres、glog与ddyanmic-reconfigure

  • 介绍

    • ceres是什么
      Ceres Solver是一个开源**C++**库,用于建模和解决大型复杂的优化问题。它可以用于解决具有边界约束和一般无约束优化问题的非线性最小二乘问题。它是一个成熟,功能丰富且高性能的库。Ceres Solver是谷歌2010就开始用于解决优化问题的C++库,2014年开源。在Google地图,Tango项目,以及著名的SLAM系统OKVIS和Cartographer的优化模块中均使用了Ceres Solver。

    • glog是什么

      gloggoogle出品的c++日志库,提供了很多非常不错的功能,例如日志分等级打印条件打印日志格式化日志文件滚动大小等。

    • ddynamic-reconfigure是什么

      ddynamic-reconfigure是一个ROS软件包,它提供了一个动态重新配置的框架,可以在运行时修改ROS节点的参数。它可以帮助用户在
      不停止节点的情况下,实时地调整节点的参数,从而优化节点的性能。

  • 下载并解压3rd_party.zip

1
2
wget https://gitee.com/pn_code/Fast-Drone-250/blob/master/3rd_party.zip
unzip 3rd_party.zip
  • 编译安装
1
2
3
4
5
6
7
8
9
10
11
12
cd ./glog
sudo chmod 777 ./autogen.sh
sudo chmod 777 ./configure
sudo ./autogen.sh && sudo ./configure && sudo make install
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev
cd ../ceres-solver-2.0.0rc1
mkdir build
cd build
cmake ..
sudo make -j4
sudo make install
sudo apt-get install ros-noetic-ddynamic-reconfigure

这里的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
2
cd ego-planner
catkin_make -DCMAKE_BUILD_TYPE=Release
  • 执行

ego-planner文件夹的一个终端中,打开rviz进行可视化和交互

1
2
source devel/setup.bash
roslaunch ego_planner rviz.launch

ego-planner文件夹的另一个终端中,打开仿真

1
2
source devel/setup.bash
roslaunch ego_planner run_in_sim.launch

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终端等工具连接上机载电脑

以上工具的使用方式请自行前往度娘搜索

以上工具的阿里云盘下载地址:【下载入口