因为一直想去从零开始完全手写代码做一个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机器人平台(二)​​
  • python机器人开发——基于Micropython的智能机器人底层控制开发_上位机


2.软件架构

python机器人开发——基于Micropython的智能机器人底层控制开发_单片机_02

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上位机控制