OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5915|回复: 14

PID算法的智能小车在设定位置停止问题

[复制链接]

10

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2016-5-8
在线时间
17 小时
发表于 2017-4-15 08:56:25 | 显示全部楼层 |阅读模式
3金钱
stm32   mini版  用PID算法控制的的智能小车,在超声波测距之后如何在用户设定位置停下来??????

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2017-4-15 10:02:29 | 显示全部楼层
行走一定的距离后自动停下来是吧
回复

使用道具 举报

10

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2016-5-8
在线时间
17 小时
 楼主| 发表于 2017-4-15 10:08:51 | 显示全部楼层
八度空间 发表于 2017-4-15 10:02
行走一定的距离后自动停下来是吧

不        要求停在十米处 ,不是走了十米后自动停下
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2017-4-15 10:15:00 | 显示全部楼层
ccrr 发表于 2017-4-15 10:08
不        要求停在十米处 ,不是走了十米后自动停下

碰到障碍物自动停止?要求停在10米处还不是行走一定距离么???
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

16

主题

197

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
457
金钱
457
注册时间
2012-4-20
在线时间
91 小时
发表于 2017-4-15 10:25:46 | 显示全部楼层
本帖最后由 ba5rw 于 2017-4-15 10:28 编辑

PID算法包含在条件循环中,当满足超声波条件时结束PID循环。
比如:
while(distance<10)
{
PID();
}
STOP();
回复

使用道具 举报

10

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2016-5-8
在线时间
17 小时
 楼主| 发表于 2017-4-15 10:25:53 | 显示全部楼层
八度空间 发表于 2017-4-15 10:15
碰到障碍物自动停止?要求停在10米处还不是行走一定距离么???

那好吧    要怎么弄??
回复

使用道具 举报

10

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2016-5-8
在线时间
17 小时
 楼主| 发表于 2017-4-15 10:29:34 | 显示全部楼层
ba5rw 发表于 2017-4-15 10:25
PID算法包含在条件循环中,当满足超声波条件时结束PID循环。

pid算法是算距离的误差线性叠加,那么这个循环判断要判断什么?
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2017-4-15 10:41:22 | 显示全部楼层
ccrr 发表于 2017-4-15 10:25
那好吧    要怎么弄??

PID要测速吧,直接叠加计数值来计算距离就是啦,遇到超声波事件(有障碍物)立马停止电机就是了,没障碍物距离达到了就停止电机
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

10

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2016-5-8
在线时间
17 小时
 楼主| 发表于 2017-4-15 10:43:22 | 显示全部楼层
八度空间 发表于 2017-4-15 10:41
PID要测速吧,直接叠加计数值来计算距离就是啦,遇到超声波事件(有障碍物)立马停止电机就是了,没障碍 ...

没障碍物距离达到了就停止电机,哪还有惯性吧,就不会停在10处了啊
回复

使用道具 举报

0

主题

125

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2728
金钱
2728
注册时间
2015-10-29
在线时间
428 小时
发表于 2017-4-15 10:50:37 | 显示全部楼层
给个短暂的反转信号,当刹车用不就行了
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2017-4-15 10:51:18 | 显示全部楼层
本帖最后由 八度空间 于 2017-4-15 10:52 编辑
ccrr 发表于 2017-4-15 10:43
没障碍物距离达到了就停止电机,哪还有惯性吧,就不会停在10处了啊

你就不能提前停么?要停的很精准的话到了直接反转电机吧,这样比较准确点,不然可以用伺服电机,准确度更加准
一点误差都没有那是不可能的,只要在误差范围之内就可以了,PID也有误差的
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2017-4-15 10:53:19 | 显示全部楼层
kepuple 发表于 2017-4-15 10:50
给个短暂的反转信号,当刹车用不就行了

他要求精度非常高,必须是10米,多一点少一点都不行的
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

0

主题

125

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2728
金钱
2728
注册时间
2015-10-29
在线时间
428 小时
发表于 2017-4-15 11:16:09 | 显示全部楼层
那就来个绝对位置伺服控制
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2017-4-15 12:11:14 | 显示全部楼层
就个小车至于这么复杂吗?
直接测距,大于10米前进,小于10米后退,不断重复。
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

16

主题

197

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
457
金钱
457
注册时间
2012-4-20
在线时间
91 小时
发表于 2017-4-16 18:26:17 | 显示全部楼层
ccrr 发表于 2017-4-15 10:29
pid算法是算距离的误差线性叠加,那么这个循环判断要判断什么?

每次循环实际上都在检测光感在两轮差速修正后的值,因此这个PlD函数是一个循环函数,就能用循环条件控制其结束。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-22 03:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表