5_树莓派机载计算机的实现SLAM定位教程——无名创新

本文详细介绍了如何在树莓派上配置RPLIDAR雷达进行SLAM定位,包括飞控设置、tf信息传输、激光雷达启动、Rviz监控、位姿数据交互和自主飞行控制。重点涉及T265定位的注意事项及常见问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

树莓派机载计算机的实现SLAM定位教程

SLAM定位

激光雷达SLAM建图

首先确定已将飞机定点模式设置成Lidar/T265,具体操作方法见《从零开始学习飞控教程》—5躺赢者PRO飞控OLED显示屏主要页面介绍,因为SLAM定位时,飞控需要将自身位姿信息发送给机载计算机,提供base_stabilized到base_link之间的tf信息,缺少此tf信息无法完成slam定位。需要注意的是飞控后开启温控系统,然后执行陀螺仪标定过程,为了避免激光雷达转动过程影响陀螺仪标定过程,飞控发送位姿数据是在陀螺仪标定完成之后才发布的,机载计算机接收到位姿tf数据才使能激光雷达运转。

在这里插入图片描述

rplidar a2雷达安装方向为:

在这里插入图片描述

在这里插入图片描述

启动激光雷达slam定位脚本,通过终端输入如下命令:

roslaunch serialport serialport_rplidar_slam.launch

为了方便客户使用,上面的激光雷达定位脚本已经设置了开机自启动,自启动设置参考教程0中的开机自启动AP部分.

在这里插入图片描述

通过Rviz可以观察slam建图情况,查看slam输出的位姿态信息可以通过终端输入如下命令:

rostopic echo /poseupdate

在这里插入图片描述

在这里插入图片描述

查看飞控上发的位姿数据信息可以通过终端输入如下命令:

rostopic echo /flight_state

在这里插入图片描述

命令行输入rqt_topic会调用gui显示有关 ROS 主题的调试信息,包括发布者、订阅者、发布速率和 ROS 消息:

在这里插入图片描述

执行激光雷达slam定位脚本后,树莓派机载计算机会发送slam输出的位姿数据给飞控,飞控接收并解析数据帧后融合自身惯导加速度数据,得到飞机位置、速度估计用于飞机自身定位。

在这里插入图片描述

在SLAM定位模式下操作无人机前,需要先熟悉飞控教程中——《4、躺赢者PRO飞控解锁上锁、功能模式操作教程》的内容和操作类视频教程。

机载计算机控制无人机自主飞行

在激光雷达slam定位定况下,可以通过发布位置控制话题信息,控制飞行器自主飞行,终端输入:

rosrun auto_flight auto_flight_demo

在这里插入图片描述

执行的动作命令为一个边长为100cm的正方形轨迹,节点图信息可以直接输入命令行输入:rqt_graph

在这里插入图片描述

在这里插入图片描述

用户可以参考默认的demo,调整参数后catkin_make编译后,实现自定义轨迹飞行。

同理,当采用T265定位时,在终端命令行窗口输入如下命令:

roslaunch serialport serialport_t265.launch

在这里插入图片描述

在终端命令行窗口输入如下命令:

realsense-viewer

在这里插入图片描述

在这里插入图片描述

需要注意的是T265传感器需要接在树莓派4B的USB 3.0端口上,同时在树莓派4B、部分英伟达Nano上电自启动的过程中,usb的枚举过程失败,导致必须上电插拔后才能正常使用。由于T265已经停产,英特尔官方对此问题一直没有有效解决。

在这里插入图片描述

如果在启动时连接,则无法在树莓派 4 上识别 T265 ·问题 #5079 ·英特尔实感/自由感知 (github.com)

265 ·问题 #5079 ·英特尔实感/自由感知 (github.com)](https://github.com/IntelRealSense/librealsense/issues/5079)

T265 在启动后未正确枚举 ·问题 #4681 ·英特尔实感/自由感知 (github.com)

### 树莓派5配置和使用ORB-SLAM教程 树莓派5作为一款性能更强大的开发板,其硬件能力足以支持ORB-SLAM的运行。以下是关于在树莓派5上配置和使用ORB-SLAM的相关内容。 #### 1. 环境准备 确保树莓派5已安装最新版本的操作系统(如Ubuntu或Raspbian)。为了兼容性和稳定性,建议使用64位操作系统[^1]。此外,需要安装必要的依赖库以支持ORB-SLAM的编译和运行。 ```bash sudo apt-get update sudo apt-get install cmake git libopencv-dev libeigen3-dev libboost-all-dev libsuitesparse-dev qtbase5-dev ``` #### 2. 下载ORB-SLAM源码 从官方仓库下载ORB-SLAM2或ORB-SLAM3的源码,并解压到指定目录。 ```bash cd ~ git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2-master cd ORB_SLAM2-master ``` #### 3. 修改编译脚本 根据树莓派5的硬件特性,修改`build.sh`文件中的编译参数。将`make -j`改为`make`以避免因多线程编译导致系统资源耗尽的问题。 ```bash chmod +x build.sh nano build.sh ``` 在`build.sh`中找到类似以下内容并进行修改: ```bash # 原始内容 cmake . && make -j # 修改后 cmake . && make ``` 保存并退出编辑器。 #### 4. 编译ORB-SLAM 执行编译脚本,开始编译ORB-SLAM。 ```bash ./build.sh ``` 如果遇到错误提示`fatal error: config.h: No such file or directory`,则需要手动配置CMake文件,或者直接运行以下命令[^2]: ```bash mkdir build cd build cmake .. make ``` #### 5. 配置单目相机示例 若需要运行单目相机示例程序,需修改`mono_euroc.cc`文件中的相关代码。例如,将`false`改为`true`以启用特定功能[^3]。 ```cpp // ORB_SLAM3-master/Examples/Monocular/mono_euroc.cc SLAM = new ORB_SLAM3::System(vocFile, settingsFile, ORB_SLAM3::System::MONOCULAR, true); ``` 重新编译ORB-SLAM以应用更改。 ```bash ./build.sh ``` #### 6. 运行ORB-SLAM 准备好测试数据集(如Euroc数据集),并运行相应的示例程序。 ```bash cd Examples/Monocular ./mono_euroc path_to_vocabulary_file path_to_settings_file ``` --- ### 注意事项 - 树莓派5虽然性能较强,但在编译大型项目时仍可能面临内存不足的问题。建议增加交换分区大小或使用外部存储设备。 - 如果使用ROS环境,请确保ROS已正确安装并配置好工作空间[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值