总览
该软件包为输出兼容NMEA语句的GPS设备提供了ROS接口。有关原始格式的详细信息,请参见NMEA句子的GPSD文档。在成千上万的NMEA兼容GPS设备中,我们正在汇编已知支持的设备列表。
这个包是与兼容geographic_info项目以及任何其他节点的支持sensor_msgs / NavSatFix和/或sensor_msgs / TimeReference。
没有提供C ++或Python API,仅提供了ROS API。
该软件包替代了Fuerte和Groovy中存在的nmea_gps_driver软件包。
样品用量
为了快速启动并运行,您可以使用以下命令开始将GPS数据输出到ROS主题上。假设您的GPS正在输出GGA NMEA语句,已连接到/ dev / ttyUSB0并以38400波特进行通讯。
$ rosrun nmea_navsat_driver nmea_serial_driver _port:= / dev / ttyUSB0 _baud:= 38400
路线图
- 添加对GSA,RMC和GGA之外的其他NMEA语句的支持。支持单个句子的特定请求应作为增强票据提交。
- 添加句子同步。当前,几乎没有缓冲或没有缓冲,这阻止了驱动程序使用多种类型的句子来生成一个主题输出周期。
节点数
nmea_topic_driver
NMEA GPS主题驱动程序节点。从ROS主题读取NMEA语句,而不是直接从串行端口读取。
订阅的主题
nmea_sentence(nmea_msgs / Sentence)
- NMEA句子,每条消息1条。header.stamp应该与从设备读取消息的时间相对应,以实现准确的time_reference输出。在输出消息上设置frame_id时,将使用与此主题有关的消息上的header.frame_id。在到达驾驶员之前,不必对这些句子进行校验和或以其他方式进行验证。
发表的话题
修复(sensor_msgs / NavSatFix)
- 设备报告的GPS定位信息。即使设备没有有效的修补程序,它也会以可用的任何位置和状态数据发布。无效的字段可能包含NaN。
vel(geometry_msgs / TwistStamped)
- 从GPS设备输出的速度。仅在设备输出有效的速度信息时发布。驾驶员不会仅基于定位来计算速度。
time_reference(sensor_msgs / TimeReference)
参量
〜time_ref_source(字符串,默认值:< 〜frame_id的值>)
- sensor_msgs / TimeReference中用作源的值。
〜useRMC(bool,默认:False)
- 从GGA语句还是RMC语句生成位置定位。如果为True,则将从RMC生成修复程序。如果为False,则将根据GGA语句生成修复程序。当RMC提供速度信息时,使用GGA语句可以输出近似的协方差。
nmea_serial_driver
NMEA GPS串行驱动程序节点。替换nmea_gps_driver.py以减少命名冲突,并使用新的通用解析+驱动程序后端。
发表的话题
修复(sensor_msgs / NavSatFix)
- 设备报告的GPS定位信息。即使设备没有有效的修补程序,它也会以可用的任何位置和状态数据发布。无效的字段可能包含NaN。
vel(geometry_msgs / TwistStamped)
- 从GPS设备输出的速度。仅在设备输出有效的速度信息时发布。驾驶员不会仅基于定位来计算速度。
time_reference(sensor_msgs / TimeReference)
参量
〜端口(字符串,默认是:/ dev / ttyUSB0)
〜baud(int,默认值:4800)
〜frame_id(string,默认值:gps)
- sensor_msgs / NavSatFix和geometry_msgs / TwistStamped输出消息的标头的frame_id。如果定义,将使用tf_prefix解决。
〜time_ref_source(字符串,默认值:< 〜frame_id的值>)
- sensor_msgs / TimeReference中用作源的值。
〜useRMC(bool,默认:False)
- 从GGA语句还是RMC语句生成位置定位。如果为True,则将从RMC生成修复程序。如果为False,则将根据GGA语句生成修复程序。当RMC提供速度信息时,使用GGA语句可以输出近似的协方差。
nmea_topic_serial_reader
从指定的串行端口读取NMEA语句,并将其发布到ROS主题。这是与nmea_topic_driver.py一起使用的简单前端
发表的话题
nmea_sentence(nmea_msgs / Sentence)
参量
〜端口(字符串,默认是:/ dev / ttyUSB0)
〜baud(int,默认值:4800)
〜frame_id(string,默认值:gps)
- nmea_msgs / Sentence的标头和输出消息的frame_id。如果定义,将使用tf_prefix解决。
故障排除
如果您是初次使用此软件包并遇到问题,则应首先检查该软件包是否正确安装在正确的位置。然后,查询ROS /疑难解答,常见问题解答和http://answers.ros.org/questions/以查看是否已经为您的问题确定了解决方案。
如果您在使用nmea_serial_driver并连接到串行端口时遇到问题,请通过检查用户是否属于“ dialout”组来确保该用户有权访问该端口。有关更多信息,请参见此处。
报告错误
使用GitHub 报告错误或提交功能请求。[ 查看活动中的问题 ]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)