无人机MAVROS保姆级配置及模拟、真机飞行(全)

这篇具有很好参考价值的文章主要介绍了无人机MAVROS保姆级配置及模拟、真机飞行(全)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前期准备:

本文默认使用的是ubuntu18.04 melodic系统

进入ubuntu,建议使用鱼香ros一键安装ros:

终端运行:

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

安装ros1,建议添加新源但不清除系统源

安装完成启动roscore以验证ros是否安装成功!

下面开始进行mavros飞行环境的搭建:

为了确保脚本的顺利进行,安装基本依赖项:

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

genxinpiphepip3

安装相关依赖:

sudo apt install python-rosinstall python-catkin-tools python-rosinstall-generator python-wstool build-essential

安装gazebo:

sudo apt install ros-melodic-gazebo-*

创建一个mavros 的工作空间:

mkdir -p ~/mavros_ws/src

MAVROS是一层MAVLink与ROS通信的封装,旨在方便无人机与机载电脑通信。

#二进制安装:

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
#安装geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh

#PX4 Firmware

cd ~/mavros_ws/src

# 请保证网络连接正常,此步骤耗时较长

​
git clone GitHub - PX4/PX4-Autopilot: PX4 Autopilot Software

cd Firmware

make posix_sitl_default gazebo

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

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

sudo gedit ~/.bashrc

# 在bashrc中,拷贝以下内容到bashrc尾端(接在source /opt/ros/melodic/setup.bash后面)

source ~/mavros_ws/src/Firmware/Tools/setup_gazebo.bash ~/mavros_ws/src/Firmware/ ~/mavros_ws/src/Firmware/build/posix_sitl_default

export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/mavros_ws/src/Firmware

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

打开一个新终端,输入:

roslaunch px4 posix_sitl.launch

在另一个终端,输入:

roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557"

或者你可以直接输入:

roslaunch px4 mavros_posix_sitl.launch

一个如下图所示的窗口会弹出:

配置pixhawk上的telem2作为mavlink端口,无人机,MAVROS,开源,经验分享,笔记,stm32,mcu

Figure 1, Gazebo and PX4 simulation in empty world

在一个新终端,输入

rostopic echo /mavros/state

你可以看到无人机的状态信息:

配置pixhawk上的telem2作为mavlink端口,无人机,MAVROS,开源,经验分享,笔记,stm32,mcu

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

配置pixhawk上的telem2作为mavlink端口,无人机,MAVROS,开源,经验分享,笔记,stm32,mcu

完成以上例程,恭喜你已经成功安装上mavros了!!!

接下来将使用简单示例代码完成模拟及真机的飞行试验:

二、MAVROS与PX4的连接

2.1 Gazebo仿真

2.1.1启动Mavros

roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557"

2.1.2启动Gazebo仿真环境

roslaunch px4 posix_sitl.launch

2.1.2启动外部控制节点

rosrun offboard offboard_node

可以看到gazebo启动,无人机以及场地出现在窗口中

运行rostopic查看无人机状态:

rostopic echo /mavros/state

一会无人机会上升至2m左右,相应的状态也为offboard模式

关于无人机的offboard模式demo:可以参考官方的px4文档MAVROS Offboard control example (C++) | PX4 User Guide

拷贝相应的示例代码后,按照相应的c++文件配置流程完成offboard_node节点的设置,最后建议在.bashrc文件中添加source ~/你的offboard代码工作空间/devel/setup.bash这样可以省去了每次改完代码都要source一下的麻烦,全自动source

就像我搭建完毕后.bashrc文件末尾:

source /opt/ros/melodic/setup.bash

source ~/offboard_ws/devel/setup.bash

source ~/mavros_ws/src/Firmware/Tools/setup_gazebo.bash ~/mavros_ws/src/Firmware/ ~/mavros_ws/src/Firmware/build/posix_sitl_default

export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/mavros_ws/src/Firmware

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

2.2真机

参考Companion Computer for Pixhawk Series,MAVLink Peripherals (GCS/OSD/Companion)

2.2.1配置Pixhawk上的Telem2作为MAVLINK端口

  • MAV_1_CONFIG= TELEM 2
  • MAV_1_MODE = Onboard
  • SER_TEL2_BAUD = 921600 8N1

一开始参数里可能只有MAV_1_CONFIG,而搜不到另外两个参数,只需要先把MAV_1_CONFIG设置为TELEM 2,然后把飞控重启后就有了

2.2.2在电脑上启动MAVROS

电脑+数传电台:

插上数传,一空一地,查看数传对应的串口号:

ls /dev/ttyUSB*

给予相应的权限:

sudo chmod 777 /dev/ttyUSB*

修改launch文件,使用sudo权限打开/opt/ros/melodic/share/mavros/launch/px4.launch,将其中的

<arg name="fcu_url" default="/dev/ttyACM0:57600" />

修改为自己的端口及波特率

<arg name="fcu_url" default="/dev/ttyUSB0:921600" />

启动MAVROS:

roslaunch mavros px4.launch fcu_url:="/dev/ttyUSB0"

运行rostopic查看无人机状态:

rostopic echo /mavros/state

启动外部控制节点:

rosrun offboard offboard_node

将会看到无人机缓慢上升至2m的高度,如需降落则(ctrl+c)quit掉控制节点,无人机将会执行auto.land自动降落过程

机载电脑+USB线:

jetson nano的串口2,也就是dev/ttyTHS1,这个按照自己实际情况写就好了。最后的921600是波特率,就是2.2.1中设置的SER_TEL2_BAUD,改成设置的值就行了。

roslaunch mavros px4.launch fcu_url:=serial:///dev/ttyTHS1:921600 gcs_url:=udp://@192.168.0.0

gcs_url为运行QGC的主机的IP

设置为以下参数表示自动寻址,直到连上QGC

roslaunch mavros px4.launch fcu_url:=serial:///dev/ttyTHS1:921600 gcs_url:=udp-b://@

可能会报错

FCU: DeviceError:serial:open: Permission denied

解决方法是给对应的串口权限

sudo chmod 777 /dev/ttyTHS1

虽然这样子mavros就正常运行了,但是节点信息会卡在xxxxxx start xxxxxxx,然后/mavros/state中的connected是false。可以尝试把波特率往下降到460800以下。也有大佬说可能因为数据线太长,导致传输过程中到达不了那么高的波特率,所以不能成功连接

串口设置:由于机载计算机进行飞行控制时需要很高的实时性,mavros会检测通信实时性,如果串口波特率设置太低,则会提示TM:RTT too high for timesync,故应该配置高速波特率。

可能会报timesync超时等异常,解决方法是:

sudo gedit /opt/ros/melodic/share/mavros/launch/px4_config.yaml

把其中的第12行改为

timesync_rate: 0.0

由于时间有限,更多的机载电脑配置资料请参考:基于mavros机载控制 - 知乎

三、其他

3.1关于提高mavros中IMU话题的发布频率(参考:提高mavros中IMU话题的发布频率_dckwin的博客-CSDN博客​blog.csdn.net/qq_38649880/article/details/89419736)

rosrun mavros mavcmd long 511 105 10000 0 0 0 0 0//提高mavros/imu/data_raw频率

rosrun mavros mavcmd long 511 31 10000 0 0 0 0 0//提高mavros/imu/data频率

10000表示话题的发布时间间隔为10000us,可以自由调节

四、安全建议

注意:到真机实验的场地,需要重新校准一下所有的传感器,避免传感器出错及不准确等情况

绑飞:找到能够绑住无人机而对其飞行影响较小的细绳,减小损失,避免无人机失控炸机、伤人等

本文参考结合GAAS飞行(无人机自动驾驶软件系列 E01:OFFBOARD控制以及Gazebo仿真 - GAAS)知乎文章:常用MAVROS话题和服务 - 知乎 整顿融合,为了实现从mavros搭建到真机飞行的全过程,遂作本文

专栏持续更新中!!!若有疑惑,可评论区留言,大家一起学习,不定期上线,有时间会一一解答,最后希望本文对热爱无人机的大家有所帮助!

                                                                  --来自刚学没多久的某末流大专大学——大二机电苦逼仔文章来源地址https://www.toymoban.com/news/detail-525134.html

到了这里,关于无人机MAVROS保姆级配置及模拟、真机飞行(全)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 无人机飞行控制实验平台

    无人机在研制过程中需要不断地进行飞行测试,而测试的过程不是万无一失的,飞行过程中发生任何错误都有可能会导致无人机的损毁或破坏,更严重地甚至会造成外界伤害。 基于此我们推出了无人机的三旋转自由度 (3-DOF) 飞行平台测试系统,可以在横滚 (Roll)、俯仰 (Pitch

    2024年02月16日
    浏览(66)
  • 无人机飞行控制技术期末复习

    1.1.1、根据无人机尺寸和续航时间: 1.1.2、根据气动结构特征: 基本结构:机翼,机身,气动舵面,尾翼 优点:

    2024年01月16日
    浏览(99)
  • stm32无人机-飞行力学原理

    惯性导航,是一种无源导航,不需要向外部辐射或接收信号源,就能自主进行确定自己在什么地方的一种导航方法。 惯性导航主要由惯性器件计算实现,惯性器件包括陀螺仪和加速度计。一般来说,惯性器件与导航物体固连,加速度计测量物体运动的加速度,已知初始状态

    2024年02月07日
    浏览(42)
  • 无人机飞行控制系统功能,多旋翼飞行控制系统概述

    飞行控制系统存在的意义 行控制系统通过高效的控制算法内核,能够精准地感应并计算出飞行器的飞行姿态等数据,再通过主控制单元实现精准定位悬停和自主平稳飞行。 在没有飞行控制系统的情况下,有很多的专业飞手经过长期艰苦的练习,也能控制飞行器非常平稳地飞

    2024年02月21日
    浏览(53)
  • 无人机自主飞行实战入门-第一课(简介)

    研究的意义:对人类操作的严重依赖,严重阻碍了泛无人机行业的发展。 飞行汽车(UAM)即将到来,不论是从成本还是安全考虑都需要自主飞行。 传统飞控基于STM32架构设计,无法满足更智能功能所需的计算量,飞控是为了无人机位姿控制所设计,人类操控依然in the loop。

    2024年02月11日
    浏览(36)
  • xtdrone用键盘控制无人机飞行 无法起飞

    运行案例 解锁无人机螺旋桨转动但无法起飞 也未报错 解决方法: 在QGC中修改: PX4飞控EKF配置 将PX4使用的EKF配置为 融合GPS的水平位置与气压计高度 。 如果我们想使用视觉定位,就需要把修改配置文件。  此修改意味着EKF融合来自mavros/vision_pose/pose的数据,并不是修改完无

    2024年01月22日
    浏览(83)
  • 基于simulink的无人机姿态飞行控制仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB         无人机是无人驾驶飞机的简称(Unmanned Aerial Vehicle),是利用无线电遥控设备和自备的程序控制装置的不载人飞机,包括无人直升机、固定翼机、多旋翼飞行器、无人飞艇、无人伞翼机。广义地看也包括临近

    2024年02月02日
    浏览(63)
  • PX4无人机 - 键盘控制飞行代码

    仿真效果 实机效果 由于图片限制5M以内,只能上传一小段了,整段视频请点击链接 Pixhawk 6c | 无人机 | 键盘控制无人机 | Offboard模式 核心: 发布 mavros/setpoint_velocity/cmd_vel_unstamped 话题,控制x y z三个方向的速度 运行前先运行PX4自带仿真,例如 接着运行以下代码(根据WHEELTEC麦

    2024年02月16日
    浏览(49)
  • 【rotors】多旋翼无人机仿真(二)——设置飞行轨迹

    【rotors】多旋翼无人机仿真(一)——搭建rotors仿真环境 【rotors】多旋翼无人机仿真(二)——设置飞行轨迹 【rotors】多旋翼无人机仿真(三)——SE3控制 【rotors】多旋翼无人机仿真(四)——参数补偿和PID控制 【rotors】多旋翼无人机仿真(五)——多无人机仿真 本贴内

    2024年02月02日
    浏览(70)
  • Ubuntu18.04搭配无人机仿真环境(ROS,PX4,gazebo,Mavros,QGC安装教程)

    我个人使用了代理环境进行下载。Linux没有代理的可以使用国内源。 清华大学源 sudo sh -c ‘. /etc/lsb-release echo “deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main” /etc/apt/sources.list.d/ros-latest.list’ 中科大源 sudo sh -c ‘. /etc/lsb-release echo “deb http://mirrors.ustc.edu.cn/ros/ubu

    2024年02月13日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包