机器人在给客户演示时,概率出现一个问题现象:
制定目的地后,机器人在行进过程中不断朝一个方向转圈式前进,最终达到目标位置,这过程中可以避障。
见下图:
粉色框:起点
蓝色框:终点
黑色线:规划路径
红色线:实际行进路径
分析:
1.从行进过程中可以看到,机器人最后还是可以运行到目标位置,这说明它的里程计(odom)信息是准确的,可以准确定位机器人的位置并运行到目标位置。这说明问题不是出在电机信息或者陀螺仪信息。---位置信息是否准确
2.怀疑是扫描数据源问题,导航过程中,使用rviz查看scan信息,发现是准备的,并且机器人在转圈过程是可以实时检测到障碍并加以避开。这说明不是扫描源问题。---扫描信息是否准确
3.怀疑是算法问题,有没有可能是recovery也跑起来了,结果查看navigation的打印信息,发现和正常运行并无异常。---查看打印信息,看是否有异常
4.怀疑是plan path的问题,在rviz中,将其余的不重要的信息都勾去,只留global path, local path,map,发现global path没有问题, local path在机器人正面朝向目标时才有,并且也基本让机器人往global path上靠。当侧对时,概率出现让机器人转圈转向的local path,不过几率很小。背对目标位置时,没有local path。 ---local path出问题概率很小
5.查看最终下发给机器人的控制速度命令,rostopic echo /cmd_vel_mux/input/navi,发现在最后角度偏转时的转向值一直是负的,没有变成正的,导致机器人在往一个方向

在机器人导航演示中,遇到机器人在前往目标位置时转圈前进的现象。通过排查里程计、扫描信息、打印信息、路径规划等,发现是局部路径(local path)问题,特别是在机器人侧对目标时。进一步分析发现,角度减速度设置不当导致机器人转向缓慢,调整减速因子(decel_factor)后,问题得到解决。
最低0.47元/天 解锁文章
3203





