目录
前言
一、MAVROS的安装
二、Realsense SDK和Realsense-ROS的安装
四、给予串口权限
五、在QGC中修改PX4参数
六、启动VIO节点
七、参考文献
前言
1.硬件
飞控:Pixhawk 6C
机载电脑:Jetson nano 4GB B01
视觉定位模块:Intel RealSense T265
2.软件
操作系统:Ubantu 18.04
控制平台:ROS1 melodic,MAVROS,realsense-ros
一、MAVROS的安装
在Jetson nano安装好ROS melodic后,安装MAVROS。Jetson nano安装ROS可参考Jetson nano ROS安装教程
#MAVROS的安装
sudo apt install ros-melodic-mavros ros-melodic-mavros-extras
二、Realsense SDK和Realsense-ROS的安装
注意:在安装过程中,需要将T265与Jetson nano断开连接。
首先,进行Realsense SDK的安装
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
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
# 插上T265运行此代码测试,如果出现T265交互界面,并在交互界面中打开T265的开关后出现运动轨迹数据,证明安装成功
realsense-viewer
然后,进行Realsense-ROS的安装
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
# 更改cv_bridgeConfig.cmake中opencv4路径
sudo gedit /opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake
在cv_bridgeConfig.cmake文件中,进行如下更改:
更改完成后,保存并推出,进行编译
cd ~/catkin_ws
catkin_make
echo "source ~/catkin_ws/devel/setup.bash">>~/.bashrc
source ~/.bashrc
#测试,如果在终端中节点成功开启,证明安装成功
roslaunch realsense2_camera rs_t265.launch
报错处理:如果在编译过程中出现以下报错
`-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
– ~~ traversing 4 packages in topological order:
– ~~ - realsense2_camera_msgs (plain cmake)
– ~~ - realsense2_description (plain cmake)
– ~~ - ddynamic_reconfigure
– ~~ - realsense2_camera (plain cmake)
– ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~CMake Error at /opt/ros/melodic/share/catkin/cmake/catkin_workspace.cmake:100 (message):`
说明没有正确对Realsense-ROS进行处理。可通过以下方式解决:
cd ~/catkin_ws/src/realsense-ros/
git checkout `git tag | sort -V | grep -P "^2.\d+\.\d+" | tail -1`
cd ~/catkin_ws
catkin_make clean
catkin_make
三、VIO的安装
#安装VIO
cd ~/catkin_ws/src
git clone https://github.com/Auterion/VIO.git
cd ..
catkin_make
在安装完成后,需要根据T265的实际安装位置修改VIO的配置参数。
首先打开bridge.launch文件
gedit ~/catkin_ws/src/VIO/launch/bridge.launch
找到如下字段:
<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中心的空间向量,单位:m。例如,T265在飞控前方8厘米,下方5厘米,那么将三个数字改为[0.08,0,0.05],如果是在相反方向,将其写为负数即可。
后面三个数字为旋转角(偏航, 俯仰, 横滚)。若T265摄像头朝地,则参数为[0,1.5708,0],
若T265摄像头朝向飞机机头方向,则参数为 [0,0,0]。
如果使用USB连接飞控和Jetson nano的话,打开px4.launch文件
sudo gedit /opt/ros/melodic/share/mavros/launch/px4.launch
找到第五行
<arg name="fcu_url" default="/dev/ttyACM0:57600" />
此处default的值应为"/dev/ttyACM0:57600"。
同时检查VIO功能包中bridge_mavros.launch文件
gedit ~/catkin_ws/src/VIO/launch/bridge_mavros.launch
找到第三行
<arg name="fcu_url" default="/dev/ttyACM0:57600" />
此处default的值同样应为"/dev/ttyACM0:57600"。
四、给予串口权限
# 用自己的系统用户名替代<username>
sudo usermod -a -G dialout <username>
# 重启后生效
reboot
五、在QGC中修改PX4参数
参数名 | 对应功能 |
---|---|
EKF2_AID_MASK | 通过此参数可修改位置、偏航角数据来源。此处将其值改为24 |
EKF2_HGT_MODE | 修改高度信息来源,将其修改为来自视觉(Vision) |
EKF2_EV_DELAY | Vision Position Estimator delay relative to IMU measurements |
EKF2_EV_POS_X, EKF2_EV_POS_Y, EKF2_EV_POS_Z | 修改T265相对于飞控的位置 |
EKF2_EV_POS_X为T265相对飞控的前后位置,如果T265在飞控前方,则值为正数,反之则为负数。单位:m。
EKF2_EV_POS_Y为T265相对飞控的左右位置,如果T265在飞控右方,则值为正数,反之则为负数。单位:m。
EKF2_EV_POS_Y为T265相对飞控的上下位置,如果T265在飞控下方,则值为正数,反之则为负数。单位:m。
六、启动VIO节点
运行如下代码,启动VIO节点
roslaunch px4_realsense_bridge bridge_mavros.launch
运行成功后,Jetson nano开始向PX4发送T265获取的数据。此时,打开QGC地面站,移动无人机,观察无人机高度、位移、偏航角的变化。
七、参考文献
使用Jetson Nano向PX4提供T265位置信息,实现室内定点飞行
【8-12】树莓派部署t265+px4飞控实现无人机视觉定位文章来源:https://www.toymoban.com/news/detail-579568.html
ROS编译D435i过程中的问题及解决文章来源地址https://www.toymoban.com/news/detail-579568.html
到了这里,关于Jetson nano+T265+PX4实现室内定点飞行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!