因为一直想去从零开始完全手写代码做一个ROS机器人,同时目前手里会的技能有基于micropython的STM32单片机编程、基于python的ROS学习基础,再多一点就是基于PaddlePaddle的AI视觉部分的部署应用,关于激光雷达、路径规划方面的了解很少,所以会在写博客的时候边学习边完善知识体系。
  因为我在看白茶-清欢的博客从零搭建ROS机器人的时候,发现这里的系列博客是用纯C/C++去编写整个ROS机器人的代码的,而对于博主这种对于STM32库函数不太熟,又觉得不想浪费那么长时间去学习;同时上位机部分也是比较擅长用python而不是C++去写,所以就遇到了一个难题,虽然很想一步一步跟着大佬的博客搭出机器人,但是觉得编程语言还是一道大坎,所以这里博主就打算纯用python去做一个ROS机器人,同时分享给大家制作的经验和完整流程、代码,让大家可以一起来学习。


有些同学可能会非常疑惑,怎么能够做到只用python去做一个ROS机器人呢?在这里给大家推荐一下Micropython语言,可以直接运行在固件支持的STM32单片机上,不过还是建议大家购买pyboard,因为自己刷固件比较麻烦,而且真正使用起来得去查引脚什么的不是那么的方便。

那么我为什么选择学习和使用Micropython而不是库函数C语言去写下位机代码呢?其实博主未来比较倾向于发展的方向是视觉、SLAM方向,所以单片机对于博主来说是一个工具,会用,能够使用单片机快速地完成产品或项目的开发是博主最主要的需求,同时也不想在单片机的学习上花费过多的时间和精力。另一方面,Micropython可以满足博主对于单片机的所有需求,且对于新手或者使用python语言的同学来说也上手容易,入门简单,学习周期短,所以Micropython对于我来说便是不二的选择。

1.硬件准备

我觉得白茶-清欢博主其实已经将整体的架构讲得非常清楚了,所以接下来我只做一个具体性的介绍:除了单片机不一样之外,其他的硬件都相同。

两轮差速小车

方案一:适合几乎没有任何小车底层控制器件的小伙伴,一次性购买所有。
参考白茶-清欢《快速低成本搭建ROS机器人平台(一)》
方案二:适合已经有部分ROS小车底层控制器件,可以灵活购买清单内容。
参考白茶-清欢《快速低成本搭建ROS机器人平台(二)》
在这里插入图片描述

2.软件架构

在这里插入图片描述

3.系列文章

《基于Micropython的STM32的底层控制》
具体介绍:《基于PYB的两轮差速底盘系统》

开发环境

VScode
Micropython——《使用vs code进行PYB开发调试及py工程文件上传下载》


底层控制系列教程

在配置好开发环境后,接下来就进入了机器人的底层控制环节:

(1)Micropython——基于PYB的TB6612的PWM电机控制

(2)Micropython——基于PYB的霍尔编码器电机测速与使用

(3)Micropython——基于PYB的霍尔编码器电机的PID控制

(4)Micropython——六轴MPU6050模块的使用

(5)Micropython——使用I2C通信的OLED显示屏

(6)Micropython——使用PS2手柄实现远程遥控

如果你能做到这里,让小车跑起来,那么下位机部分的开发就基本结束啦,剩下的事情只剩和树莓派联调的时候进行小修小补而已。

待更:基于树莓派的ROS上位机控制