57 lines
2.1 KiB
Markdown
57 lines
2.1 KiB
Markdown
|
# 2024-04-01
|
|||
|
|
|||
|
#### 1.当前状态:
|
|||
|
|
|||
|
目前融合定位和摄像头检测避障程序都有初步DEMO,联合运行存在问题。
|
|||
|
|
|||
|
#### 2.摄像头避障问题
|
|||
|
|
|||
|
目前摄像头避障存在不及时的问题,已经检测到目标障碍物了,但是会撞到障碍物。原因:全覆盖地图和摄像头避障回调是两个单独的线程。当摄像头检测到避障后,回调函数设置障碍标志位。但是此时全覆盖的策略亦然在线程里面运行,还没有进入避障逻辑,已经撞到障碍物了。
|
|||
|
|
|||
|
```C++
|
|||
|
void sendNavigation(vector<loc> pos){
|
|||
|
for(p in pos){
|
|||
|
NavigationSet(pos);
|
|||
|
sleep(0.1);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void navigateExplorationPath(){
|
|||
|
if(flag == true){
|
|||
|
// 避开障碍物策略
|
|||
|
...
|
|||
|
}
|
|||
|
// 发送导航目标
|
|||
|
sendNavigation(pos);
|
|||
|
}
|
|||
|
|
|||
|
void SteroCB(float dist){
|
|||
|
if(dist > 10 && dist < 60){
|
|||
|
flag = true;
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
解决方案:2024/04/01实验确定了是全覆盖的策略导致的避障不及时问题。 需要额外增加合适的标志位打断原先的全覆盖逻辑,进入避障的逻辑
|
|||
|
|
|||
|
#### 3.UWB草坪测试问题
|
|||
|
|
|||
|
在草坪环境里面跑UWB融合定位全覆盖,会出现异常情况。在下面箭头位置,全覆盖会失效错误。目前草坪UWB全覆盖有下面两个问题:
|
|||
|
|
|||
|
1、转弯处有额外的圈圈,怀疑是因为UWB放在车头导致转弯产生额外的偏移,引起全覆盖算法出现调整导致。
|
|||
|
|
|||
|
2、全覆盖异常问题:运行一段时间后,全覆盖出现异常导航
|
|||
|
|
|||
|
![f74ccf4edc58d341763b35346d6fc5b](./Image/2024-04-01/UWBFusion.png)
|
|||
|
|
|||
|
问题1解决方案:调整UWB基站的位置,放在两个轮子中间,重新设计银星机器人结构,减少摄像头遮挡。
|
|||
|
|
|||
|
问题 2解决方案:全覆盖的log采用文件存储方式,在关键节点记录全覆盖的log并保存,在复现bug的时候,通过log回推代码逻辑。
|
|||
|
|
|||
|
#### 4.融合定位问题
|
|||
|
|
|||
|
目前融合定位存在下面两个问题:
|
|||
|
|
|||
|
1.初始收敛慢,缺少初始阶段快速收敛
|
|||
|
|
|||
|
2.缺少方向对准
|