赞
踩
利用雷迅V5+、Ubuntu 18.04、ROS Melodic、T265、Jetson Xavier NX机载电脑实现无人机在室内无GPS情况下的定点稳定飞行。
配置 | 参数 |
---|---|
机架 | 轴距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 |
NX 40pin针脚定义见下图
v5+接口定义如下
NX与飞控接线如下
T265双目相机直接通过USB连接至NX
SD卡镜像法(推荐)与NVIDIA SDK 管理器方法(需要有装linux的电脑)
右键打开终端或Shift+Alt+T
更新系统,终端输入密码不显示,Enter结束
sudo apt-get update #sudo 表示管理员,apt与apt-get一样
sudo apt upgrade
vim文本编辑器使用方法
sudo vim 文件路径/文件名 #按i进入编辑模式,按Esc退出编辑,:wq保存并退出,:q退出,:!q强制退出
#Tab补全:输入文件名首字母按下Tab即可补全
查看软件版本
python -V #默认python表示python2
或pip -version #默认pip表示pip2
安装jtop(jetson NX实用小工具)
sudo apt install python3-pip #安装python3包管理器
sudo pip3 install jetson-stats #安装jtop,使用pip安装有bug
sudo reboot #重启使jtop生效
jtop #运行jtop
ssh远程连接,jetson NX默认已安装ssh且开机自启,否则需手动安装
sudo apt install openssh-server #安装ssh
sudo /etc/init.d/ssh start #启动ssh
sudo systemctl eenable ssh #设置开机自启
ifconfig #查看ip(下图为通过wifi连接网络)
Windows安装PuTTY或Xshell,下图为Xshell
也可使用NoMachine,一款远程桌面软件,比VNC速度更快
双击会话连接jetson终端
安装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
测试是否成功安装ros
roscore
若正常出现以下信息,说明已经成功安装
.. 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]
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
如果不想采用代理了,恢复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
采用二进制安装,官方链接
#可使用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
如果wget失败,可以点击链接下载文件,然后移至NX内,进入文件夹,执行脚本文件,完成安装
安装前切勿插入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
#创建工作空间
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
如图所示
#初始化工作空间
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/
#下载坐标转换工具,编译工作空间
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">
由于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
打开三个终端,分别运行
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
在第二个终端中能够出现小乌龟,并且最后一个终端中按方向键能够移动小乌龟,那么可见ROS安装成功。
首先更改连接方式,本人采用Nx的串口1与飞控连接
sudo vim /opt/ros/melodic/share/mavros/launch/px4.launch
修改为以下内容
运行以下指令,若能显示飞控状态信息,则证明Mavros与px4通讯成功。
sudo chmod 666 /dev/ttyTHS0 #赋予串口权限,注销或关机后需再次赋予权限
roslaunch mavros px4.launch
如果TTL的速度异常,修改以下信息
sudo vim /opt/ros/melodic/share/mavros/launch/px4_config.yaml
#将timesync_rate: 10.0 改为timesync_rate: 0.0
运行以下指令打开Rviz,移动T265,可以看到见位置变化。
roslaunch realsense2_camera demo_t265.launch
如果需要查看图像数据,则需要对rs_t265.launch lanunch文件中使能图像输出
重新测试
该文件夹提供了两种t265安装方式:USB口朝右镜头向前和向下安装。如需其它方式安装,参考文件内说明修改相关参数,本文采用向前安装方式
打开三个终端,分别运行指令
roslaunch realsense2_camera rs_t265.launch
roslaunch mavros px4.launch
roslaunch vision_to_mavros t265_tf_to_mavros.launch
1.先使用定高模式可以正常飞行即可进行下一步。
2.启动ros节点,转发T265位置数据给飞控。
roslaunch vision_to_mavros t265_all_nodes.launch
查看位置数据
rostopic echo mavros/vision_pose/pose
或者在QGC地面站查看MAVLink Inspector,参考官方说明
3.切换至定点模式,内八解锁,起飞,摇杆回中,无人机可稳定悬停。
未完待续
PX4 User Guide
Intel RealSense
NVIDIA Jetson Linux Developer Guide
创客制造
使用Jetson Nano向PX4提供T265位置信息,实现室内定点飞行
【科研纪实】ROS下基于视觉的无人机室内定点飞行全程记录(T265+PX4+mavros)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。