因为一直想去从零开始完全手写代码做一个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上位机控制

python机器人开发——基于Micropython的智能机器人底层控制开发相关推荐

  1. interlib android客户端开发,基于Android移动图书馆设计与开发.doc

    基于Android移动图书馆设计与开发 基于Android移动图书馆设计与开发 [摘 要]随着移动 技术的发展,图书馆数字化的资源已不局限于在电脑上进行展示,手机已成为用户浏览图书 馆数字化资源的重要 ...

  2. 基于AUTOSAR开发工具链的AUTOSAR软件实战开发---基于工具链AUTOSAR架构的开发流程

    前一节简单介绍了CP AUTOSAR及它的分层结构,本节介绍基于工具链AUTOSAR架构的开发流程,对于多数使用AUTOSAR架构开发汽车电子软件的工程师而言,主要关注的还是如何将AUTOSAR架构应 ...

  3. 基于php校园网站的开发,基于PHP的小学校园网站开发

    内容简介: 基于PHP的小学校园网站开发,毕业论文,共16页,5859字,附任务书.开题报告.外文翻译.答辩文稿.图纸.原程序等. 摘要:本论文详细描述了一个基于PHP技术和MySQL数据库系统的小学 ...

  4. php 微信公众号开发,基于 PHP 的微信公众平台开发

    一.服务器配置 申请微信公众平台,进入管理界面.开发 -> 基本配置,在服务器配置面板中点击修改配置,URL是你的服务器地址(http://myserver/index.php),Token随便 ...

  5. python创意项目设计方案-基于MicroPython软件相结合的无线设计方案

    物联网 (IoT) 应用的开发人员需要确保他们的无线传感器系统能够无缝连接到基于云的软件和服务.但是,这通常需要选择和使用多个无线接口.确保这些接口都能满足他们的要求,可让他们不再将注意力集中在更高级 ...

  6. 基于RflySim平台的底层飞控快速开发流程

    RflySim底层控制开发流程 前言 开发条件 本文使用 一.平台配置 二.开发流程-姿态控制器设计 1. 整体模型 1)搭建多旋翼仿真模型 2)设计遥控器映射信号 3)设计控制器 2. 软件在环仿真 ...

  7. 基于cocos2d-x的快速的游戏开发--回合制游戏

    2019独角兽企业重金招聘Python工程师标准>>> #基于cocos2d-x的快速的游戏开发--回合制游戏 开发时间:3天 开发工具:cocos2d-x和cocostudio 开 ...

  8. 【嵌入式Linux(基础篇)】嵌入式Linux底层系统开发流程和应用开发流程

    1.嵌入式Linux系统体系架构 一个完整的嵌入式Linux系统体系架构如图,大概可以分为三步: 硬件PCB板设计 底层系统开发 应用开发 2.硬件PCB设计流程 ① 获取所用芯片芯片手册: ② 建立 ...

  9. 电控底层软件开发介绍

    1 底层软件主要内容 底层软件开发内容有:一方面是设备驱动的实现,基于主芯片有:底层驱动PORTS,ADC,PWM,SPI,CAN,SENT等,基于外围芯片的复杂驱动. 另一方面基础功能的开发,boo ...

最新文章

  1. IDEA2020如何设置全局maven路径
  2. 如何使用Node.js解析JSON?
  3. IIS怎么设置本地域名解析(本地域名测试配置)
  4. Unity手游之路四3d旋转-四元数,欧拉角和变幻矩阵
  5. 主成分分析原理解释(能力工场小马哥)
  6. 多重继承java_Java中的多重继承与组合vs继承
  7. php tool pagination,php实现分页工具类分享
  8. 服务器安装三节点RabbitMQ集群(3)
  9. html table datasrc,table_data_tables.html
  10. Android异常总结---3.Failed to install *.apk on device 'emulator-5554': timeout 错误提示:
  11. 【成功实践篇】VirtualBoX虚拟机和本地共享存储目录
  12. java.util.zip.ZipException: invalid code lengths set解决办法
  13. 计算机网络带宽是什么意思,带宽是什么有什么意义
  14. 14年macmini装双硬盘_Mac mini 2014版(中配)更换固态硬盘
  15. Holding Two
  16. python负数的处理
  17. html5 扫描条码,原 HTML5+规范:barcode(条码扫描)
  18. JVM 逃逸分析 (史上最全)
  19. 自签名证书报错:javax.net.ssl.SSLPeerUnverifiedException: Hostname xxx not verified
  20. 项目实训—场景划分(一)

热门文章

  1. 微型计算机的i3或i5一般指的是,英特尔i3、i5、i7分别相当于骁龙哪个层次的处理器?...
  2. cie规定的标准光源_标准光源概述_相关术语_所需条件-维库电子通
  3. Python高效编程之88条军规(1):编码规范、字节序列与字符串
  4. springcloud(瞿永超著)学习记录(更新中)
  5. 啊5G 你比4G多1G
  6. python的Gensim库如何使用
  7. MAC下虚拟机PD转换成win上可以用的vmware
  8. 语音识别 - ASR whisper
  9. 微信公众号服务器搭建
  10. MySQL的存储过程(in、out、inout)