本系列文章由@邻居张师傅 出品,转载请注明出处。
文章链接: https://editor.csdn.net/md?not_checkout=1&articleId=109842026
邮箱:zhangyh.nb@qq.com
overview
gnss_localizer将NMEA消息从GNSS接收器转换到(x,y,z,侧倾,俯仰,偏航)位置。
NMEA消息
GPS 的一种消息格式
.bag包中包含NMEA消息,消息类型为nmea_msgs/Sentence:
nmea_msgs/Sentence
std_msgs/Header header
string sentence # NMEA0183格式的ASCII字符串
查看 nmea_sentence 话题发布的 nmea_msgs/Sentence 消息:
$ rostopic echo /nmea_sentence
---
header:
seq: 160226
stamp:
secs: 1427157854
nsecs: 546808958
frame_id: "/gps"
sentence: "$GNRMC,004359.40,A,3514.1250755,N,13700.0880895,E,15.8924,222.208,240315,7.321,E,D*2F"
---
header:
seq: 160227
stamp:
secs: 1427157854
nsecs: 563855886
frame_id: "/gps"
sentence: "$GPGGA,004359.40,3514.1250755,N,13700.0880895,E,5,10,0.96,42.3297,M,38.4418,M,1.4,0556*4C"
---
header:
seq: 160228
stamp:
secs: 1427157854
nsecs: 573806047
frame_id: "/gps"
sentence: "$GNVTG,222.208,T,229.529,M,15.8924,N,29.4326,K,D*3C"
---
header:
seq: 160229
stamp:
secs: 1427157854
nsecs: 583868980
frame_id: "/gps"
sentence: "QQ02C,INSATT,V,004359.40,8.091,10.146,233.312,@F1"
---
header:
seq: 160230
stamp:
secs: 1427157854
nsecs: 596791982
frame_id: "/gps"
sentence: "WW03C,INSDAT,004359.40,1.555,-2.312,-9.001,0.671,0.114,-1.266,@37"
---
nmea2tfpose 节点
接受nmead话题的消息,转换后发送给tf库PoseStamped消息,实现 map 坐标系 到 gps 坐标系的转换
该节点发布的消息如下:
header:
seq: 181
stamp:
secs: 1427157662
nsecs: 371006965
frame_id: "map"
pose:
position:
x: -7606963.92947
y: 35556078.0335
z: 47.7636
orientation:
x: 0.000958006771906
y: -0.113925190181
z: -0.430242612233
w: 0.895495074182
---
.lanunch文件:
<node pkg="gnss_localizer" type="nmea2tfpose" name="nmea2tfpose" output="log">
<param name="plane" value="$(arg plane)"/>
调用:
$ roslaunch gnss_localizer nmea2tfpose.launch plane:=7
roslaunch gnss_localizer nmea2tfpose.launch plane:=7
关键源码
初始化:
回调函数