低成本3D空间导航/测绘机器人——从零开始
读前必看——三维测绘/导航机器人
很多朋友们都知道使用ROS的move_base等软件包配合激光雷达可以实现二维地图的绘制,但很少有能做三维测绘/导航的低成本的机器人。类似于电影“普罗米修斯”的测绘狗仔。 实际上,三维空间导航机器人在仓库巡检,智能安防领域也明显更实用。但是高昂的成本让机器人的DIY爱好者以及轻量级机器人生产商望而却步。 我从今天开始,将分为13个模块,和朋友们一起从零开始实现一套能够进行空间三位测绘和导航的机器人,完成的机器人成本不到2000元,可用于仓储,安防,车辆底盘巡检,矿井/管道测绘等多个领域(实际上这台机器人已经做出来了,如下图)~ 当前能够进行空间3D测绘的传感器主要有两种:
- 多线激光雷达(Multi-Layer Radar),可以理解为多个激光雷达的叠加,能够获得空间图像(图1)。但是动辄万元的价格明显不适合小型低成本化机器人,而且由于扫描线束数量的原因,其空间还原精度有待提高。
- 深度传感器(Depth Camera),能够通过RGBD信息感知空间深度从而还原空间立体模型,但是比较容易受到光照的干扰;一般和激光雷达配合使用。
另外一种成本比较低,但是同样高精度的测绘方案(也就是我们所采用的)是用二维舵机的旋转和俯仰来扫描非平面的区域(图),通过舵机旋转俯仰角来实现非常致密的纵向扫描。配合机器人自身的摄像头,可以准确的还原3D空间的完整状态,实现对“黑暗密室”的三维感知。
看完本系列博客,你将get到:
- STM32下位机对机器人云台,轮胎,编码器等外设的硬件设计和软件控制。
- 基于ARM处理器的ROS导航系统,以及基于YAW角度的Z轴点云生成。
- 机器人的空间解析以及点云(PointCloud)生成。
- 打造一套成本不到2000元的小型3D空间测绘机器人
完整的博客列表文末有目录~
实现框架及硬件准备
系统框架
系统框架及流程如下图所示,首先,激光雷达扫描空间的平面图;使得机器人定位到自身在空间的平面位置。接下来主机向单片机发送雷达Z轴扫描信号,雷达倾斜,具体的倾斜角度由单片机计算并发送给主机。
所需硬件列表
- 简易激光雷达(yLidar x4)—>450元
激光雷达用于机器人2D定位以及配合舵机的三维成像,可以是整个机器人种最为重要的传感器。我买这套450块钱的激光雷达(8m距离/7Hz频率/1%误差)就比较够用了。
- 双目摄像头(USB-2560*720)—>176元
双目摄像头与雷达数据结合可以给空间的物体进行颜色/亮度标注。
- 2D舵机云台(DS3115+支撑架)—>196元
云台可以由两个DS3115舵机驱动,雷达需要通过云台的俯仰角来获得Z轴的扫描信息。
- ARM处理器(RK3399配套平台)—>650元
对扫描的数据进行分析,买RK3399主芯片的板子就够用了;内存尽量大一些,firefly-RK3399或者orangepi4都可以。尽量不要用树莓派3系列,亲测性能不够。
- 集成下位机(基于STM32,自己设计)—>265元
我自己设计了一套下位机板子,包含了轮子转子和编码器的驱动,下位机的硬件设计方案后面的文章里会有介绍。
- 锂离子电池(12V8Ah)—>159元
我这台机器人系统运行时的TDP功耗约为19.8W,也就是说12V的电池电流在1.65A,8Ah电池连续工作5个小时,测绘白宫都不在话下。
- 3D打印外壳(Solidworks自己设计)—>150元
如果你有一台3D打印机,你就会明白3D打印主要在于时间成本,实际 材料和电费加在一起应该在30块钱左右……
- 一套扫地机器人的轮子—>79元
- 其他(螺丝,导线等)—>不到100元
如果对硬件有疑问,也可以联系小窗我(文末有联系方式)讨论。
本博客系列的整体目录
- 硬件及下位机部分
- STM32驱动机器人运动和里程计
- 下位机舵机驱动方案以及上位机-下位机的交互
- 硬件周边模块设计以及注意事项
- 上位机软件部分
- 基于RK3399的ROS安装传感器软/硬件配置
- 机器人内部上-下位机通讯协议的编写
- 上位机软件架构以及整体实现
- 上位机-下位机协同调试
- 机器人3D空间重建与导航算法
- 基于空间矩阵的三维TF变换树
- 2D激光雷达数据向3D空间点云的映射
- 导航与场景3D空间完整重建
- 用户接口
- 基于http协议的机器人服务器与数据传输
- 机器人与阿里云服务器通信
- 基于云端的多机器人的协同
联系作者