当前位置:   article > 正文

VIO视觉无人机室内定点自主飞行(T265+PX4+Mavros+NX)_px4 t265

px4 t265

利用雷迅V5+、Ubuntu 18.04、ROS Melodic、T265、Jetson Xavier NX机载电脑实现无人机在室内无GPS情况下的定点稳定飞行。



一、环境配置

1.配置信息

配置参数
机架轴距380
电调好盈 20A
电机T-motor Air 2216 880KV
桨叶T-motor T1045
飞控雷迅 v5+(PX4固件)
电池格式 4s 5300mah
遥控系统乐迪 AT9S+R9DS接收机
机载计算机Jetson Xavier NX (系统Ubuntu 18.04+JetPack4.6)
视觉里程计Inter T265

2.硬件连接

NX 40pin针脚定义见下图
在这里插入图片描述
v5+接口定义如下
在这里插入图片描述
NX与飞控接线如下
在这里插入图片描述

T265双目相机直接通过USB连接至NX

3.系统安装

SD卡镜像法(推荐)与NVIDIA SDK 管理器方法(需要有装linux的电脑)

4.Ubuntu基本操作

右键打开终端或Shift+Alt+T
更新系统,终端输入密码不显示,Enter结束

sudo apt-get update		#sudo 表示管理员,apt与apt-get一样
sudo apt upgrade
  • 1
  • 2

vim文本编辑器使用方法

sudo vim 文件路径/文件名		#按i进入编辑模式,按Esc退出编辑,:wq保存并退出,:q退出,:!q强制退出
#Tab补全:输入文件名首字母按下Tab即可补全
  • 1
  • 2

查看软件版本

python -V		#默认python表示python2
或pip -version		#默认pip表示pip2
  • 1
  • 2

安装jtop(jetson NX实用小工具)

sudo apt install python3-pip	#安装python3包管理器
sudo pip3 install jetson-stats	#安装jtop,使用pip安装有bug
sudo reboot			#重启使jtop生效
jtop		#运行jtop
  • 1
  • 2
  • 3
  • 4

ssh远程连接,jetson NX默认已安装ssh且开机自启,否则需手动安装

sudo apt install openssh-server		#安装ssh
sudo /etc/init.d/ssh start		#启动ssh
sudo systemctl eenable ssh		#设置开机自启
ifconfig		#查看ip(下图为通过wifi连接网络)
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
Windows安装PuTTY或Xshell,下图为Xshell
也可使用NoMachine,一款远程桌面软件,比VNC速度更快
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
双击会话连接jetson终端

5.安装ROS

安装ROS前请勿翻墙,否则会增加很多问题

参考链接

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' 
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 apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo rosdep init
rosdep update		#该步骤往往会失败,解决方法看下面
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

测试是否成功安装ros

roscore
  • 1

若正常出现以下信息,说明已经成功安装

.. logging to /home/ubuntu/.ros/log/cb38e680-dee2-11ea-bae1-70665563e003/roslaunch-nx-1205.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://nx:36773/
ros_comm version 1.14.7


SUMMARY
========

PARAMETERS
 * /rosdistro: melodic
 * /rosversion: 1.14.7

NODES

auto-starting new master
process[master]: started with pid [1215]
ROS_MASTER_URI=http://nx:11311/

setting /run_id to cb38e680-dee2-11ea-bae1-70665563e003
process[rosout-1]: started with pid [1228]
started core service [/rosout]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

rosdep update更新失败错误解决方法 参考链接
运行下面的脚本,更新rosdep相关文件,增加代理地址,再运行rosdep update更新就可以

rm rosdep_update.sh ; wget https://gitee.com/ncnynl/rosdep/raw/master/rosdep_update.sh ; sudo chmod +x ./rosdep_update.sh; sudo ./rosdep_update.sh
  • 1

如果不想采用代理了,恢复rosdep相关文件,去掉代理地址,再执行rosdep update就可以

rm rosdep_recover.sh ; wget https://gitee.com/ncnynl/rosdep/raw/master/rosdep_recover.sh ; sudo chmod +x ./rosdep_recover.sh; sudo ./rosdep_recover.sh
  • 1

6.安装Mavros

采用二进制安装,官方链接

#可使用Proxy代理加速下载。详见:https://ghproxy.com/
sudo apt-get install ros-melodic-mavros ros-melodic-mavros-extras
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
sudo bash ./install_geographiclib_datasets.sh
  • 1
  • 2
  • 3
  • 4

如果wget失败,可以点击链接下载文件,然后移至NX内,进入文件夹,执行脚本文件,完成安装

7.安装Realsense SDK

安装前切勿插入Intel实感设备(T265、D435等),官方指南

# 安装依赖项 
sudo apt-get install libudev-dev pkg-config libgtk-3-dev
sudo apt-get install libusb-1.0-0-dev pkg-config
sudo apt-get install libglfw3-dev
sudo apt-get install libssl-dev
# 下载源码
git clone https://github.com/IntelRealSense/librealsense
cd librealsense
# 安装udev规则
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && udevadm trigger 
# 编译
mkdir build && cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=true \
-DFORCE_RSUSB_BACKEND=ON -DBUILD_WITH_TM2=false -DIMPORT_DEPTH_CAM_FW=false
sudo make uninstall && make clean
make -j6		#6表示同时进行6个任务,一般不超过cpu核数,也可直接make
sudo make install
# 连接T265,测试是否安装成功
realsense-viewer
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

![在这里插入图片描述](https://img-blog.csdnimg.cn/27211089e25d490bbacf368f1e643e55.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAd2VpeGluXzUzNjcwMDM5,size_20,color_FFFFFF,t_70,g_se,x_16

8.安装Realsense-ros

#创建工作空间
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/
# 下载source
git clone https://github.com/IntelRealSense/realsense-ros.git
git clone https://github.com/pal-robotics/ddynamic_reconfigure
# NX默认安装opencv4.1,cv_bridgeConfig.cmake默认为opencv3.2.0,更改opencv4路径
sudo vim /opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

如图所示
在这里插入图片描述

#初始化工作空间
catkin_init_workspace
cd ..
#编译工作空间
catkin_make clean
catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install
#增加环境变量
gedit ~/.bashrc
source ~/catkin_ws/devel/setup.bash
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/catkin_ws/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

9.配置坐标转换包

#下载坐标转换工具,编译工作空间
mkdir -p ~/vision_ws/src
cd vision_ws/src
git clone https://github.com/thien94/vision_to_mavros.git
catkin_init_workspace
cd ..
catkin_make
#配置环境变量
gedit ~/.bashrc
source ~/vision_ws/devel/setup.bash
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/vision_ws/
#修改配置参数
cd vision_ws/src/vision_to_mavros/launch
sudo vim t265_all_nodes.launch
#将<include file="$(find mavros)/launch/apm.launch">修改为<include file="$(find mavros)/launch/px4.launch">
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

10.飞控参数设置

由于Jetson Xavier NX采用arm架构,QGC官方未推出该版本软件,所以使用Windows或Mac对飞控调参,下载链接

参数配置如下

MAV_1_CONFIG= TELEM 2

MAV_1_MODE = Onboard

SER_TEL2_BAUD = 921

EKF2_AID_MASK =24

EKF2_HGT_MODE 设置为 Vision,有激光定高的可设为Range sensor

MAV_ODOM_LP设置为1

可能一开始只有 MAV_1_CONFIG 这一个参数,将其设置为 TELEM2 后重启飞控即可。

详细的参数说明请看:Using the ECL EKF | PX4 User Guide

二、模块测试

1.ROS通讯

打开三个终端,分别运行

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
  • 1
  • 2
  • 3

在第二个终端中能够出现小乌龟,并且最后一个终端中按方向键能够移动小乌龟,那么可见ROS安装成功。
在这里插入图片描述

2.Mavros测试

首先更改连接方式,本人采用Nx的串口1与飞控连接

sudo vim /opt/ros/melodic/share/mavros/launch/px4.launch
  • 1

修改为以下内容
在这里插入图片描述

运行以下指令,若能显示飞控状态信息,则证明Mavros与px4通讯成功。

sudo chmod 666 /dev/ttyTHS0		#赋予串口权限,注销或关机后需再次赋予权限
roslaunch mavros px4.launch
  • 1
  • 2

如果TTL的速度异常,修改以下信息

sudo vim /opt/ros/melodic/share/mavros/launch/px4_config.yaml
#将timesync_rate: 10.0 改为timesync_rate: 0.0
  • 1
  • 2

3.T265测试

运行以下指令打开Rviz,移动T265,可以看到见位置变化。

roslaunch realsense2_camera demo_t265.launch
  • 1

在这里插入图片描述
如果需要查看图像数据,则需要对rs_t265.launch lanunch文件中使能图像输出
在这里插入图片描述
重新测试
在这里插入图片描述

4.坐标转换测试

该文件夹提供了两种t265安装方式:USB口朝右镜头向前和向下安装。如需其它方式安装,参考文件内说明修改相关参数,本文采用向前安装方式
在这里插入图片描述

打开三个终端,分别运行指令

roslaunch realsense2_camera rs_t265.launch
roslaunch mavros px4.launch
roslaunch vision_to_mavros t265_tf_to_mavros.launch
  • 1
  • 2
  • 3

在这里插入图片描述

三、飞行准备

1.先使用定高模式可以正常飞行即可进行下一步。
2.启动ros节点,转发T265位置数据给飞控。

roslaunch vision_to_mavros t265_all_nodes.launch
  • 1

查看位置数据

rostopic echo mavros/vision_pose/pose
  • 1

或者在QGC地面站查看MAVLink Inspector,参考官方说明

3.切换至定点模式,内八解锁,起飞,摇杆回中,无人机可稳定悬停。

四、自主飞行

未完待续

参考文章

PX4 User Guide
Intel RealSense
NVIDIA Jetson Linux Developer Guide
创客制造
使用Jetson Nano向PX4提供T265位置信息,实现室内定点飞行
【科研纪实】ROS下基于视觉的无人机室内定点飞行全程记录(T265+PX4+mavros)

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

闽ICP备14008679号