当前位置:   article > 正文

在 ubuntu20.04 中安装 XTdrone 心路历程_ubuntu 20.04 xtdrone

ubuntu 20.04 xtdrone

1.依赖的安装

首先按照语雀文档的步骤进行安装,文档地址:语雀,

1.1 从此步开始进行,安装,

sudo apt install ninja-build exiftool ninja-build protobuf-compiler libeigen3-dev genromfs xmlstarlet libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev python3-pip gawk

注:此步可能会遇到失败现象,如:换源问题!!!可在图中位置进行换源操作!!!

1.2

pip3 install pandas jinja2 pyserial cerberus pyulog==0.7.0 numpy toml pyquaternion empy pyyaml

1.3

pip3 install packaging numpy empy toml pyyaml jinja2 pyargparse kconfiglib jsonschema future

到此依赖安装完毕!

注:出现下述错误

  1. Collecting pandas
  2. Using cached https://files.pythonhosted.org/packages/64/f1/8fdbd74edfc31625d597717be8c155c6226fc72a7c954c52583ab81a8614/pandas-1.1.2.tar.gz
  3. Complete output from command python setup.py egg_info:
  4. Traceback (most recent call last):
  5. File "<string>", line 1, in <module>
  6. File "/tmp/pip-build-qtvsjq8t/pandas/setup.py", line 349
  7. f"{extension}-source file '{sourcefile}' not found.\n"
  8. ^
  9. SyntaxError: invalid syntax
  10. ----------------------------------------
  11. Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-qtvsjq8t/pandas/

 运行下述代码:

  1. pip install --upgrade setuptools
  2. #若未报错不需要输入这两行命令
  3. python -m pip install --upgrade pip

2.ROS安装

法一.

2.1 设置您的sources.list。sources.list是一个包含软件源信息的配置文件,它告诉系统从哪里获取软件包。

注:Ubuntu 16.04对应Kinetic,18.04对应Melodic,20.04对应Noetic。

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

2.2设置你的keys

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

如下图所示: 

2.3 安装

2.3.1 更新

sudo apt update

2.3.2 此步我们选择desktop的方式安装

sudo apt install ros-noetic-desktop-full

 2.3.3 

  1. echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
  2. source ~/.bashrc

2.3.4

sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

2.3.5 安装 rosdepc

sudo pip3 install rosdepc

2.3.6

  1. sudo rosdepc init
  2. rosdepc update

 法二.鱼香ROS一键安装(推荐)

wget http://fishros.com/install -O fishros && . fishros

 根据需求选择所需对应数字编号安装即可安装(很丝滑!!!)如下述代码所示:

  1. cq@ubuntu:~$ wget http://fishros.com/install -O fishros && . fishros
  2. --2024-01-07 22:56:49-- http://fishros.com/install
  3. 正在解析主机 fishros.com (fishros.com)... 139.9.131.171
  4. 正在连接 fishros.com (fishros.com)|139.9.131.171|:80... 已连接。
  5. 已发出 HTTP 请求,正在等待回应... 301 Moved Permanently
  6. 位置:http://fishros.com/install/ [跟随至新的 URL]
  7. --2024-01-07 22:56:50-- http://fishros.com/install/
  8. 再次使用存在的到 fishros.com:80 的连接。
  9. 已发出 HTTP 请求,正在等待回应... 200 OK
  10. 长度: 582 [application/octet-stream]
  11. 正在保存至: “fishros”
  12. fishros 100%[================>] 582 --.-KB/s 用时 0s
  13. 2024-01-07 22:56:50 (83.4 MB/s) - 已保存 “fishros” [582/582])
  14. 正在读取软件包列表... 完成
  15. 正在分析软件包的依赖关系树
  16. 正在读取状态信息... 完成
  17. python3-distro 已经是最新版 (1.4.0-1)。
  18. python3-yaml 已经是最新版 (5.3.1-1ubuntu0.1)。
  19. 升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 56 个软件包未被升级。
  20. --2024-01-07 22:56:50-- http://fishros.com/install/install1s/tools/base.py
  21. 正在解析主机 fishros.com (fishros.com)... 139.9.131.171
  22. 正在连接 fishros.com (fishros.com)|139.9.131.171|:80... 已连接。
  23. 已发出 HTTP 请求,正在等待回应... 200 OK
  24. 长度: 44694 (44K) [application/octet-stream]
  25. 正在保存至: “/tmp/fishinstall/tools/base.py”
  26. /tmp/fishinstall/to 100%[================>] 43.65K --.-KB/s 用时 0.09s
  27. 2024-01-07 22:56:51 (497 KB/s) - 已保存 “/tmp/fishinstall/tools/base.py” [44694/44694])
  28. Run CMD Task:[dpkg --print-architecture]
  29. [-]Result:success
  30. Run CMD Task:[wget https://fishros.org.cn/forum/topic/1733 -O /tmp/t1733 -q && rm -rf /tmp/t1733]
  31. [-]Result:success
  32. 基础检查通过...
  33. ===============================================================================
  34. ======欢迎使用一键安装工具,人生苦短,三省吾身,省时省力省心!=======
  35. ======一键安装已开源,请放心使用:https://github.com/fishros/install =======
  36. ===============================================================================
  37. .-~~~~~~~~~-._ _.-~~~~~~~~~-.
  38. __.' ~. .~ `.__
  39. .'// 开卷有益 \./ 书山有路 \ `.
  40. .'// 可以多看看小鱼的文章 | 关注公众号鱼香ROS

2.3.7 运行如下代码检查ROS是否安装并正常运行

roscore

正常运行图!!!

当!当!

2.3.8 新建工作空间

2.3.8.1 在catkin build前先安装sudo apt install python3-catkin-tools
sudo apt install python3-catkin-tools
2.3.8.2 
mkdir -p ~/catkin_ws/src
2.3.8.3
mkdir -p ~/catkin_ws/scripts
2.3.8.4 
cd catkin_ws 
 2.3.8.5
catkin init  

运行上述代码如下图所示: 

2.3.8.6 
catkin build 

注:之前未catkin_ws过是用catkin_ws,如若用过则要改其名称要不会冲突!!!

运行成功后如下图:

3. Gazebo的安装

3.1 先卸载

3.1.1

sudo apt-get remove gazebo* 

3.1.2 

sudo apt-get remove libgazebo*

3.1.3

sudo apt-get remove ros-noetic-gazebo* 

3.2 Gazebo进行安装

3.2.1

sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'

3.2.2 

cat /etc/apt/sources.list.d/gazebo-stable.list

3.2.3 

wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -

 3.2.4 

sudo apt-get update

3.2.5

sudo apt-get install gazebo9

3.2.6

sudo apt-get install libgazebo9-dev

 3.2.7 最后运行gazebo检查是否安装成功

gazebo

安装成功后的界面!!!

当!当!会弹出gazebo的界面

3.2.8 源码编译安装依赖

sudo apt-get install ros-noetic-moveit-msgs ros-noetic-object-recognition-msgs ros-noetic-octomap-msgs ros-noetic-camera-info-manager  ros-noetic-control-toolbox ros-noetic-polled-camera ros-noetic-controller-manager ros-noetic-transmission-interface ros-noetic-joint-limits-interface

3.2.9 克隆并编译Gazebo的插件gazebo_ros_pkgs,放在 ~/catkin_ws/src

方案一 (科学上网)

3.2.9.1
cd ~/catkin_ws/src
3.2.9.2 
git clone https://github.com/ros-simulation/gazebo_ros_pkgs.git
3.2.9.3 
cd ~/catkin_ws
3.2.9.4  注:此步骤时间有长有短根据实际情况分析,莫慌!!!
catkin build

 注:在进行到3.2.9.2可能会出现错误可使用第二套方案

方案二

3.2.9.1*
git clone https://gitee.com/robin_shaun/XTDrone.git

注:执行此步骤可能会出现下图所示问题 

解决方法:按照图中提示直接sudo apt install git 即可 

 3.2.9.2*
cd XTDrone
 3.2.9.3*
git submodule update --init --recursive

 3.2.9.4*
cd ~/catkin_ws
3.2.9.5*
cp -r ~/XTDrone/sitl_config/gazebo_ros_pkgs src/
3.2.9.6* 注:此步骤时间有长有短根据实际情况分析,莫慌!!!
catkin build

若出现下面这样的错误:

AttributeError: module 'em' has no attribute 'RAW_OPT'

执行下面这段代码即可。

  1. pip3 uninstall empy
  2. pip3 install empy==3.3.4

 3.3 编译成功后执行如下两条指令,判断gazebo_ros是否安装成功

3.3.1 首先,打开终端一,输入如下命令:

roscore 

 3.3.2 其次,打开文件.bashrc文件(注:其为隐藏文件可使用ctrl+h命令打开)添加如下代码

source ~/catkin_ws/devel/setup.bash

在如图位置进行添加

3.3.3 最后,打开终端二,输入如下命令:

rosrun gazebo_ros gazebo

最终成功如下图所示: 

3.4 添加 models 模型

 可在我的资源中进行下载,将该附件解压缩后放在~/.gazebo中,此时在~/.gazebo/models/如图所示位置

4.MAVROS安装

4.1

sudo apt install ros-noetic-mavros ros-noetic-mavros-extras 

4.2 

wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.sh

4.3 给权限

sudo chmod a+x ./install_geographiclib_datasets.sh

4.4 注:此步骤等待时间较长,莫慌!!!

sudo ./install_geographiclib_datasets.sh 

成功安装如下图所示结果

当!当!

注:可能会安装失败 ,解决办法按照对应失败提示,进行对应包的安装即可!!!

 5. px4安装与配置

5.1

5.1.1 法一:(科学上网)

git clone https://github.com/PX4/PX4-Autopilot.git

 5.1.2

mv PX4-Autopilot PX4_Firmware

5.1.3

cd PX4_Firmware

5.1.4 

git checkout -b xtdrone/dev v1.13.2

5.1.5

git submodule update --init --recursive

 5.1.6

make px4_sitl_default gazebo

5.1.1* 法二

下载下图的px4安装包

下载后按照如下代码操作:

5.1.2*

cd PX4_Firmware

5.1.3* 

make px4_sitl_default gazebo

此步骤还会遇到另外一个问题,如下图所示:

解决办法:删除下图所示的 build 文件:

 注:在make编译px4的过程中,可能会出现编译失败的情况,大概率是因为缺少某些依赖。此时查询报错信息,使用sudo apt install命令安装相应的库。

若出现下面代码中的错误:

  1. FAILED: external/Stamp/sitl_gazebo/sitl_gazebo-build
  2. cd /home/syf/PX4_Firmware/build/px4_sitl_default/build_gazebo && /usr/bin/cmake --build .
  3. ninja: build stopped: subcommand failed.
  4. make: *** [Makefile:200:px4_sitl_default] 错误 1

可执行下面这段代码:

  1. sudo apt install libgstreamer1.0-dev
  2. sudo apt install gstreamer1.0-plugins-good
  3. sudo apt install gstreamer1.0-plugins-bad
  4. sudo apt install gstreamer1.0-plugins-ugly

编译完成后,会弹出Gazebo界面,将其关闭即可。如图所示:

5.2 修改 ~/.bashrc,加入以下代码,注意路径匹配,前两个source顺序不能颠倒

5.2.1

  1. source ~/PX4_Firmware/Tools/setup_gazebo.bash ~/PX4_Firmware/ ~/PX4_Firmware/build/px4_sitl_default
  2. export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware
  3. export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware/Tools/sitl_gazebo

写在如图所示位置:

5.3 运行下述代码

source ~/.bashrc

5.4 再运行下述代码

5.4.1

cd ~/PX4_Firmware

5.4.2 

roslaunch px4 mavros_posix_sitl.launch

出现如图所示证明安装完成!!!

当!当!

5.5 同时再开终端运行下述代码

rostopic echo /mavros/state

 5.6 检查 connected 是否为 True

若connected: True,则说明MAVROS与SITL通信成功。如果是false,一般是因为.bashrc里的路径写的不对,请仔细检查。(正确应为下图所示)

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

 若结果下图所示:

莫慌!!!

接着操作即可

6. 安装地面站QGroundControl

安装地面站地址

6.1 打开一个终端,运行如下代码

  1. chmod +x ./QGroundControl.AppImage
  2. ./QGroundControl.AppImage

运行结果:

6.2  打开另外一个终端,运行上图中黄色字体

6.2.1

sudo usermod -a -G dialout $你的ID$

6.2.2 

sudo apt-get remove modemmanager

以我自己为例,如下图所示:

 地面站安装成功如图:

7.  XTDrone源码下载

7.1 按照如下代码一步一步进行执行即可!!!

7.1.1 进入 XTDrone 文件夹下

cd XTDrone

7.1.2 下载补丁

git submodule update --init --recursive

7.1.3 拷贝

cp sensing/gimbal/gazebo_gimbal_controller_plugin.cpp ~/PX4_Firmware/Tools/sitl_gazebo/src/

7.1.4 修改启动脚本文件

cp sitl_config/init.d-posix/rcS ~/PX4_Firmware/ROMFS/px4fmu_common/init.d-posix/

7.1.5 添加世界文件

cp sitl_config/worlds/* ~/PX4_Firmware/Tools/sitl_gazebo/worlds/

7.1.6 修改部分模型文件

cp -r sitl_config/models/* ~/PX4_Firmware/Tools/sitl_gazebo/models/ 

7.1.7 添加launch文件

cp -r sitl_config/launch/* ~/PX4_Firmware/launch/

7.1.8 替换同名文件

cd ~/.gazebo/models/

7.1.9 替换同名文件

rm -r stereo_camera/ 3d_lidar/ 3d_gpu_lidar/ hokuyo_lidar/

执行完如下图所示:

7.2 删除原编译文件,重新编译PX4固件 

执行如下代码:

  1. cd ~/PX4_Firmware
  2. make px4_sitl_default gazebo

注:可能出现如下错误

解决办法:

执行下述代码:

git submodule update --init --recursive
make clean

再运行 make px4_sitl_default gazebo 即可!!!

 编译成功出现下图:

7.3 用键盘控制无人机飞行 

此步骤需开三个终端:

7.3.1 打开第一个终端:

  1. cd ~/PX4_Firmware
  2. roslaunch px4 indoor1.launch

注:可能会报出下图所示的错误: 

 解决办法:用ctrl+c关闭仿真进程,有可能没有把Gazebo的相关进程关干净,这样再启动仿真时可能会报错。如果出现这种情况,可以用killall -9 gzclient,killall -9 gzserver 这两个命令强行关闭gazebo所有进程。

7.3.2 打开第二终端

注:要等 Gazebo 完全启动后,在另一个终端运行(注意要等Gazebo完全启动完成,或者可能脚本会报错)如下图所示:

输入下述代码:

  1. cd ~/XTDrone/communication/
  2. python3 multirotor_communication.py iris 0

7.3.3 打开第三个终端 (与0号iris建立通信后)

输入下述代码:

  1. cd ~/XTDrone/control/keyboard
  2. python3 multirotor_keyboard_control.py iris 1 vel

最终出现下图: 

 到此安装结束!!!完结撒花!!!

写在最后的一段话:你可能在安装的过程中没遇到我遇到的问题,很顺利就安装成功了!!!那么祝贺你幸运儿!!!当然!你更有可能是遇到了比我更多的问题,不要慌慢慢安,实在没有解决办法就卸载重安,想安装上一定能安装上的。加油!!!我安装 XTdrone 时也几近崩溃,当然,最终的结果是安装成功了,当然这只是第一步。以后还有应用。。。

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

闽ICP备14008679号