ros小车实际项目填坑日记

1、里程计速度存在问题,导致小车gmapping建图不连续或原地不走

思路:rostopic echo /odom 查看里程计数据,确定数据是否存在问题。在确定的确是里程计数据问题后,跟踪里程计数据,找到控制系统(一般为单片机),分析数据,确认逻辑关系找出根因

实际项目根因:小车跟换了大尺寸的轮子,stm32系统没有及时跟新相应参数(轮径,轮距);轮子的转动方向和代码的逻辑关系搞反了,导致计算出来的里程计数据只有z轴直行行驶时有连续线性变化,x轴转弯时轻度变化

解决:修改stm32上的轮子参数;轮子转向数据修改(正负修改)

2、雷达扫描出的环境和建图的环境相反

思路:有可能和雷达安装的方向有关

实际项目根因:雷达上下安反了

解决:软件层面解决,找到laser →base_footprint的tf坐标转换关系,使它围绕x轴旋转180°

3、小车实际导航过程中,local代价地图中右侧一直有障碍物显示,但实际环境中并不存在

思路:打开rviz的激光雷达扫描显示,订阅激光雷达话题;发现雷达数据也扫描到右侧有东西。所以就考虑有没有可能是雷达扫描到自身了,感觉应该就是雷达180°扫描角0°和180°可能扫描到自身了

解决:软件层面解决,找到对应雷达参数调制launch文件,裁剪雷达扫描范围

4、导航过程目标点过程中,小车不停打转,目标点偏向越来越远

思路:算法是成熟算法,偏差没那么大,所以暂时排除是算法因素;确定下发的行驶命令小车是否正确执行。ros系统上命令发布cmdvel命令(rostopic pub -r 10 /cmdvel geometry_msgs/Twist '{linear:{x: 0.0,y: 0.0,z: 0.0},angular:{x: 0,y: 0,z: 0.2}}'),单个确认前进后退转弯是否正常。最后发现小车转向时下发的命令和实际执行相反,z轴命令执行情况有问题。

解决:修改stm32的实际执行逻辑代码比较麻烦。直接修改ros发布的cmd_vel的z轴数据(置反)

5、全路径覆盖算法有时会把目标点规划到代价地图的障碍物中,导致movebase无法导航

思路:一开始以为全路径覆盖算法是以原始map地图进行规划的,后面经别人提醒,是否有导入代价地图的参数,才猛然反应过来,没有把代价地图的配置同步到算法,导致算法规划的和实际的有偏差

解决:同步costmap配置到全路径覆盖算法的配置文件中

6、TEB局部规划会出现打转现象

思路:上网搜索资料,TEB算法会在路径规划过程中不断对朝向进行调整,以达到到达目标点时,朝向就已经是目标朝向了。

解决:更改算法和调参。算法规划的目标点距离尽可能长一点。参数主要为两个,一个是weight_kinematics_forward_drive,尽可能增大这个权重,防止倒车;第二个是global_plan_overwrite_orientation改为True,让小车行驶过程中的朝向尽可能的贴合全局路线方向

7、小车move_base常出现局部规划器无法规划出路线情况

思路:调参

解决:稍微增大dt_ref

其它:

小车的ros系统一定要远程链接,直接电脑上远程接收小车的rostopic数据,电脑上进行建图和导航

调参使用rosrun rqtreconfigure rqtreconfigure直接ui界面实时调参

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值