首页 论坛 创客及开源专区 开源、DIY及3D打印 基于STM32F1的自动跟随机器人设计:大鱼机器人开源分享(MDK源码+论文)
- 0000000000000000
-
1888 发帖7917 回复34980 积分
- 私信他 + 关注
大鱼机器人开源:自动跟随机器人(源码+论文)
感谢原创:张巧龙
公众号:大鱼机器人
技术群:124545085
摘要:以C/C++等高级语言编程能够帮助开发者更加有效的设计两轮平衡车的控制系统。本文设计的平衡车系统是以C语言作为开发语言来设计软件程序的,选用意法半导体公司的STM32F103系列的微控制器作为本控制系统的主控芯片,使用惯性传感器MPU6050实时采集得到加速度的值及角速度的值,经过卡尔曼滤波算法融合加速度和角度计算出两轮平衡车系统的倾角,并通过PID控制器计算出控制PWM,通过PWM信号输出到电机驱动上,从而控制电机的速度和方向,从而控制平衡车的平衡和简单行走。
关键词:STM32F103;MPU6050;卡尔曼滤波;PWM;PID控制器
腾讯视频播放地址:https://v.qq.com/x/page/n05379v9lxy.html
实物
人车跟随
车车跟随
硬件方案
选用单发单收的超声波模块进行测距,以此来获取人与车的距离,模块可在某宝上购买,也可自己制作。
在机器人的两端各安装一个单收超声波,人手持一个单发的超声波模块。
这样左侧与右侧离人的距离就构成了一个三角形。简单示意图如下图所示:
当机器人正对着人时,装在机器人上的2个超声波模块,距离A=B,
当人左拐时,A必定小于B,
同理当人右拐时,A大于B。
当人向前走时,A和B的距离必定大于设定距离。我们只需要控制好这几个距离即可。
由此可获得人与机器人的距离以及人的行走路线,来实现机器人的自动跟随功能。
这种超声波模块也能做跟随,但是非常有限制性,为什么呢?
这种超声波模块,收发一体,只能测试障碍物的距离。
也就是说只能测出机器人面前的物体与机器人的距离。
所以只能做直线跟随!并不能转弯跟随!
有人会说,和上面一样,一边装一个不就行了吗。
这样必失败,因为2个超声波都会发出超声波,会互相干扰,距离一个都测不出。
/ 3 / 程序设计
选当获取到A、B距离后,如何控制呢?对距离做一个简易的PID中的P控制即可。
代码如下(完整源码请回复【自动跟随】获取)
首先是直线跟随的部分代码:
其次是转弯跟随的部分代码:
- 0000000000000000
-
1888 发帖7917 回复34980 积分
- 私信他 +关注
- daniel2016
-
0 发帖86 回复272 积分
- 私信他 +关注
块
导
航
举报
请选择举报类别
- 广告垃圾
- 违规内容
- 恶意灌水
- 重复发帖