智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3361|回复: 22
打印 上一主题 下一主题

自立车转向的简单探究

[复制链接]

3

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
462
威望
236
贡献
128
兑换币
143
注册时间
2016-12-16
在线时间
49 小时
毕业学校
西南交通大学
跳转到指定楼层
1#
发表于 2017-6-1 14:36:52 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
自立车的转向受到各方面的影响,比如赛道摩擦,电池电量。其原因在于普通的转向PD算法没有反馈环节,导致转向差异。下面对小车过弯做一个简单探究。角速度w=v/r;近似的我们认为转弯半径r和小车寻线偏差err成反比即r=1/err.那么小车过弯需要的角速度我们已经计算出来了即w=v*err,也就是速度与寻线偏差的乘积。我们通过水平放置的陀螺仪检测当前的角速度,再根据需要的角速度做一个反馈,这样过弯的姿态就基本被控制下来了。下面给出我的代码再进行相关说明

W_err=speed_now*err*0.166;//根据寻线偏差和速度以及采集的陀螺仪值计算角速度偏差,这儿有个0.166这个角速度换算系
                                               数,因为我们所用的物理量都没有单位,我们也不知道单位,所以换算关系需要测定。
outdir = err * kp_dir +(errDot)*kd_dir-gyro_x*1.5+W_err*6;

可以看到整个公式有4项,前面两项为普通的寻线PD项;
第三项是根据陀螺仪也是给了一个D项,从姿态上限制转向过冲,寻线的D是从寻线上限制转向过冲的,两个D作用相同;
第四项是角速度反馈的P项,至于角速度反馈D项是否需要看情况吧。
关于角速度换算系数的测定方法:
1.在一个简单的赛道赛道上调好一组寻线PD,姿态调好了,就认为你的当前角速度与需要角速度是匹配的,即W_err是为零的。
2.这时候找到这个让W_err为零的系数就可以了。





补充内容 (2017-6-1 15:21):
W_err=speed_now*err*0.166-gyro_x
回复

使用道具 举报

3

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
462
威望
236
贡献
128
兑换币
143
注册时间
2016-12-16
在线时间
49 小时
毕业学校
西南交通大学
23#
 楼主| 发表于 2017-6-6 13:12:36 | 只看该作者
Traverlcq 发表于 2017-6-6 09:54
抢个沙发 值得一试 感谢楼主分享思路

嘿嘿,加油加油
回复 支持 反对

使用道具 举报

2

主题

98

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2253
威望
1106
贡献
715
兑换币
740
注册时间
2016-6-9
在线时间
216 小时
毕业学校
XMUT
22#
发表于 2017-6-6 09:54:55 | 只看该作者
抢个沙发 值得一试 感谢楼主分享思路
回复 支持 反对

使用道具 举报

3

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
462
威望
236
贡献
128
兑换币
143
注册时间
2016-12-16
在线时间
49 小时
毕业学校
西南交通大学
21#
 楼主| 发表于 2017-6-6 08:18:34 | 只看该作者
xgl 发表于 2017-6-5 20:09
楼主 能帮我说明一下普通寻线的D项就是偏差微分怎么计算的吗?我们现在用的PD控制 p项为偏差,d项为转向角 ...

就是用这次偏差减上次偏差 errDot = err - errLast;
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

高级会员

Rank: 4

积分
739
QQ
威望
340
贡献
227
兑换币
222
注册时间
2017-4-5
在线时间
86 小时
毕业学校
济南大学
20#
发表于 2017-6-5 20:09:27 | 只看该作者
楼主 能帮我说明一下普通寻线的D项就是偏差微分怎么计算的吗?我们现在用的PD控制 p项为偏差,d项为转向角速度,,,
回复 支持 反对

使用道具 举报

3

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
462
威望
236
贡献
128
兑换币
143
注册时间
2016-12-16
在线时间
49 小时
毕业学校
西南交通大学
19#
 楼主| 发表于 2017-6-5 10:48:38 | 只看该作者
竹鱼。 发表于 2017-6-5 10:29
赞,把转向pd动态联系起来。但是圆环和十字会这样我认为是图像补线的问题呢

是张钜泽吗
回复 支持 反对

使用道具 举报

2

主题

43

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1462
威望
716
贡献
430
兑换币
456
注册时间
2016-11-5
在线时间
158 小时
毕业学校
长春理工大学
18#
发表于 2017-6-5 10:29:52 | 只看该作者
搬砖工 发表于 2017-6-1 17:54
试验了得,以前圆环转向转不动,但十字还会骑路肩,加了之后好多了

赞,把转向pd动态联系起来。但是圆环和十字会这样我认为是图像补线的问题呢
回复 支持 反对

使用道具 举报

3

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
462
威望
236
贡献
128
兑换币
143
注册时间
2016-12-16
在线时间
49 小时
毕业学校
西南交通大学
17#
 楼主| 发表于 2017-6-3 08:58:52 | 只看该作者

我试过speed_now*err*0.166-gyro_x只用这一项乘上一个系数也能跑,相当于根据偏差与速度计算目标角速度,在与当前角速度做差给了一个比例环节
回复 支持 反对

使用道具 举报

3

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
462
威望
236
贡献
128
兑换币
143
注册时间
2016-12-16
在线时间
49 小时
毕业学校
西南交通大学
16#
 楼主| 发表于 2017-6-2 22:02:14 | 只看该作者
1325536866 发表于 2017-6-2 10:06
如果你玩过四轴,其实你可以尝试使用串级pid,外环偏差,内环角速度。

没玩过
回复 支持 反对

使用道具 举报

7

主题

365

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
7770
威望
3761
贡献
2379
兑换币
2406
注册时间
2013-4-19
在线时间
815 小时
15#
发表于 2017-6-2 10:06:45 | 只看该作者
如果你玩过四轴,其实你可以尝试使用串级pid,外环偏差,内环角速度。
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-25 15:24 , Processed in 0.121181 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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