本文最后更新于2020年8月1日,已超过 1 个月没更新!

开始搭车!!!2020年4月27日星期一开始,我将开始进行自主导航机器车的搭建,之后不定期会在我的个人网站发布本周的工作进度。由于近期事情比较多,无法全身心在导航车的搭建上,因此可能进度会稍微慢一些,具体多久能搭建好我也不确定(近期确实有点爆炸...),不过目前整个系统的软件和硬件结构我都已经构思好,所以本文就先主要写一下我对整个自主导航机器车的软硬件设计框架。

在开发过程中,自主导航机器人的代码主要托管在以下两个仓库:
ROS_Program仓库:Auto-Navigation-RoboCar
MCU_Program仓库:RoboCar_Driver

开发完成后,开源所有代码和材料清单。

1. 机械设计

废话不说,先上图!
提前说明渲染图仅供参考😂
毕竟理想总是丰满的😂😂

再看看屁股:

底部视角:

从侧面再看看吧!

看图已经很清楚,我就不详细解释了,其实感觉也没啥好说的。(全靠开孔提高逼格...手动狗头)

2. 嵌入式硬件设计

2.1 上位机主控

上位机为整个移动机器人的控制中枢,主要负责建图、定位和自动导航功能。由于Cartographer算法和路径规划算法挺耗计算资源的,尤其是之后打算实现视觉SLAM的建图那更是能让主控飞起来......所以目前尽量先选择一个性能比较ok的主控会比较好,正好手头有之前学长留下了的RK3399,性能还是很强的,所有就选定使用这个了。

2.2 下位机主控

下位机主控主要负责电机的PID闭环控制,同时需要实时地上发机器人姿态速度信息和接收上位机对底盘地控制指令。这里计划采用STM32系列中的STM32F103R8T6作为主控芯片。

2.3 激光雷达

考虑成本(毕竟我是个穷学生....)
就用rplidar-a1吧...(这还是某学长上用完留下来的...)

2.4 Kinect v1

Kinect是微软(Microsoft)推出的一款体感模组。其中间的镜头是RGB摄像头,可进行图像的采集。RGB摄像头的左右两边的两个镜头分别为红外线发射器和红外线CMOS摄影机,其一起构成一套3D结构光深度感应器,可以采集到周边环境的深度信息。非常有利于用来进行3D的建图。同时结合RGB可以用来进行物体的辨认和环境场景的识别。

2.4 驱动电机

电机就没啥好说的了,低成本首选520编码器电机了,完全够用了。

2.1 电池

电池的话就航模电池3s了,标准电压11.1V够用了。这里考虑到RK3399主控,最好还是要提供稳定的12V电压源,所以计划用MT3608升压到12v给主控供电。

还有一些小模块就不写了,等到时搭建完,我统计成一个表分享出来吧。

软件设计

上位机软件架构

软件架构就是基于ROS呗!

  • Ubuntu16
  • ROS kinetic

[SLAM实践]麦轮底盘自主导航机器人立项

这里我就不详细介绍了,不懂的小伙伴百度百科已为您呈上:
ROS百度百科
Ubuntu百度百科

下位机软件架构

跑裸机程序虽然也能做,毕竟下位机stm32也就主要也就做个PID、陀螺仪、里程计和串口通讯。但是考虑到之后的扩展更多模块,决定使用FreeRTOS微实时操作系统,有了FreeRTOS,STM32能玩的就更多了。

FreeRTOS


Try and fail, but don't fail to try.