-
Notifications
You must be signed in to change notification settings - Fork 0
/
GUIDE.txt
166 lines (163 loc) · 9.75 KB
/
GUIDE.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
####################### 常用指令 #################################
roslaunch zed_wrapper zed.launch
roslaunch pcl cascade_detection.launch
roslaunch pcl cloud_detection_node.launch
前左上坐标系转换为右下前图像坐标系的四元数:
nedPose.pose.orientation.x = -0.5;
nedPose.pose.orientation.y = 0.5;
nedPose.pose.orientation.z = -0.5;
nedPose.pose.orientation.w = 0.5;
####################### 代码版本说明 #################################
PCL
===========================================================
2020-07027 V3.0
——在配置文件中增加一个参数imageAndCameraInfoCallback用于根据实际订阅到的图像话题类型来自动选择所需的回调函数
===========================================================
2020-07022 V3.0
——修改kalman_filter.cpp(.h)为KalmanFilter.cpp(.h)
——修改级联检测器节点,只有当成功检测出目标后才将目标rect发布出去
——修改kf滤波器代码,将观测量修改为locked_pose坐标系下目标位置;
实现在图像目标检测器或点云检测器检测目标失败的情况下的目标位置预测功能
===========================================================
2020-07021 V3.0
——修改NED的父坐标系为zed_left_camera_frame
——修复BUG:目标位置初始化BUG,当点云聚类未检测到任何目标时,也会继续后续的初始化,用空的bbx进行初始化导致后续问题。
通过将updateBBXThread()函数修改为返回值为检测到的聚类数目,并判断此聚类数目不为0时才继续后续的初始化。
——增加locked_pose坐标系,即原点为目标初始化位置,三个轴方向与点云坐标系一致(前左上)
——发布locked_pose坐标系下目标定位轨迹
——将通用函数诸如toNED()移到Utility.cpp中
===========================================================
2020-07020 V3.0
——去除了大部分不再需要的函数,例如ICP定位函数
——修改了目标初始化代码
——进一步规划了代码编写规范
===========================================================
2020-07017
——将从2D目标bbx投影到相机坐标系下的3D梯形锥体的计算及发布从CascadeDetection.cpp移到了CloudDetection.cpp
——实现了以下目标检测流程:
先在图像中检测目标2dbbx
再在2dbbx投影形成的锥体中进行点云滤波聚类
——实现了用convexhull类实现对不规则体的点云滤波(锥体滤波)
===========================================================
2020-07016
——实现了将基于图像检测到的目标2d bbx投影到相机坐标系下形成三维空间锥体,目前版本假设每一帧图像中只会有一个目标
——增加了在rviz中绘制任意条边的凸包体函数
===========================================================
2020-07015
——修改代码,让代码更加整洁规范,包括:
统一各个类的namespace,从PCL改为bluerov_detection_tracking;
修改源文件名,republish_cxx.cpp(hpp)修改为CloudDetection.cpp(hpp),utility_functions.cpp(hpp)修改为Utility.cpp(hpp)
——Utility模块增加将相机坐标系下三维空间点坐标投影到图像坐标的函数,使用ZED验证不存在投影误差,基于小孔成像模型,需知道空间点的真实深度值。
===========================================================
2020-0701
——实现了将点云坐标系下(x轴朝前)的bbx矩形框投影到ZED左相机图像坐标系下并绘制了目标ROI
===========================================================
2020-0630
——BUG:修复节点容易挂掉问题,原因是bbxupdate()函数导致:当检测聚类为0时仍然在更新bbx导致的
——功能:增加将三维点云坐标位置投影到图像坐标的源文件imgCloudRegistration.cpp,实现了3D到2D投影
===========================================================
2020-0622
——解决录包时没有录制到zed相机tf问题
——增加发布目标bbx在点云坐标系下的轨迹(包含原始轨迹和滤波后轨迹),便于录包进行数据分析
===========================================================
2020-0610
添加提取rosbag图像的launch文件,指令为:
roslaunch pcl export.launch
将提取的图片转换为mp4视频的指令为:
ffmpeg -framerate 10 -i frame%04d.jpg -c:v libx264 -profile:v high -crf 20 -pix_fmt yuv420p output3.mp4
===========================================================
2020-0428
1、launch录包节点加入/clock话题
2、优化目标几何模型滤波算法,要求:最小几何模型尺寸<目标<最大几何模型尺寸,且要求目标与几何模型的比例>设定阈值
3、优化定位结果数据log到本地文件代码,根据标志位来决定是否录制某个数据,增加将NED坐标系下定位结果写到本地log
4、增加根据bbx定位结果动态调整直通滤波器ROI(可通过配置参数选择打开或关闭此功能)
===========================================================
2020-0423-1
1、增加水下畸变矫正因子配置参数,用于矫正水下测距比实际距离短的现象
===========================================================
2020-0420
1、launch中添加rosbag record节点
2、发布ned到map的tf变换
3、发布点云定位轨迹
===========================================================
2020-0417
1、增加目标几何模型比例因子factor配置参数,并开放到配置文件中
===========================================================
2020-0413
1、将转换到NED坐标系代码封装成函数。增加KF融合结果转换为NED坐标系下
===========================================================
2020-0410
1、增加保护机制,一是点云滤波模块,在点云滤波开始之前先判断输入点云是否为0,为0则不执行滤波;
二是BUG修复,当滤波后点云数量很少时(通常是XXX?),计算BBX函数会导致节点挂掉。首先判断滤波后点云数量,当足够小时,则不继续执行后续代码。
===========================================================
2020-0409
1、修改NED坐标系原点
===========================================================
2020-0403-1
1、增加基于标定的目标参考点云的几何模型(尺寸,比例,点云数量)来过滤错误的目标检测结果,降低检测错误率
2、增加是否使用KF融合滤波选项
===========================================================
2020-0330
1、将融合定位结果从点云坐标系转换到NED坐标系,并发布话题
===========================================================
2020-0327
1、增加了PCL库自带的基于PF的tracking例程,已跑通
===========================================================
2020-0325 大改动
1、将发布多个BBX容器marker改为发布单个BBX marker
2、彻底将多目标检测改为单目标检测
3、修复BBX定位结果与BBX几何中心不一致BUG
===========================================================
2020-0323
1、增加了点云目标识别类(2种识别算法,Hough3D和Geometric consistency),已经编译通过,但还没有开始调用这些类函数
===========================================================
2020-0321
1、绘制直通滤波器ROI并发布
2、增加了radius和statistical离群点滤波
===========================================================
2020-0318
1、实现了2个线程分别跑ICP和BBX定位,降低了总运行时间
2、用户可通过标志位选择用线程并发模式还是普通串行模式来
3、将聚类多目标检测修改为单目标检测
===========================================================
2020-0316
1、增加两个线程函数进行测试,测试OK,两个线程可以同时运行。
2、不过在修改updateICP函数时出现BUG还未修复好。
===========================================================
2020-0313
1、优化点云和目标位置初始化流程及代码,以及修复了其一个BUG(位置变化量要取绝对值)
2、将BBX定位和ICP定位结果修改为在follower的点云坐标系下
===========================================================
2020-0312
1、修复BUG:当目标超出直通滤波器ROI时导致其滤波后点云为0,进而导致基于sac的移除地面滤波代码出错。
因此,增加了当输入sac点云为0时的跳出保护机制。另外,注意对于这种非正常情况程序退出情形,要将之前加锁的互斥锁解锁,
将之前分配的内存释放后才能退出!
===========================================================
2020-0311
1、参考BLAM修改与优化代码,使其更加符合C++规范
2、将点云滤波功能封装成独立的类与源文件
===========================================================
2020-0310
1、将点云处理函数从点云回调函数中拿出来,用ROS TIMER定时处理点云数据
===========================================================
2020-0305
1、优化时间,增加debug标志控制各种点云和图形ROS话题的发布
===========================================================
2020-0304
1、修改KF的Q,加入加速度噪声随时间变化
2、将KF融合结果写到TXT中
3、BBX定位结果作为ICP初始位置
===========================================================
2020-0303
1、增加将定位结果和真值写入LOG及读LOG功能,作为ROS服务调用
2、增加计算RMSE函数,,作为ROS服务调用
===========================================================
2020-0302
1、增加订阅leader和follower的odom话题
2、增加将BBX定位结果(follower点云坐标系下)变换到follower的odom坐标系下
===========================================================
2020-0228
1、将添加圆球markers代码封装为函数
===========================================================
2020-0227
1、增加KF滤波(目前跑通了,但只对BBX定位进行滤波)