使用 Jetson Nano 向 PX4 提供 t265 位置信息,实现室内定点飞行

本文作者:南京航空航天大学 科技中心 陈思祺
主要内容:详细阐述如何使用 Jetson Nano 向 PX4 提供 t265 位置信息,从而实现室内定点飞行。

使用的 Jetson Nano 镜像版本:4.6(2021-08-04 发布)

NVIDIA官方镜像下载链接

下载好镜像,烧录进 TF 卡,初次开机简单配置后进入系统,建议系统语言选择英语,正式开始本次教程。

更新软件列表,更新软件

1
2
sudo apt-get update 
sudo apt-get upgrade

安装 ROS Melodic

参考官网安装教程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 设置sources.list
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 install curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
# 确保 Debian 包索引是最新的
sudo apt update
# 安装桌面完整版(推荐)
sudo apt install ros-melodic-desktop-full
# 设置环境
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
# 安装 rosdep
sudo apt install python-rosdep
# 初始化 rosdep
sudo rosdep init
rosdep update
# 试一下效果
roscore

安装realsense

参考官网安装教程

安装过程中请拔下摄像头

安装Realsense SDK

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 下载source 
# 可使用Proxy代理加速下载。详见:https://ghproxy.com/
git clone https://github.com/IntelRealSense/librealsense
cd librealsense
# 安装依赖项
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
# 安装位于 librealsense 源目录中的 Intel Realsense 权限脚本
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && udevadm trigger
# 编译
mkdir build
cd build
cmake ../ -DBUILD_EXAMPLES=true
make
sudo make install
# 试一下效果
realsense-viewer

安装realsense-ros

1
2
3
4
5
6
7
8
9
# 下载source
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/
git clone https://github.com/IntelRealSense/realsense-ros.git
git clone https://github.com/pal-robotics/ddynamic_reconfigure
cd realsense-ros/
git checkout `git tag | sort -V | grep -P "^\d+\.\d+\.\d+" | tail -1`
# 更改cv_bridgeConfig.cmake中opencv4路径
sudo gedit /opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake

如图

1
2
3
4
5
6
7
8
# 编译
cd ~/catkin_ws
catkin_make
# 设置环境
echo "source ~/catkin_ws/devel/setup.bash">>~/.bashrc
source ~/.bashrc
#试一下效果
roslaunch realsense2_camera rs_t265.launch

PX4配置

下载 QGroundControl

GitHub链接

使用说明

  • MAV_1_CONFIG= TELEM 2

  • MAV_1_MODE = Onboard

  • SER_TEL2_BAUD = 57600 8N1

  • EKF2_AID_MASK 勾选 vision position fusionvision yaw fusion

  • EKF2_HGT_MODE 设置为 Vision

  • MAV_ODOM_LP设置为1

MAVROS 和VIO

1
2
3
4
5
6
7
8
9
# MAVROS
sudo apt install python-catkin-tools
sudo apt install ros-melodic-mavros ros-melodic-mavros-extras
sudo apt-get install ros-indigo-mavros ros-indigo-mavros-extras ros‐indigo‐control‐toolbox
# VIO
cd ~/catkin_ws/src
git clone https://github.com/Auterion/VIO.git
cd ..
catkin_make

更改以下配置

  1. T265 相对位置及朝向
1
gedit ~/catkin_ws/src/VIO/launch/bridge.launch

修改

1
<node pkg="tf" type="static_transform_publisher" name="tf_baseLink_cameraPose"args="0 0 0 0 1.5708 0 base_link camera_pose_frame 1000"/>

args

  • 开头三个参数为飞控中心指向 T265 中心的向量。例如 T265 在飞控前方 10 cm,上方 4 cm, 则前三个参数为:[0.1, 0, -0.04]

  • 中间三个参数为旋转角(偏航, 俯仰, 横滚)。默认 T265 朝地,则参数为[0, 1.5708, 0];T265 照射飞机机头方向,则参数为 [0 0 0]

  1. 如果 TTL 的速度异常
1
sudo gedit /opt/ros/melodic/share/mavros/launch/px4_config.yaml

第 12 行改为

1
timesync_rate: 0.0
  1. 如果使用 USB 连接
1
sudo gedit /opt/ros/melodic/share/mavros/launch/px4.launch

修改第 5 行为

1
<arg name="fcu_url" default="/dev/ttyUSB0:57600" />
1
gedit ~/catkin_ws/src/VIO/launch/bridge_mavros.launch

修改第 3 行为

1
<arg name="fcu_url" default="/dev/ttyUSB0:57600" />
  1. 放开串口权限
1
2
3
4
# 用你自己的用户名替代下面的<username>
sudo usermod -a -G dialout <username>
# 修改后需重启生效
reboot now

起飞前检查

详情请看官网说明

1
2
# 开启VIO
roslaunch px4_realsense_bridge bridge_mavros.launch
  • 连接好摄像头、USB、PX4,可暂不接电池,查看 MAVLink Inspector

  • 偏航机身,直到ODOMETRY消息的四元数非常接近单位四元数(w = 1,x = y = z = 0)

  • 向前移动无人机,x 坐标应增大

  • 向右移动无人机,y 坐标应增大

  • 向上移动无人机,z 坐标应减小

  • 遥控器切换到 Position Flight Mode,若切换成功,应闪绿灯

然后可以接上电池,尝试定点飞行

参考文章

PX4 User Guide

ROS Wiki

Intel RealSense

ROS melodic kernel 4.18 安装 realsense D435i

通过MAVROS连接机载电脑(NANO/TX2/NX)与Pixhawk

Jetson Nano使用T265向PX4提供位置信息

GitHub Proxy

-------------------------- --------------------------

本文标题:使用 Jetson Nano 向 PX4 提供 t265 位置信息,实现室内定点飞行

文章作者:reman

发布时间:2021年09月07日 - 13:53:34

最后更新:2022年08月18日 - 12:50:52

原始链接:https://zcw-blog.top/posts/20210907a1/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请注明出处。