2023-11-30 17:02:29 +08:00
|
|
|
|
# 机器人开发规划和进度跟踪
|
2023-11-30 16:44:05 +08:00
|
|
|
|
|
|
|
|
|
> 2023-11-30 机器人开发状态更新
|
2023-11-30 17:02:29 +08:00
|
|
|
|
>
|
|
|
|
|
> SLAM仓库:http://logzhan.ticp.io:30000/logzhan/ORB-SLAM3-UESTC
|
|
|
|
|
>
|
|
|
|
|
> 定位参考系统仓库:http://logzhan.ticp.io:30000/logzhan/LightHouse-UESTC
|
|
|
|
|
>
|
|
|
|
|
> 路径规划仓库:http://logzhan.ticp.io:30000/logzhan/PathPlanning-UESTC
|
|
|
|
|
>
|
|
|
|
|
> 机器人硬件设计仓库:http://logzhan.ticp.io:30000/logzhan/RobotDriver-UESTC
|
|
|
|
|
>
|
|
|
|
|
> 机器人控制APP仓库:http://logzhan.ticp.io:30000/logzhan/RobotApp-UESTC
|
2023-12-01 18:37:31 +08:00
|
|
|
|
>
|
|
|
|
|
> 割草机器人硬件厂商:https://cn.sunseekerpower.com/index.php?m=home&c=Lists&a=index&tid=81
|
2023-11-30 17:02:29 +08:00
|
|
|
|
|
|
|
|
|
## 一、 项目状态
|
|
|
|
|
|
2024-04-01 17:02:58 +08:00
|
|
|
|
### 1.1 进度记录
|
|
|
|
|
|
|
|
|
|
2024-04-01:
|
|
|
|
|
|
|
|
|
|
| 项目 | 说明 | 解决方案 |
|
|
|
|
|
| -------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
|
|
|
|
|
| 当前状态 | 目前融合定位和摄像头检测避障程序都有初步DEMO,联合运行存在问题 | |
|
|
|
|
|
| 摄像头避障问题 | 目前摄像头避障存在不及时的问题,已经检测到目标障碍物了,但是会撞到障碍物。原因:全覆盖地图和摄像头避障回调是两个单独的线程。当摄像头检测到避障后,回调函数设置障碍标志位。但是此时全覆盖的策略亦然在线程里面运行,还没有进入避障逻辑,已经撞到障碍物了。 | 需要额外增加合适的标志位打断原先的全覆盖逻辑,进入避障的逻辑 |
|
|
|
|
|
| | | |
|
|
|
|
|
|
|
|
|
|
|
2024-01-23 18:22:27 +08:00
|
|
|
|
|
|
|
|
|
##### 1.1.1 目标
|
|
|
|
|
|
|
|
|
|
2月初实现银星车的控制和避障
|
|
|
|
|
|
|
|
|
|
##### 1.1.2 场景
|
|
|
|
|
|
|
|
|
|
1. 基于避障的全覆盖:检测3种障碍物、3个不同的位置,在避障的前提全覆盖。
|
|
|
|
|
2. 超声波障碍物检测:通过超声波传感器结合图像,进行障碍物距离的测定。
|
|
|
|
|
3. 碰撞绕开: 1.1和1.2失效的情况下,机器人碰撞到物体,进行策略绕靠。
|
|
|
|
|
4. UWB定位部分和现有框架整合。
|
|
|
|
|
5. UWB多种轨迹绘制和log设计:初始对准log、多种轨迹记录
|
|
|
|
|
|
|
|
|
|
##### 1.1.3 演示视频和图片内容
|
|
|
|
|
|
|
|
|
|
1. 小车全图路径规划 + 规避障碍物 * 3
|
|
|
|
|
2. 如果超声波传感器、碰撞检测传感器支持:则加入 未知障碍物突然阻碍(距离`10~30cm`)->小车避障、 行人突然挡住机器人侧面导致碰撞触发,触发机器人后退+避障
|
|
|
|
|
3. 记录小车的`UWB`轨迹、真值轨迹、里程计轨迹、融合轨迹, 轨迹能体现出机器人遇到障碍物避障
|
|
|
|
|
|
|
|
|
|
##### 1.1.4 其他工作:
|
|
|
|
|
|
|
|
|
|
- 林跃杭: & 和颜:1) 银星车子前面超声波和摄像头模组安装的结构设计:银星的车子头部需要安装超声波和摄像头,同时需要塑料结构对传感器进行保护,防止小车在碰撞的时候导致传感器损坏。
|
|
|
|
|
- 马涛峰: 超声波传感器的调试与代码,建议采用IIC协议与IMU共同连接,然后读超声波传感器的寄存器地址。
|
|
|
|
|
- 瑞瑞:整理转发目标检测的ROS节点的大致文档说明。整理推送代码到git
|
|
|
|
|
- 研一其他人:UPbot的APP启动界面的设计,以及串口和Pibot通信。
|
|
|
|
|
- 林跃航:整理碰撞转弯策略的代码和文档介绍
|
|
|
|
|
|
2024-01-02 17:55:01 +08:00
|
|
|
|
### 1.1 进度说明(2024-01-02)
|
|
|
|
|
|
|
|
|
|
<img src="./Image/Map-24-01-02.png" style="zoom:80%;" />
|
|
|
|
|
|
|
|
|
|
1. 林跃杭
|
|
|
|
|
1. `RK3588`上成功运行`NPU`加速的DEMO
|
|
|
|
|
2. 输出`RK3588`上普通模型转`rknn`模型文档(刘洪堃)
|
|
|
|
|
3. `DOING`: 把双目测距功能移植到`RK3588`
|
|
|
|
|
1. 问题分析:`VideoCapture`这个类始终无法链接。怀疑是链接的官方DEMO中库存在问题
|
|
|
|
|
2. 解决方案:参考`ORB-SLAM3`的链接样例,参考`cmake`实现最简单的读取视频`demo`然后再进行整合
|
|
|
|
|
2. 李瑞瑞
|
|
|
|
|
1. `RK3568`上双目测距DEMO运行
|
|
|
|
|
2. 熟悉双目摄像头标定流程
|
|
|
|
|
3. `DOING`: 解决现在双目摄像头标定精度不高的问题
|
|
|
|
|
1. 原因分析:怀疑因为虚拟机上读取视频太慢,图片存在畸形,影响标定的精度。正常误差`0.1mm`,我们`0.9mm`
|
|
|
|
|
2. 解决方案:在`windows`上用python读取视频进行标定
|
|
|
|
|
3. 马涛锋
|
|
|
|
|
1. 小车嵌入式文档整理
|
|
|
|
|
|
2023-12-15 13:06:17 +08:00
|
|
|
|
#### 1.1 进度说明(2023-12-15)
|
|
|
|
|
|
|
|
|
|
##### 1.1.1 小车融合定位的说明:
|
|
|
|
|
|
|
|
|
|
下图描述了小车采用`UWB`和`IMU`以及`ODM`的曲线对比。其中蓝色线表示`Lighthouse`的轨迹,红色线表示里程计的轨迹。黄色点表示的是`UWB`的轨迹点,紫色线表示多传感器融合后的结果。
|
|
|
|
|
|
|
|
|
|
<img src="http://logzhan.ticp.io:30000/logzhan/PictureHost/raw/branch/main/LocationFusion-UESTC/UWBInsOdomFusion/UWBInsODOM_Compare_231215.png" style="zoom: 67%;" />
|
|
|
|
|
|
|
|
|
|
近期的实验以及上图说明:
|
|
|
|
|
|
|
|
|
|
1. `Lighthouse`定位精度较高,各种现象符合预期。
|
|
|
|
|
2. 里程计在运行的早期精度很高,早期阶段远比`UWB`精度高。
|
|
|
|
|
3. 虽然现阶段数据看起来融合后的结果比单纯里程计差,实际上是因为里程计的运行时间较短位置还没有发散,所以融合后的结果看起来比单纯里程计差。如果长时间运行,融合的优势才会逐步体现。
|
|
|
|
|
4. 目前融合结果很大意义在于:目前我们的割草机器人初步拥有了一套完整的定位系统。相比单纯`UWB`定位和单纯里程计定位,融合后的结果结合了里程计的轨迹波动小的优点以及`UWB`长期运行不发散的问题。虽然对于部分同学毕业设计存在些许问题,但是对于**割草机器人项目推进来说,定位已经不是阻碍,可以继续推进后续的目标检测、目标测距、导航避障、基于避障的全图路径规划**。
|
|
|
|
|
|
|
|
|
|
##### 1.1.2 下一阶段要解决的问题
|
|
|
|
|
|
|
|
|
|
最近和许洪裱和卢瑞飞一同联调定位算法,发现项目有以下问题需要改进:
|
|
|
|
|
|
|
|
|
|
1. 文档支持: 目前研二同学较多使用的是`notion`记录笔记,这个用于个人和团队使用没有问题。但是对应的,我们需要在代码仓库中维护一套`markdown`的文档。目前我已经在仓库中写了很多文档样例,后续研二开发同学`clone`仓库,完善文档和提交。
|
|
|
|
|
|
|
|
|
|
1. 目前小车融合定位的节点如何启动的文档已经写了,但是全图路径规划的操作文档没有写。整个小车融合定位启动和路径规划的文档需要再梳理完善下(瑞飞较为熟悉操作步骤,跃杭协同瑞飞一起完善下)。
|
|
|
|
|
|
|
|
|
|
2. 小车的直线偏移问题:这个问题还是影响比较大的,直接会影响路径规划的准确性。怀疑小车的`PID`调节模块没有起到作用。解决思路:给定小车前进的命令,记录小车的左右轮速,如果上报的左右轮速不同说明小车底盘的`PID`调节没有生效,需要看看编译选项问题或者代码逻辑问题。(涛锋)
|
|
|
|
|
|
|
|
|
|
3. `ros_merge_test`代码问题:
|
|
|
|
|
|
|
|
|
|
1. `uwb_slam::System`功能无效,内部有死循环会占用`CPU`,需要删除模块
|
|
|
|
|
2. `read_sensor_data.cpp和.h` 功能无效,需要删除
|
|
|
|
|
3. `avoid.h`无效需要删除
|
|
|
|
|
4. 标准的注释格式需要完善, 无效代码需要整理,` ../RobotKernal-UESTC/src/branch/main/Code/RK3588/Robot_ROS_APP/src/ros_merge_test/src/main.cpp` 样例如下:
|
|
|
|
|
|
|
|
|
|
```c++
|
|
|
|
|
/******************** (C) COPYRIGHT 2023 UPBot **********************************
|
|
|
|
|
* File Name : main.cpp
|
|
|
|
|
* Current Version : V1.0
|
|
|
|
|
* Date of Issued : 2023.12.13 zhanli@review
|
|
|
|
|
* Comments : UPbot割草机器人项目传感器融合定位入口函数
|
|
|
|
|
********************************************************************************/
|
|
|
|
|
#include "../include/system.h"
|
|
|
|
|
#include "../include/uwb.h"
|
|
|
|
|
#include <iostream>
|
|
|
|
|
#include <ros/ros.h>
|
|
|
|
|
#include <thread>
|
|
|
|
|
#include "senddata.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**---------------------------------------------------------------------
|
|
|
|
|
* Function : main
|
|
|
|
|
* Description : 多传感器融合定位的入口函数
|
|
|
|
|
* Date : 2023/12/13 zhanli@review
|
|
|
|
|
*---------------------------------------------------------------------**/
|
|
|
|
|
int main(int argc, char** argv)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
4. 路径规划问题:
|
|
|
|
|
|
|
|
|
|
目前路径规划是依靠`ROS`运行的,但是存在如下的疑问:
|
|
|
|
|
|
|
|
|
|
4.1.`ros`内置的全图规划原理是什么?需要给出文档
|
|
|
|
|
|
|
|
|
|
4.2.`ros`内置的路径规划代码,能否抽离出来?或者自己掌握路径规划包的编写自己的路径规划包?
|
|
|
|
|
|
|
|
|
|
4.3.思考后续如何和目标检测的结果进行协同,观测到障碍物重新避障,给出思路文档
|
|
|
|
|
|
|
|
|
|
#### 1.1 进度说明(2023-12-01)
|
2023-11-30 17:02:29 +08:00
|
|
|
|
|
2023-12-01 18:37:31 +08:00
|
|
|
|
| 项目 | 状态和说明 | 负责人 | 状态 | 更新时间 |
|
|
|
|
|
| ------------------------------------------------- | ------------------------------------------------------------ | ------ | ------ | ---------- |
|
|
|
|
|
| ORB-SLAM3采用实时图像和IMU测试 | 目前购买的IMU数据存在问题,IMU的Y轴数据存在异常。Linux下IMU的串口驱动程序不够完善。ORB-SLAM3没有实时接入摄像头和IMU的样例,需要修改适配。 | 李瑞瑞 | 进行中 | 2023-11-30 |
|
|
|
|
|
| ORB-SLAM3在RK3588上运行 | 需要观测ORB-SLAM3(纯摄像头、摄像头+IMU)对RK3588的CPU的占用情况,记录文档。 | — | | |
|
|
|
|
|
| 定位参考系统 | 采用HTC vive VR的激光定位系统用于评估机器人定位算法误差,文档和资料[仓库路径](http://logzhan.ticp.io:30000/logzhan/LightHouse-UESTC) | 詹力 | 完成 | 2023-12-01 |
|
|
|
|
|
| 多平台可视化GUI系统(IOS、android、windows、linux) | 有GUI界面显示机器人的位置信息、检测边界信息、规划路径信息、电量信息、地图信息等。可以对机器人进行执行和控制。跨平台开发建议选择flutter. | — | | |
|
|
|
|
|
| 机器人硬件和结构搭建 | 已购买割草机器人,包含充电底座和机器人主体,12月2日发货,地址高研院10楼。 | 詹力 | 完成 | |
|
2023-11-30 17:02:29 +08:00
|
|
|
|
|
2023-12-01 12:51:48 +08:00
|
|
|
|
## 1.2 项目里程碑
|
2023-11-30 17:02:29 +08:00
|
|
|
|
|
|
|
|
|
<img src="./Image/Status_1130.png" style="zoom:80%;" />
|
2023-11-30 16:44:05 +08:00
|
|
|
|
|
2023-12-01 12:51:48 +08:00
|
|
|
|
## 二、项目开发规划
|
|
|
|
|
|
|
|
|
|
![image-20231201124843447](./Image/Rebot-Develop-Graph.png)
|
2023-12-01 18:37:31 +08:00
|
|
|
|
|
|
|
|
|
## 三、机器人硬件搭建
|
|
|
|
|
|
|
|
|
|
### 3.1 机器人硬件
|
|
|
|
|
|
|
|
|
|
机器人的基础硬件采用[Sunseeker](https://cn.sunseekerpower.com/index.php?m=home&c=View&a=index&aid=186)的智能机器人。支持自动寻址充电和蓝牙&WIFI控制。目前已经找到公司的官网,卖家说可以通过app控制机器人操作,暂时还未联系厂商要求提供app。
|
|
|
|
|
|
|
|
|
|
### 3.1.1 外观和功能
|
|
|
|
|
|
|
|
|
|
<center>
|
|
|
|
|
<img src="./Image/机器人正面.png" alt="image-20231201181931675" style="zoom:80%;" >
|
|
|
|
|
</center>
|
|
|
|
|
|
|
|
|
|
<center>机器人正面和背面图</center>
|
|
|
|
|
|
|
|
|
|
![image-20231201182548239](./Image/机器人充电界面和充电底座.png)
|
2023-12-15 13:06:17 +08:00
|
|
|
|
|
2023-12-01 18:37:31 +08:00
|
|
|
|
<center>机器人充电界面和充电底座</center>
|