速度规划:s形曲线工程应用的问题(4)

本文探讨了机器人速度规划中的三个关键问题:启动和停车时的死区、机器人跟踪不上规划速度以及减速异常。针对这些问题,提出了采用S形曲线分段规划,结合最小速度启动和目标速度减小的策略,以及建立基于时间和速度反馈的闭环跟踪修正方案。同时,给出了仿真代码示例,强调了参数调整和末端距离的重要性。

问题一:不受限规划中(只变速,无距离限制),机器人启动和停车时,存在死区的解决方案

解决思路:将s形规划分为两段,第一段为死区段,第二段我s形加速段
①在死区段下发最小速度,使机器人启动;
②在加速段,用s形规划,注意起始速度为vmin;
同理,在减速段也需要规划,将目标速度设为vmin,执行完规划,再下发零速度进行刹车。请添加图片描述
启动

在这里插入图片描述
停车

问题二:速度规划中机器人可能跟踪不上规划速度

问题分析:机器人可能因各种原因存在可能跟踪不上规划速度的情况,我们建立的s形规划模型是基于时间的速度规划,此时以时间为基准会出现错误,即完全开环,没有任何反馈纠正策略,偏差较大
解决方案:①以上个时刻的规划速度为基准,下个时刻以上个时刻速度对应的时间加一个周期的时间计算对应速度,并下发;
②通过误差判断,如果超过误差,则继续发上个规划速度等待机器人跟踪。

方案①补充:通过时间匹配下一时刻速度,使得速度规划为开环,如果机器人不能跟踪当前速度,则会出现较大误差,这里通过当前车速计算对应s形曲线时间t,再计算t的下一个时刻的速度作为下一个时刻的速度给机器人,这样可实现闭环速度跟踪。
对应仿真c++代码。注意:代码可能存在更新,请选择Match the current speed to the next momentary speed这个版本下载。

打开main.cpp中的该段代码:

    for (double t = time; t <= time + tf; t += cyclicality) {
   
   
        //double s_t = PathCurve(t);
        period = t - time;
        double v_t = vp.vmodel.GetSpeedfromTime(t);
        if (!flag) {
   
   
            cv::circle(canvas, cv::Point(period * kx, v_t * ky
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值