当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]我的目标是一个简单且自包含的自主系统:用我最喜爱的M5Stack/ESP32硬件实现一个现实可行的系统,同时精度足够,能够实现可重复运行。我没有依赖SLAM或ArduPilot,而是从零开始自行构建定位、传感器融合和导航系统。

我是一名程序员,也是摩托车爱好者,业余时间曾制作过多个与摩托车相关的硬件项目。这次,我想打造一个真正能行驶的装置。

我的目标是一个简单且自包含的自主系统:用我最喜爱的M5Stack/ESP32硬件实现一个现实可行的系统,同时精度足够,能够实现可重复运行。我没有依赖SLAM或ArduPilot,而是从零开始自行构建定位、传感器融合和导航系统。

为了定位,我选择了二维激光雷达。为了在ESP32控制器上进行处理,我开发了一种方法,用于跟踪分布在行驶区域周围的六个平面反射器。

探测车沿一条定制的检查点路线行驶,并在途中投放奥赛罗圆盘。它绕同一赛道完成两圈,第二圈时在相同位置投放圆盘。如果圆盘堆叠,结果将提供对定位和驾驶精度的物理验证。

控制回路中没有外部计算机。定位、传感器融合、路径跟踪、电机控制和磁盘分发等功能均由火星车上的M5Stack控制器完成。

M5Stack 系统架构

该探测车将工作分配给三个M5Stack控制器。

•AtomS3 接收并解码 RPLiDAR A2M12 的点云数据,对反射器候选点进行聚类,将其与固定的地标地图进行匹配,并估计探测车的全局姿态。

•CoreS3 控制四个电机,读取编码器和IMU的位姿信息,将其与LiDAR的位姿融合,沿路线行驶,并控制Othello圆盘分发器。

•Atom Lite 通过 Bluepad32 将 PS4 控制器的指令转发,用于手动驾驶。

•iPad 是用于遥测、日志、检查点编辑以及启动运行等命令的辅助界面,不执行定位或自动驾驶功能。

该模块使自动驾驶系统完全运行在M5Stack/ESP32硬件上。

早期尝试:从UWB到LiDAR

在使用LiDAR之前,我先从远处对周围放置的UWB芯片(REYAX RYUW122_Lite)进行了定位测试。

我首先通过将定位硬件安装在头盔上,并在测试区域行走来验证这一概念。M5Stack显示屏实时显示了行走轨迹。

实验表明,芯片的相对朝向会影响测距效果。这些结果有助于验证步行模式的概念,但不足以稳定用于探测车控制,因此我放弃了UWB方案。

然而,核心理念始终如一:在驾驶区域周围使用固定参考点。这一理念最终演变为当前的方法——利用激光雷达追踪固定反射器。

固定激光雷达反射器的全球姿态

AtomS3 接收 2D LiDAR 扫描数据,并在 ESP32 上处理点云。

反射器被检测为地标候选点,并与固定的反射器地图进行比较。随着探测车行驶,本地点云会移动和旋转,而全局地图保持固定。

通过寻找使局部点云与参考地图对齐的旋转和平移,探测器可估计其全局的X/Y/Yaw姿态。同时还会检查地标匹配,以剔除异常值。

反射器可以在不进行坐标测量的情况下布置在区域周围。一旦初始反射器布局被记录,它就成为探测车的固定参考地图。

即使有人或物体遮挡了扫描部分,只要至少有三个反射器可见,定位仍可继续进行。

激光雷达与里程计融合

激光雷达和里程计各有互补的优势。

激光雷达可以校正探测车的全球位置,但由于盲区或遮挡,可能会暂时丢失可靠的地标观测。编码器和惯性测量单元(IMU)提供的里程计可提供平滑的运动估计,但因车轮打滑和漂移,这些误差会随时间累积。

CoreS3 结合了两种估算方法:

•当激光雷达可靠时,它会校正里程计姿态。

•当激光雷达不可靠时,里程计会持续提供平滑的估计,直到激光雷达恢复为止。

这种融合方式使探测车比单独使用任一方法更加稳定。

自定义检查点导航

我从零开始构建了一个自定义的检查点导航系统,而不是使用传统的航点导航。

行驶路径由卡特穆尔-罗姆样条生成。与仅经过航点附近的路线不同,该样条会穿过其控制点。这些控制点在路线上具有实际意义,例如探测车投放奥赛罗圆盘的位置。

检查点可通过 iPad 界面进行编辑或添加。iPad 发送路线数据,但车载 CoreS3 负责执行自动驾驶

从零开始设计与打造

该探测车采用一体式3D打印底盘,旨在在车身内部布置并隐藏电线。

它包括四个带Mecanum轮的编码器直流电机、一个RPLiDAR A2M12激光雷达、M5Stack控制器、一块锂离子电池,以及由MG90S伺服驱动的齿轮齿条式Othello圆盘分发器。

磁盘分配器不仅是一种视觉设计,更将路径追踪的精确度转化为可每圈检查的实际结果。

开源 AtomS3 LiDAR 示例

我将发布LiDAR接收和LCD点云显示部分作为独立的AtomS3示例。

该仓库包含基本布线、RPLiDAR A2M12接收、点云解码以及在AtomS3 LCD上的实时显示功能。

源代码:

AtomS3 RPLiDAR点云显示示例

这是火星车软件的一个独立可运行的子集,专为希望使用AtomS3与RPLiDAR的开发者提供入门参考。

我学到的东西

该项目最初以一次失败的超宽带定位实验开始,随后发展为基于激光雷达反射器的探测车。

主要的教训是:

固定参考点可以提供一个无需SLAM的实用全局坐标系。

激光雷达与里程计相辅相成:激光雷达可校正漂移,而里程计则弥补了激光雷达暂时存在的盲区。

将工作分配给AtomS3、CoreS3和Atom Lite,使得在M5Stack ESP32硬件上构建一个完整的自主探测车成为可能。

最终成果不仅是一台沿路线行驶的探测车,更是一个集成在M5Stack上的完整实验系统,用于定位、传感器融合、定制化导航以及物理验证。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

交通摄像头可生成有用信息,但向云端持续发送视频需要大量带宽,并可能引发隐私问题。

关键字: 摄像头 RK3576 NPU 传感器

空气质量问题不仅限于户外,室内空间也可能积聚挥发性有机化合物(VOCs)、二氧化碳(CO₂)和污染物,影响健康与工作效率。本项目将XIAO RP2040和ENS160传感器改造为一款桌面型空气质量监测仪。设备内置一个JU...

关键字: 传感器 LED XIAO RP2040

在翻新我的工作室时,我决定为未来的自动化做好准备,而不是依赖Wi-Fi设备。每面墙上的开关和插座位置都额外增加了网线,为传感器、开关和控制器提供了可靠的通信通道。

关键字: 传感器 自动化 智能家居 C4002

火焰无声,但我们可以通过简单的电子元件为它们“装上耳朵”!这个DIY火灾报警器项目利用红外接收传感器检测火光辐射,并立即触发声音(蜂鸣器)和视觉(LED)报警。该电路以13009 NPN晶体管作为主开关,结构简单、可靠且...

关键字: 蜂鸣器 LED 传感器 1N4007二极管

《声音记忆:训练你的耳朵》是一款利用RFID卡片进行声音匹配的游戏,帮助你区分不同声音并找到配对的声音。请选择A类声音卡或B类声音卡开始游戏。

关键字: RFID 物联网 M5Stack

OpenTherm 协议使用 8 位数据 ID 字段,可提供 256 种可能的寄存器编号。官方规格文档仅覆盖了其中一部分,而制造商可能会在上面实现自己的私有寄存器。为了准确了解我的锅炉所暴露的所有信息,我将 ESPHom...

关键字: 扫描器 寄存器 传感器

众多机器人团队最终都会面临同一个困惑:明明芯片性能表现出色、基准测试结果亮眼、技术演示也稳定流畅,可为什么从实验室原型到真正可部署的机器人产品,中间仍然需要长达18个月的时间?问题的关键往往不在处理器本身,而在处理器之外...

关键字: 算力 机器人 传感器

当你穿过敞开的厂房大门,近距离观摩厂区生产线时,巨大的噪声震耳欲聋。目光左移,可见一间控制室,内部布满各类指示灯、刻度表盘,成片显示屏实时展示数据分析图表,宛若一片屏幕丛林。目光右望,重型机械运转、金属撞击声此起彼伏,电...

关键字: 智能控制器 传感器 电源

姿态角突然被拉偏时,问题往往不是某一个传感器绝对错误,而是融合器在错误时刻相信了错误来源。陀螺仪能提供短时连续性,但它也需要外部观测来约束长期漂移。

关键字: 陀螺仪 传感器 角速度
关闭