Nox:基于 ROS 的 DIY SLAM 家用巡航机器人
Nox 是一个基于 ROS、树莓派和 Arduino 的差速驱动机器人,配备 Kinect 360 实现实时 SLAM 和避障。
最初作为模块化底盘构想,后扩展为全自主平台,能利用 gmapping 构建环境地图、自我定位,并规划无碰撞路径到达任意目标点。
由 11.1V 锂电池和两个 12V 直流电机(107 rpm,来自 Banggood)驱动,前面板可拆卸并兼容不同长度电池。电量显示提醒充电时机。
虽电机提供足够速度,但我优先选择精确编码器以获得更平滑导航。
底盘设计融合 Kinect,采用流线型三角造型,灵感源自当代设计和经典“Deus Ex”美学。大量 CAD 调整确保专业外观且布线整洁。
状态 LED(来自跨年荧光棒回收)提供视觉提示:快速三闪表示 Arduino 尚未连接 ROS master;呼吸模式表示活跃导航,闪烁频率随速度缩放。
未连接闪烁
空闲闪烁
结构
差速驱动将两电机置于同一轴。木质底座支撑两个万向轮保稳定;后部堆叠板安装树莓派、Arduino 等电子设备。
外壳为手工切割黑色塑料板,未来将用 3D 打印优化。
硬件
核心为运行 Ubuntu 和 ROS 的树莓派 3B,通过 Wi-Fi 和 SSH 远程控制。ROS 处理里程计、导航规划和 Kinect 数据 SLAM。Pi 发送速度指令到 Arduino Mega 2560,后者通过 Adafruit 电机扩展板用 PID 回路驱动电机。编码器反馈回传 Pi 用于精确里程计。
尝试过 Uno 和 Leonardo 最终选 Mega 2560,因其内存充足和中断引脚利于编码器读取。
Kinect 360 是核心:25 欧元的 3D 相机提供 gmapping 所需深度数据,还带视觉、加速度计和麦克风阵列,为未来扩展留有余地。
电源管理用两个 DC-DC 转换器:电机直供 11.1V 电池,Pi、Arduino、编码器用 5V,Kinect 获稳压 12V。
软件
项目运行 ROS Kinetic。唯一自定义节点 nox_controller 从电机速度数据计算里程计。运动学模型参考“差速驱动机器人里程计在路径规划中的应用”。发布协方差矩阵供未来传感器融合。
电机控制目前用直接 PWM 指令;PID 回路暂禁用但将校准以提高精度。编码器反馈已提供满意速度调节。
阅读更多详情:Nox – A House Wandering Robot (ROS)
制造工艺
- 树莓派与Arduino协作构建机器人:分步指南
- Bridge Shield扩展板:树莓派与Arduino集成打造智能机器人
- DIY仿Wall-E树莓派CD盒机器人
- ANDY:多功能人形机器人
- 滚动闹钟机器人:树莓派+Google Calendar智能移动唤醒系统
- 用 Arduino 打造电动《我的世界》苦力怕机器人
- JQR 四足自主机器人:DIY 腿足机器人用于自主导航与救援
- Archimedes:情感感知 AI 机器猫头鹰
- EMAR Mini:紧凑型开源紧急救援辅助机器人
- 用 Python 构建 Wi-Fi 控制的树莓派机器人:分步指南
- Intellisaurus:打造会走路的智能恐龙机器人
- 在 Windows 10 IoT Core 上构建语音驱动的计算机视觉机器人