当前位置:   article > 正文

实验一:基于Ubuntu系统实现无人机自主飞行

实验一:基于Ubuntu系统实现无人机自主飞行

 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 打开终端,输入如下命令安装依赖项:

  1. sudo apt install -y \
  2. ninja-build \
  3. exiftool \
  4. python-argparse \
  5. python-empy \
  6. python-toml \
  7. python-numpy \
  8. python-yaml \
  9. python-dev \
  10. python-pip \
  11. ninja-build \
  12. protobuf-compiler \
  13. libeigen3-dev \
  14. genromfs
  1. pip install \
  2. pandas \
  3. jinja2 \
  4. pyserial \
  5. cerberus \
  6. pyulog \
  7. numpy \
  8. toml \
  9. pyquaternion

 3.2 输入如下命令,实现ROS Melodic的安装:

  1. 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'
  2. #此处使用国内的ROS镜像源(注释)
  3. sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
  4. sudo apt-get update
  5. sudo apt-get install ros-melodic-desktop-full
  6. sudo rosdep init
  7. rosdep update
  8. echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
  9. source ~/.bashrc
  10. sudo apt install python-rosinstall python-catkin-tools python-rosinstall-generator python-wstool build-essential
  11. # install ros-gazebo plugins(注释)
  12. sudo apt install ros-melodic-gazebo-*

 注意:

          (1) sudo rosdep init出现如下情况时(出现了网络问题):

           执行如下操作:

  1. 输入以下代码:
  2. sudo gedit /etc/hosts;
  3. 将下面一行代码添加到打开的文本文档中:
  4. 151.101.84.133 raw.githubusercontent.com

            (2) rosdep update报错(网络问题)时,执行如下操作:

将群里发送的rosdep压缩包解压,并复制到home/.ros文件夹下,.ros文件夹是一个隐藏文件,通过ctrl+h调出。

3.3 完成上列步骤后,可以通过下面的命令来测试是否成功安装:

roscore

如果ROS安装成功,可以看到下列结果,然后按ctrl+c杀死该进程:

  1. ... logging to /home/.ros/log/6a1b2330-2eb3-11e9-a39c-9cb6d0e498fb/roslaunch-gishr-XPS-15-9560-4452.log
  2. Checking log directory for disk usage. This may take awhile.
  3. Press Ctrl-C to interrupt
  4. Done checking log file disk usage. Usage is <1GB.
  5. started roslaunch server http://XPS-15:44361/
  6. ros_comm version 1.12.14
  7. SUMMARY
  8. ========
  9. PARAMETERS
  10. * /rosdistro: melodic
  11. * /rosversion: 1.12.14
  12. NODES
  13. auto-starting new master
  14. process[master]: started with pid [4463]
  15. ROS_MASTER_URI=http://XPS-15:11311/
  16. setting /run_id to 6a1b2330-2eb3-11e9-a39c-*********
  17. process[rosout-1]: started with pid [4476]
  18. started core service [/rosout

3.4 接下来,需要生成catkin工作空间,你所有的基于ROS的库都可以存放在此。

mkdir -p ~/catkin_ws/src

4. 进行ROS系统的相关学习

【古月居】古月·ROS入门21讲 | 一学就会的ROS机器人入门教程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1zt411G7Vn?from=search&seid=9766210578549235735&spm_id_from=333.337.0.0

以上链接是ROS 21讲的内容,可以参考该视频进行ROS系统的相关学习。

5. 安装MAVROS

MAVROS是一层MAVLink与ROS通信的封装,旨在方便无人机与机载电脑通信。若安装,你可以选择通过apt安装,或者从源码编译。推荐方法1,请参考如下步骤:

  1. # 你可以使用下列任何一种方法(注释)
  2. # 方法 1(注释)
  3. sudo apt-get install ros-melodic-mavros ros-melodic-mavros-extras
  4. # 安装geographic lib :(注释)
  5. wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
  6. sudo chmod a+x install_geographiclib_datasets.sh
  7. sudo ./install_geographiclib_datasets.sh
  8. # 方法1(注释)
  9. # 方法 2(注释)
  10. cd ~/catkin_ws
  11. catkin init && wstool init src
  12. rosinstall_generator --rosdistro melodic mavlink | tee /tmp/mavros.rosinstall
  13. rosinstall_generator --upstream mavros | tee -a /tmp/mavros.rosinstall
  14. wstool merge -t src /tmp/mavros.rosinstall
  15. wstool update -t src -j4
  16. rosdep install --from-paths src --ignore-src -y
  17. # 安装geographic lib :(注释)
  18. sudo ./src/mavros/mavros/scripts/install_geographiclib_datasets.sh
  19. sudo apt install ros-melodic-catkin python-catkin-tools
  20. catkin build
  21. # 方法 2(注释)

6. 安装PX4 Firmware

6.1 本实验采用PX4 v1.8.0固件

  1. cd ~/catkin_ws/src
  2. # 请保证网络连接正常,此步骤耗时较长,必要时需要挂加速器,实验提供加速器pigcha,账号密码会在群里发布,但由于同时只能在线两个账户,同学们也可以采用自己熟悉的加速器,或合理选择使用加速器时间(注释)
  3. git clone https://github.com/PX4/Firmware.git
  4. cd Firmware
  5. git checkout v1.8.0
  6. make posix_sitl_default gazebo

若以上步骤通过,此时会弹出Gazebo模拟器窗口,你会看到一架无人机出现在环境中,现在将窗口关闭即可。

6.2 修改环境变量,这样每次打开新的终端都可以保持环境变量一致:

  1. # Use your favorite editor, we will be using gedit(注释)
  2. # NOTE: you will need to use ROOT to edit bashrc(注释)
  3. sudo gedit ~/.bashrc
  4. # 在bashrc中,拷贝以下内容到bashrc尾端(注释)
  5. source ~/catkin_ws/src/Firmware/Tools/setup_gazebo.bash ~/catkin_ws/src/Firmware/ ~/catkin_ws/src/Firmware/build/posix_sitl_default
  6. export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/catkin_ws/src/Firmware
  7. 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

你可以看到:

  1. header:
  2. seq: 1
  3. stamp:
  4. secs: 730
  5. nsecs: 280000000
  6. frame_id: ''
  7. connected: True
  8. armed: False
  9. guided: False
  10. mode: "MANUAL"
  11. system_status: 3
  12. ---

如果你看到上面的connected为True,那就代表你的Gazebo仿真环境配置成功,同时你的MAVROS通信也成功设置。

 如果出现上述错误信息,但不影响Gazebo正常运行,则可忽略该错误!!!

7. 控制无人机简易飞行

7.1 将仿真需要的文件获取到本地环境,文件包括无人机模型、世界模型以及其他一些你会用的内容。通过如下命令实现:

  1. # 请保证网络连接正常,此步骤耗时较长,必要时需要挂加速器,实验提供加速器pigcha,账号密码会在群里发布,但由于同时只能在线两个账户,同学们也可以采用自己熟悉的加速器,或合理选择使用加速器时间(注释)
  2. 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  将模型以及配置文件拷贝到对应文件夹中:

  1. cp -r ~/GAAS/deprecated/simulator/models/* ~/catkin_ws/src/Firmware/Tools/sitl_gazebo/models/
  2. cp -r ~/GAAS/deprecated/simulator/worlds/* ~/catkin_ws/src/Firmware/Tools/sitl_gazebo/worlds/
  3. 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脚本:

  1. cd ~/GAAS/deprecated/demo/tutorial_1/1_px4_mavros_offboard_controller
  2. python px4_mavros_run.py

你可以看到一个无人机逐渐起飞到3米高并悬停在此。

7.7 在另外一个终端中输入:

  1. cd ~/GAAS/deprecated/demo/tutorial_1/1_px4_mavros_offboard_controller
  2. python commander.py

你可以看到一个无人机按照下面的顺序飞行:

向右飞一米;

逆时针旋转90度;

降落。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/504116
推荐阅读
相关标签
  

闽ICP备14008679号