Robot-UESTC/开发日志.md

80 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 2024-04-28
##### 1.已有功能
- UWB融合IMU、ODOM定位。
- 双目测距、目标检测
- 全覆盖路径规划
- 碰撞传感器、超声波传感器接入:可以考虑扩展三个超声波传感器,用于提高障碍物分辨率
- 基于双目、碰撞、超声波的避障+全覆盖:目前割草机器人的避障识别能力需要进一步优化
- 手持标签划定范围:用户预先划定机器人的割草范围
- USB-HID通信利用USB-HID通信可以精确确定USB设备并开启提高设备的稳定性和扩展性。
##### 2. 需开发功能
- 草坪和非草坪识别功能:通过摄像头识别草坪与非草坪,决定是否开启割草马达
- 基于语义分割的环境建图 :根据语义分割功能,创建语义地图,识别草坪的实际边界和障碍物,建立语义地图
- UWB融合定位自动对准自动对齐IMU和UWB的坐标系
- UWB杆位置初始化机器人运动一段时间后估计出UWB标杆的位置省去手动输入坐标位置的问题
- APP控制机器人操作省去命令行控制机器人
- 自动回充
##### 3.当前问题
# 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.缺少方向对准