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

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机器人入门教程_哔哩哔哩_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(注释)
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度;

降落。

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值