搜索
bottom↓
回复: 29

关于如何控制小车按照规划的曲线行走?

[复制链接]

出0入0汤圆

发表于 2016-4-20 15:10:39 | 显示全部楼层 |阅读模式
请教大家关于如何控制小车路径跟踪的问题。
因为只用直线和圆弧无法做到路径的平滑过度,需要加入贝塞尔曲线,但如何在贝塞尔曲线下做到路径跟踪呢?

我大概的想法是可以在曲线上设好一系列的控制点,具体多少个可以根据控制的精度来设,然后根据控制点在曲线上的切线算出角度偏差和横向位置偏差,来控制。


但有个问题就是,因为有一串控制点,我如何确定什么时候用哪个点作为控制点呢?一直没想通,有没有大神过来指点指点。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2016-4-20 15:33:59 | 显示全部楼层
这个有难度

出0入0汤圆

 楼主| 发表于 2016-4-20 15:43:37 | 显示全部楼层

难度在哪里?贝塞尔曲线可以用三次低阶的,曲线方程知道,已知点的切线也可以求出来。

出0入0汤圆

发表于 2016-4-20 16:20:18 | 显示全部楼层
把这个曲线转成函数

出0入0汤圆

 楼主| 发表于 2016-4-20 16:28:49 | 显示全部楼层
xinbihui 发表于 2016-4-20 16:20
把这个曲线转成函数

这个曲线的函数已知,不过是分别关于x,y坐标与中间变量参数t(0,1)变化的方程。

出0入0汤圆

发表于 2016-4-20 16:56:17 | 显示全部楼层
实际的工程不会用这么多的算法的

出0入10汤圆

发表于 2016-4-20 17:02:13 来自手机 | 显示全部楼层
高深的话题

出0入0汤圆

发表于 2016-4-21 09:21:35 来自手机 | 显示全部楼层
点取多一点,相近两点间就是直线

出0入0汤圆

 楼主| 发表于 2016-4-21 09:34:07 | 显示全部楼层
ztlaputa 发表于 2016-4-21 09:21
点取多一点,相近两点间就是直线

嗯,不错的思路谢谢啦!

出0入0汤圆

发表于 2016-4-21 10:28:19 | 显示全部楼层
ztlaputa 发表于 2016-4-21 09:21
点取多一点,相近两点间就是直线

真的是  又简单,又实用啊

出0入0汤圆

发表于 2016-5-6 08:43:26 | 显示全部楼层
走迷宫吗,最快的速度到达指定位置,我也在玩。 弯道处 就是关键点。

出0入0汤圆

 楼主| 发表于 2016-5-6 13:55:11 | 显示全部楼层
wind2100 发表于 2016-5-6 08:43
走迷宫吗,最快的速度到达指定位置,我也在玩。 弯道处 就是关键点。

不是迷宫,是按照设定好的路线走,应该算是路径跟踪,要求跟踪误差尽可能小。

出0入0汤圆

发表于 2016-5-6 16:51:09 | 显示全部楼层
可以通过轨迹拆分来实现啊

出0入0汤圆

发表于 2016-5-6 18:16:05 | 显示全部楼层
996512682 发表于 2016-5-6 13:55
不是迷宫,是按照设定好的路线走,应该算是路径跟踪,要求跟踪误差尽可能小。 ...

怎么来设置这个路线?

出0入0汤圆

发表于 2016-5-6 18:39:35 | 显示全部楼层
你要控制贝塞尔曲线的生成点,还是要控制小车?
如果是前者,连续平滑的贝塞尔曲线一般采用4点3次方公式:
B(t) = P0*(1-t)^3 + 3*P1*t*(1-t)^2 + 3*P2*t^2*(1-t) + P3*t^3, 0<=t<=1
控制小车的话,对B(t)求导就是速度曲线,再求导就是加速度曲线,加速度曲线使用PID滤波即可得到电流/电压控制点

出0入0汤圆

发表于 2016-5-6 18:58:07 | 显示全部楼层
跟机床上面走刀类似?  研究一下各种插补算法

出0入0汤圆

发表于 2016-5-6 19:26:52 | 显示全部楼层
我当年的做法是用贝塞尔曲线生成密集的离散点,然后微观下相邻两个点形成的直线的方向就是切线方向,机器人当前位置距离实际目标曲线误差就是当前位置到当前直线的位置,难点在于怎么样把这套原理不断随着车体的前进不断迭代下去,我用了个计算钝角三角形的方法。
这里有个需要注意的地方,就是相邻的三个计算点之间不能形成直角三角形,否则计算出错。由于车体重接近20kg,机构间隙比较大,各种运动耦合很大,实际控制精度在1m/s的情况下估计可以到2cm/s,速度越慢精度越高。效果可以看看robocon的机器人比赛

出0入0汤圆

发表于 2016-5-6 19:33:21 | 显示全部楼层
机床也只是圆弧插补,函数有难度

出0入0汤圆

发表于 2016-5-7 06:38:57 | 显示全部楼层
楼主别曲线了,走个直线给我看看

出0入0汤圆

 楼主| 发表于 2016-5-8 19:47:59 | 显示全部楼层
zyw19987 发表于 2016-5-7 06:38
楼主别曲线了,走个直线给我看看

直线还是不难的,求出小车当前点距直线的距离和小车车体角度与直线角度的差值,根据这两个误差参数控制小车就行了,圆弧也是类似,只不过要改成点到圆弧的距离和小车与圆上一点切线的角度差值。
我试过误差可以在10mm以内。

出0入0汤圆

发表于 2016-5-9 20:42:11 来自手机 | 显示全部楼层
996512682 发表于 2016-5-8 19:47
直线还是不难的,求出小车当前点距直线的距离和小车车体角度与直线角度的差值,根据这两个误差参数控制小 ...

这样的前提是建立在小车自身的角度和位置精确的基础上吧,请问如何定位

出0入0汤圆

 楼主| 发表于 2016-5-9 22:40:30 | 显示全部楼层
ztlaputa 发表于 2016-5-9 20:42
这样的前提是建立在小车自身的角度和位置精确的基础上吧,请问如何定位
...

韩国的一个定位传感器STARGAZER

出0入0汤圆

 楼主| 发表于 2016-5-9 22:44:45 | 显示全部楼层
jathenal 发表于 2016-5-6 18:39
你要控制贝塞尔曲线的生成点,还是要控制小车?
如果是前者,连续平滑的贝塞尔曲线一般采用4点3次方公式:
...

道理是这样,但是这个t参数不是代表的不是时间啊,如果不是时间求导怎么会是速度呢

出0入0汤圆

 楼主| 发表于 2016-5-9 22:54:22 | 显示全部楼层
鼻儿眼睛花 发表于 2016-5-6 19:26
我当年的做法是用贝塞尔曲线生成密集的离散点,然后微观下相邻两个点形成的直线的方向就是切线方向,机器人 ...

嗯,跟我这几天的想法差不多,不过我想的是检测生成有向直线与小车所在点的位置,如果上方和下方的话就在直线内,左侧就是还没进入直线,右侧就是出去了。
不知你们的全局定位用的是什么,误差是多少,还有小车是什么结构的差速还是舵轮式的呢?

出0入0汤圆

 楼主| 发表于 2016-5-9 22:56:43 | 显示全部楼层
wind2100 发表于 2016-5-6 18:16
怎么来设置这个路线?

这个是手动指定的

出0入0汤圆

发表于 2016-5-11 12:27:40 | 显示全部楼层
996512682 发表于 2016-5-9 22:54
嗯,跟我这几天的想法差不多,不过我想的是检测生成有向直线与小车所在点的位置,如果上方和下方的话就在 ...

陀螺+十字马盘,然后一堆传感器对它修正。
下面有几个影响精度的点:
1、陀螺会有温飘,这个是痛点,特别难。
2、十字码盘会因为自身结构和地面不平的因素会跳动,然后测量就会小于实际。
3、十字码盘加工精度不行,刚度不行,造成结构的误差。
4、底盘减震造成的码盘和地面接触力的变化。
5、轮子的正压力由于十字码盘的悬挂点不在中心而出现不平衡。
6、由于平面运动,我们基本只用到陀螺的yaw,这个yaw没有传感器可以修正(指南针是不行的,干扰太大,不可信),陀螺代表了坐标系的轴,所以特别关键,误差随着前进距离会成比例增加。
7、需要传感器不断纠正坐标系轴向和当前坐标,高级的可以用立体视觉定位,激光雷达。

出0入0汤圆

发表于 2016-5-11 13:22:10 | 显示全部楼层
本帖最后由 jathenal 于 2016-5-11 13:31 编辑
996512682 发表于 2016-5-9 22:44
道理是这样,但是这个t参数不是代表的不是时间啊,如果不是时间求导怎么会是速度呢 ...

当然不是对B(t)中的t求导,那个t只是一个位置权重变量,但t跟时间有关系,即每一个时间点,对应一个位置t
如果用大写的T代表时间,则t=f(T),即位置是时间的函数,B(t)=B(f(T)),这样求导才有意义
至于如何构建f(T),就看具体控制策略了,例如最简单的均匀变化(注意,均匀不代表匀速或直线),t=f(T)=vT,其中v是常量,则B(t)=B(vT),接下来就是纯计算问题了
事实上B(t)公式为毛用t做变量而不是p做变量,用久了就有感觉了,其实是一回事,似乎p更强调某一点的位置关系,而t更强调整个生成过程

出0入0汤圆

发表于 2016-5-11 14:38:22 | 显示全部楼层
曲线完全固定?那就直接分点插值变成短直线,跟小车结构也相关的吧,是差速还是转向系统,复杂通用一点可以试试人工势场法路径规划

出0入0汤圆

发表于 2016-5-23 10:59:01 | 显示全部楼层
996512682 发表于 2016-5-9 22:40
韩国的一个定位传感器STARGAZER

请问这个传感器定位精度怎么样,能不能给个链接。我目前也做这一块。

出0入0汤圆

发表于 2016-5-25 08:39:53 | 显示全部楼层
我也想作一些此方面的研究,持续关注
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 15:08

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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