ubuntu20.04配置marvos+px4+XTDrone

参考资料

  1. XTDrone使用文档
  2. px4 ROS gazebo仿真环境搭建
  3. QGroundControl

使用环境

所使用的为:ubuntu20.04、ros noetic、gazebo11。

(以下教程默认已经安装 ros noetic)

注:由于博主不再从事相关研究方向,如果按照以下安装步骤时依旧会碰到问题,请自行Google哈~(2023.11)

1.Mavros安装

在安装之前,请先更新软件库:

sudo apt-get update
sudo apt-get upgrade

如果更新过程报校验数字签名出错,如下图所示:
在这里插入图片描述则有可能是ros的密钥问题,我们更新ROS apt 仓库使用的公共密钥:

curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

然后安装mavros:

sudo apt install ros-noetic-mavros ros-noetic-mavros-extras
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 #这步需要装一段时间,请耐心等待PX4配置

最后一步请耐心等待,我大概等待了20分钟左右。

2. PX4配置

对于PX4的配置,直接用git clone的方法即可。

git clone https://github.com/PX4/Firmware.git --recursive

然后执行Firmware文件夹里的这个.sh文件:

bash ./Tools/setup/ubuntu.sh

执行完成后,cd到Firmware文件夹:

cd Firemare
make px4_sitl_default gazebo

编译完成后,会弹出Gazebo界面,将其关闭即可。
在这里插入图片描述
随后,打开bashrc文件:

gedit ~/.bashrc

将以下路径添加到文件中:

source ~/catkin_ws/devel/setup.bash
source ~/Firmware/Tools/setup_gazebo.bash ~/Firmware/ ~/Firmware/build/px4_sitl_default

export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmware/Tools/sitl_gazebo

注意与自己路径的匹配,适当修改上述命令。前两个source顺序不能颠倒。
添加完成后,记得source:

source ~/.bashrc

然后运行如下命令,此时会启动Gazebo,界面与上图一样。

cd ~/Firmware
roslaunch px4 mavros_posix_sitl.launch

再打开一个终端,运行:

rostopic echo /mavros/state

若connected: True,则说明MAVROS与SITL通信成功。如果是false,一般是因为.bashrc里的路径写的不对,请仔细检查。如果一直false,则重新在配置PX4一遍试试。

3. 安装地面站QGroundControl

这个参考官网资料连接。其实非常简单:
首先在终端:

sudo usermod -a -G dialout $USER
sudo apt-get remove modemmanager -y
sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-gl -y

然后下载QGroundControl.AppImage.
下载完成后,进入到QGroundControl.AppImage相应的目录,修改QGroundControl.AppImage权限:

chmod +x ./QGroundControl.AppImage

然后双击QGroundControl.AppImage或者在终端切换到QGroundControl.AppImage目录后,输入以下命令即可打开地面站:

./QGroundControl.AppImage

4. XTDrone源码下载

git clone https://gitee.com/robin_shaun/XTDrone.git
cd XTDrone
git submodule update --init --recursive
cp sitl_config/worlds/* ~/PX4_Firmware/Tools/sitl_gazebo/worlds/
cp sitl_config/launch/* ~/PX4_Firmware/launch/
#如果之前没有catkin_ws,需要建立一下,之后的教程会用到
mkdir -p ~/catkin_ws/src
mkdir -p ~/catkin_ws/scripts

由于修改了PX4 sitl_gazebo中的gazebo_gimbal_controller_plugin.cpp(源代码不能控制多无人机的云台),要再编译一次。

cd ~/Firmware
make px4_sitl_default gazebo

5. 用键盘控制无人机飞行

在一个终端运行:

cd ~/Firmware
roslaunch px4 indoor1.launch

正常的话gazebo会出现如下界面:
在这里插入图片描述

在另一个终端运行:

cd ~/XTDrone/communication/
python multirotor_communication.py iris 0

如果运行后报错:

import rospy
File "/opt/ros/noetic/lib/python3/dist-packages/rospy/__init__.py", line 49, in <module>
    from .client import spin, myargv, init_node, \
File "/opt/ros/noetic/lib/python3/dist-packages/rospy/client.py", line 60, in <module>
    import rospy.impl.init
File "/opt/ros/noetic/lib/python3/dist-packages/rospy/impl/init.py", line 54, in <module>
    from .tcpros import init_tcpros
File "/opt/ros/noetic/lib/python3/dist-packages/rospy/impl/tcpros.py", line 45, in <module>
    import rospy.impl.tcpros_service
File "/opt/ros/noetic/lib/python3/dist-packages/rospy/impl/tcpros_service.py", line 54, in <module>
    from rospy.impl.tcpros_base import TCPROSTransport, TCPROSTransportProtocol, \
File "/opt/ros/noetic/lib/python3/dist-packages/rospy/impl/tcpros_base.py", line 160
    (e_errno, msg, *_) = e.args
                   ^
SyntaxError: invalid syntax

则将**/opt/ros/noetic/lib/python3/dist-packages/rospy/impl/tcpros_base.py** 的(e_errno, msg, *_) = e.args 改为(e_errno, msg) = e.args

如果还报:

No module named pyquaternion

使用apt安装即可:

sudo pip2 install pyquaternion

与0号iris建立通信后,在另一个终端运行:

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

便可以通过键盘控制1架iris的解锁/上锁(arm/disarm),修改飞行模式,飞机速度等。使用v起飞利用的是takeoff飞行模式,相关参数(起飞速度、高度)要在rcS中设置。一般可以使用offboard模式起飞,这时起飞速度要大于0.3m/s才能起飞(即:upward velocity 需要大于0.3)。注意,飞机要先解锁才能起飞!飞到一定高度后可以切换为‘hover’模式悬停,再运行自己的飞行脚本,或利用键盘控制飞机。
推荐起飞流程:按i把向上速度加到0.3以上,再按b切offboard模式,最后按t解锁。

至此,仿真平台基础配置完成。

=====================================================
=分割线===

使用XTDrone后,发现MAVROS与SITL通信一直为false,无法控制无人机飞行,一方面猜测原因是安装的px4是最新版本的,而XTDrone要求的px4是1.11版本的。考虑到暂时可能用不到XTDrone,因此仿真测试可以使用下面这种方法:
px4 运行mavros仿真
另一方面,可能是launch文件中的fcu_url路径有问题,可参考我另一篇关于XTDrone配置的博客,最后一部分提到了这个问题的解决方法。

  • 26
    点赞
  • 192
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 74
    评论
Ubuntu 20.04上安装Notepad需要使用Snap程序包管理器。根据引用和的信息,您可以通过在终端中输入以下命令来安装Notepad: sudo snap install notepad-plus-plus 这将下载并安装Notepad及其所有依赖项。请注意,您需要具有管理员权限才能运行此命令。安装完成后,您可以在应用程序菜单中找到Notepad并开始使用它。 请记住,Notepad是Windows和Mac OS系统上的一个简单但功能强大的代码编辑器,而Ubuntu上的Notepad-plus-plus是为类Unix操作系统提供的兼容版本。如果您对Notepad-plus-plus在Linux上的功能有任何疑问,您可以参考引用中提到的另一个名为Notepadqq的替代编辑器。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Ubuntu 安装 notepad++ 以及 解决中文字体乱码显示 以及 字体倒了的问题](https://blog.csdn.net/jisuanji198509/article/details/118706780)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [如何在Ubuntu 20.04安装NotePad++](https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/117193524)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CHH3213

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值