landmark的使用 (二) AprilTag做landmark放入Cartographer

我目前的机器人发布tag_detections话题的频率只有0.6Hz,只能换另一台高配置的机器人,频率15Hz。如果机器人走得慢,不必很高。

landmark的观测是 tracking frame,一般是imu或者base_footprint。这个在SensorBridge::HandleLandmarkMessage里已经处理了。

如果关闭后端,landmark机制就无法触发了。


我直接修改apriltag_roscontinuous_detector.cpp中的imageCallback,如果再写一个程序订阅再发布新话题,会增加网络损耗。相机检测到二维码时, 最好有一定的位移或旋转, 这样才能触发landmark机制,rviz里会用MarkerArray标出landmark的位置

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
markers: 
-
header:
seq: 0
stamp:
secs: 1611712040
nsecs: 13247643
frame_id: "map"
ns: "Landmarks"
id: 0
type: 2
action: 0
pose:
position:
x: 0.0142477289141
y: 0.140619658508
z: 0.337341305453
orientation:
x: 0.987908805705
y: 0.0191071294953
z: 0.015915594168
w: -0.153028765515
scale:
x: 0.2
y: 0.2
z: 0.2
color:
r: 0.207129895687
g: 0.115499980748
b: 0.769999980927
a: 1.0
lifetime:
secs: 0
nsecs: 0
frame_locked: False
points: []
colors: []
text: ''
mesh_resource: ''
mesh_use_embedded_materials: False

参考:
知乎-带Landmark的demo运行和测试
Cartographer——带Landmark的demo的运行和测试