ps:为避免出现错误,在进行新的一步时,需要关闭由于上一步操作打开的终端,并开启一个新的终端。例如:在开始第5步(安装MAVROS)之前,关闭由于第3步(安装ROS)打开的终端,并开启一个新的终端!!!
图1 实验流程图
1. 在Windows10系统下安装Ubuntu 18.04双系统
Windows10安装ubuntu18.04双系统教程 - 不妨不妨,来日方长 - 博客园https://www.cnblogs.com/masbay/p/11627727.html
若原系统不是win10,请自行网上查询安装双系统方法,切记要安装ubuntu18.04。
2. 学习关于Ubuntu系统终端命令行的操作
需通过B站、CSDN等方式自行进行Ubuntu系统的学习。
3. 安装ROS系统
ROS(Robot Operating System)是一个在机器人领域应用非常广泛的框架,它包含了很多有用的库以及工具,在Ubuntu 18.04下安装ROS Melodic版本。
3.1 打开终端,输入如下命令安装依赖项:
sudo apt install -y \
ninja-build \
exiftool \
python-argparse \
python-empy \
python-toml \
python-numpy \
python-yaml \
python-dev \
python-pip \
ninja-build \
protobuf-compiler \
libeigen3-dev \
genromfs
pip install \
pandas \
jinja2 \
pyserial \
cerberus \
pyulog \
numpy \
toml \
pyquaternion
3.2 输入如下命令,实现ROS Melodic的安装:
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
#此处使用国内的ROS镜像源(注释)
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt-get update
sudo apt-get install ros-melodic-desktop-full
sudo rosdep init
rosdep update
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt install python-rosinstall python-catkin-tools python-rosinstall-generator python-wstool build-essential
# install ros-gazebo plugins(注释)
sudo apt install ros-melodic-gazebo-*
注意:
(1) sudo rosdep init出现如下情况时(出现了网络问题):
执行如下操作:
输入以下代码:
sudo gedit /etc/hosts;
将下面一行代码添加到打开的文本文档中:
151.101.84.133 raw.githubusercontent.com
(2) rosdep update报错(网络问题)时,执行如下操作:
将群里发送的rosdep压缩包解压,并复制到home/.ros文件夹下,.ros文件夹是一个隐藏文件,通过ctrl+h调出。
3.3 完成上列步骤后,可以通过下面的命令来测试是否成功安装:
roscore
如果ROS安装成功,可以看到下列结果,然后按ctrl+c杀死该进程:
... logging to /home/.ros/log/6a1b2330-2eb3-11e9-a39c-9cb6d0e498fb/roslaunch-gishr-XPS-15-9560-4452.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://XPS-15:44361/
ros_comm version 1.12.14
SUMMARY
========
PARAMETERS
* /rosdistro: melodic
* /rosversion: 1.12.14
NODES
auto-starting new master
process[master]: started with pid [4463]
ROS_MASTER_URI=http://XPS-15:11311/
setting /run_id to 6a1b2330-2eb3-11e9-a39c-*********
process[rosout-1]: started with pid [4476]
started core service [/rosout
3.4 接下来,需要生成catkin工作空间,你所有的基于ROS的库都可以存放在此。
mkdir -p ~/catkin_ws/src
4. 进行ROS系统的相关学习
以上链接是ROS 21讲的内容,可以参考该视频进行ROS系统的相关学习。
5. 安装MAVROS
MAVROS是一层MAVLink与ROS通信的封装,旨在方便无人机与机载电脑通信。若安装,你可以选择通过apt安装,或者从源码编译。推荐方法1,请参考如下步骤:
# 你可以使用下列任何一种方法(注释)
# 方法 1(注释)
sudo apt-get install ros-melodic-mavros ros-melodic-mavros-extras
# 安装geographic lib :(注释)
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
sudo chmod a+x install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh
# 方法1(注释)
# 方法 2(注释)
cd ~/catkin_ws
catkin init && wstool init src
rosinstall_generator --rosdistro melodic mavlink | tee /tmp/mavros.rosinstall
rosinstall_generator --upstream mavros | tee -a /tmp/mavros.rosinstall
wstool merge -t src /tmp/mavros.rosinstall
wstool update -t src -j4
rosdep install --from-paths src --ignore-src -y
# 安装geographic lib :(注释)
sudo ./src/mavros/mavros/scripts/install_geographiclib_datasets.sh
sudo apt install ros-melodic-catkin python-catkin-tools
catkin build
# 方法 2(注释)
6. 安装PX4 Firmware
6.1 本实验采用PX4 v1.8.0固件
cd ~/catkin_ws/src
# 请保证网络连接正常,此步骤耗时较长,必要时需要挂加速器,实验提供加速器pigcha,账号密码会在群里发布,但由于同时只能在线两个账户,同学们也可以采用自己熟悉的加速器,或合理选择使用加速器时间(注释)
git clone https://github.com/PX4/Firmware.git
cd Firmware
git checkout v1.8.0
make posix_sitl_default gazebo
若以上步骤通过,此时会弹出Gazebo模拟器窗口,你会看到一架无人机出现在环境中,现在将窗口关闭即可。
6.2 修改环境变量,这样每次打开新的终端都可以保持环境变量一致:
# Use your favorite editor, we will be using gedit(注释)
# NOTE: you will need to use ROOT to edit bashrc(注释)
sudo gedit ~/.bashrc
# 在bashrc中,拷贝以下内容到bashrc尾端(注释)
source ~/catkin_ws/src/Firmware/Tools/setup_gazebo.bash ~/catkin_ws/src/Firmware/ ~/catkin_ws/src/Firmware/build/posix_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/catkin_ws/src/Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/catkin_ws/src/Firmware/Tools/sitl_gazebo
6.3 打开一个新终端,输入:
roslaunch px4 mavros_posix_sitl.launch
一个如下图所示的窗口会弹出:
6.4 在一个新终端输入:
rostopic echo /mavros/state
你可以看到:
header:
seq: 1
stamp:
secs: 730
nsecs: 280000000
frame_id: ''
connected: True
armed: False
guided: False
mode: "MANUAL"
system_status: 3
---
如果你看到上面的connected为True,那就代表你的Gazebo仿真环境配置成功,同时你的MAVROS通信也成功设置。
如果出现上述错误信息,但不影响Gazebo正常运行,则可忽略该错误!!!
7. 控制无人机简易飞行
7.1 将仿真需要的文件获取到本地环境,文件包括无人机模型、世界模型以及其他一些你会用的内容。通过如下命令实现:
# 请保证网络连接正常,此步骤耗时较长,必要时需要挂加速器,实验提供加速器pigcha,账号密码会在群里发布,但由于同时只能在线两个账户,同学们也可以采用自己熟悉的加速器,或合理选择使用加速器时间(注释)
git clone https://github.com/generalized-intelligence/GAAS.git
7.2 将模型文件所在地址更新到环境变量中:
echo "export GAZEBO_MODEL_PATH=${GAZEBO_MODEL_PATH}:~/GAAS/deprecated/simulator/models" >> ~/.bashrc
7.3 将模型以及配置文件拷贝到对应文件夹中:
cp -r ~/GAAS/deprecated/simulator/models/* ~/catkin_ws/src/Firmware/Tools/sitl_gazebo/models/
cp -r ~/GAAS/deprecated/simulator/worlds/* ~/catkin_ws/src/Firmware/Tools/sitl_gazebo/worlds/
cp -r ~/GAAS/deprecated/simulator/posix-config/* ~/catkin_ws/src/Firmware/posix-configs/SITL/init/ekf2/
7.4 通过下列命令构建仿真环境,打开一个终端,输入:
roslaunch px4 mavros_posix_sitl.launch
7.5 检查MAVROS连接情况:
rostopic echo /mavros/state
7.6 如果Gazebo仿真环境成功启动且MAVROS连接成功,在一个新的终端,改变路径到GAAS下的demo文件夹,执行python脚本:
cd ~/GAAS/deprecated/demo/tutorial_1/1_px4_mavros_offboard_controller
python px4_mavros_run.py
你可以看到一个无人机逐渐起飞到3米高并悬停在此。
7.7 在另外一个终端中输入:
cd ~/GAAS/deprecated/demo/tutorial_1/1_px4_mavros_offboard_controller
python commander.py
你可以看到一个无人机按照下面的顺序飞行:
向右飞一米;
逆时针旋转90度;
降落。