STM32 ROS小车设计,附PID、运动模型解算、ros串口命令等详细教程


主要目的

        本人平时研究slam算法,比如激光导航,动态路径规划,以及其它上层业务以及外围驱动相关的开发。其中会很多的理论和实际应用会用到ros系统中的一些开源的软件包,所以希望借助于ros平台能够快速的验证和实现一些实际应用需要的解决方法。苦于资金紧张,等了好久才下决心做一个ros小车用于学习和研究。下面我会详细介绍我从头开始一步一步小车底层的计划、思路等。

ros小车方案选型

要从头做一个小车底盘,首先要了解小车底盘结构、硬件、模块等等。小车底盘承载着机器人定位、导航、移动、避障等多种功能,是机器人必不可少的重要硬件。所以一个好的底盘对于上层算法定位、导航、控制精度至关重要!底盘主要包括如下:

1. 小车驱动模型

2. 小车负载要求(电池容量)

3. 底层驱动控制板

4. 电机编码器选型

5. 传感器配套等等

有了上面基本需求后,接下来是自己从头设计还是借助现成的平台,就看各位自身时间安排和目的了。像我这种几乎天天加班,没有太多业余时间,另外主要目的还是借助于这个平台学习和研究ros系统相关的知识,同时又想把底层控制相关的从头做一遍。思考再三,决定借助淘宝看看有无满足要求的小车底盘可用,淘了很久决定购买下面链接这款:

优点有如下几个方面:

1. 负载大,搭配22.2V/20Ah锂电池,可承载30~60Kg;

2. 麦克全向转向轮,前后启动时刻角度变化小;

3. MD36行星减速电机500线光电编码器,响应快、线性度好、精度高。

4. STM32F405RGT6 MCU控制板

缺点就是就是价格比较贵、设计不够人性化,资金充足和想学习的同学可以考虑,下面我购买订单,其中选用20Ah锂电池,补差价420元。

为了方便调试和接线处理,我做了如下改动:

1. 让厂家定做了一个电源开关,防止调试时控制不住开关使用;

2. 买了一个usb集线器,分别接STM32仿真器、两个USB转RS232;

3. 买了双面胶以及以及加高铝合金板,方便固定锂电池和工控机(笔记本电脑或者NUC、树莓派、RK3399都可以)

OK,小车底盘准备好了,接下来需要熟悉小车底盘的结构、硬件、以及学习STM32控制器编程。

小车底盘结构与硬件

小车驱动模型

前端一个全向从动轮,后端两个独立驱动轮,双轮差速驱动模式

小车硬件

从拿到的资料看了下硬件原理图,了解相关的原理,然后用表格把硬件要用到的接口列了出来,如下图所示:

STM32 编程

我买的MCU型号是STM32F405RGT6,由于STM32系列原理大同小异,所以不熟悉SMT32的同学可以上B站或其它网站学习,推荐正点原子、野火以及创客学院的视频教程。本人花了教程半个月学习完视频教程。

小车底盘、硬件和控制原理、SMT32使用熟悉后呢,下一步就要开始自己动手调试了,想想都鸡冻。不过正式动手之前,还是要列个学习或者实践计划表哈。

学习计划

下面是我用visio画的一个时间节点图,如下所示:

接口功能单元

主要用到串口、SPI接口、GPIO、I2C、ADC、定时器等等,所以需要熟悉STM32这些接口编程。可以参考厂家提供的源码,不过既然是学习,一定要熟悉其中原理,然后自己动手实践才是硬道理。其中在调试编码器输入脉冲以及电机输出脉冲时需要用到示波器查看输入输出波形图,串口的话配合串口调试助手即可。基本功能模块调试完成后,需要组合成一个完成的ros小车底层MCU工程。

MCU Keil工程

工程目录组织如下:

CORE: M3内核、SMT32中断、启动相关文件

FWLIB: hal库文件

HARDWARE: 板载外围硬件接口驱动

MPU6050: 陀螺仪驱动接口文件

SYSTEM: 系统时钟初始化、调试串口等

UCOSIII: uscos系统相关文件

USER: 上层应用相关文件

代码统一用c编写。为了便于调试,下面用QT写了一个简单的上位机软件。

QT上位机调试软件

刚开始想把界面做的炫一点,还特意用visio画了一个QT布局图(想做的同学可以参考下),如下所示,后来没时间就去实现。

整体布局

主界面

地图显示

驱动控制

PID参数整定

日志管理

实际效果图

最终由于时间关系,简单实现了功能,界面没时间去做(没人给钱呀呀),如下图所示:

小车蓝牙控制

手机上下载一个手机蓝牙app,把小车上的DT-06蓝牙模块接上,即可用手机蓝牙控制小车运动啦


核心代码讲解

任务线程

主要5个线程,分别为串口命令处理、运动模型解析、imu、里程计计算、Oled显示。

ros串口参数及里程计信息

串口协议

串口使用FIFO数据结构,在串口中断函数里面接收上位机下发的命令(状态机实现),以及上报底层状态信息

运动模型解算

视频演示

如有需要这款小车的同学请下方留言,价格可谈。提供所有资料,厂家提供资料以及我自己做的所有软件源码以及资料文档,可免费提供技术支持哈。



ros小车 pid整定



ros小车 qt上位机

另外还有一块野火的F429-V2-带亚克力开发板,如下图所示,需要的同学给我留言:

https://v.youku.com/v_show/id_XNDU5MTIxNTcwMA==.html?x=&sharefrom=android&sharekey=84e5524b6deece2c7a833f80849a35b53

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,576评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,515评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,017评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,626评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,625评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,255评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,825评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,729评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,271评论 1 320
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,363评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,498评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,183评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,867评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,338评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,458评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,906评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,507评论 2 359

推荐阅读更多精彩内容