将外部 GPS 设备与 Ladybug 相机结合使用

支持的产品
Ladybug5+
Ladybug6
概述
Ladybug 库均可与 GPS 设备连接,并可将 NMEA 语句数据插入 Ladybug 图像之中。随后可将该数据提取出来,用以生成 HTML 数据,该 HTML 数据可显示为谷歌地图或 KML 数据,而该 KML 数据则可载入谷歌地球。
注意:Ladybug 相机具有每秒脉冲数 (PPS) 功能,允许您将图像时间戳与 GPS 时间同步。有关使用 PPS 与 GPS 时间同步的信息,请参阅使用 PPS 与外部 GPS 同步。
处理 GPS 数据
您可以将 GPS 接收器与 Ladybug 相机结合使用,以记录带有流文件的 GPS 数据,生成谷歌地图或谷歌地球文件,并下载 GPS 数据文件。
当 GPS 位置在指定距离后发生变化时,您可以将图像记录到流文件。此功能可使用 Ladybug API。有关详细信息,请参阅 ladybugSimpleRecording 示例。
将 GPS 接收器与 Ladybug 一起使用时,请记住以下几点:
- 您的 GPS 接收器应具有串行或 USB 接口,用于连接笔记本电脑,并能够实时传输 NMEA 0183 数据。
- 为了提供可靠的数据,您的 GPS 设备应显示与至少 3 颗卫星的连接。
- 从首次将 GPS 设备连接到 PC 到它被识别和配置为与 LadybugCapPro 配合使用,可能需要一段时间。
- 支持以下 GPS NMEA 数据结构:GPGGA、GPGSA、GPGSV、GPRMC、GPZDA、GPVTG 和 GPGLL。
将 GPS 与 LadybugCapPro 配合使用
配置 GPS 接收器
在捕获 GPS 数据之前,使用主工具栏上的 LadybugCapPro 选项按钮指定与 GPS 接收器通信的一些基本设置。
控制 | 说明 |
端口号 | GPS 接收器所连接的端口。要确定端口,请展开 Windows 设备管理器中的端口节点。LadybugCapPro 在启动时不会自动检测此设置 |
波特率 | GPS 接收器与 PC 通信的信令事件速率。此速率受 GPS 装置支持的限制。NMEA 0183 标准支持的默认值为 4800。 |
数据更新间隔 | 位置数据从 GPS 更新到 PC 的时间间隔。此速率可设置为 GPS 装置支持的最大速率。默认值为 1000 ms。 |
启动 LadybugCapPro 时启动 GPS | 选中后,指定 GPS 装置应在 LadybugCapPro 应用程序在实时摄像机模式下启动时,立即使用现有设置传输位置数据。 |
谷歌地图高度/谷歌地图宽度 | 指定生成的谷歌地图的尺寸。这些尺寸会影响地图覆盖的区域数量,而不是其分辨率。 |
记录 GPS 数据和生成地图文件
配置 GPS 接收器后,即可使用 GPS 工具栏记录 GPS 数据并生成谷歌地图或谷歌地球文件。
- 单击
图标开始从 GPS 装置接收位置数据。当与捕获流文件一起使用时,GPS 数据与流文件一起保存。此控件在记录的流模式下不可用。再次单击以停止 GPS 记录。
- 单击
图标,根据之前使用流文件记录的 GPS 数据创建谷歌地图文件。您也可以选择加载文件。需要互联网连接才能查看文件。谷歌地图以 .html 文件形式存储在 Ladybug 安装目录的 bin 文件夹中。此控件在图像捕获模式下不可用。
- 单击
图标,根据使用流文件记录的 GPS 数据创建谷歌地球文件。您也可以选择加载文件。需要谷歌地球应用程序和互联网连接才能查看文件。谷歌地球文件以 .kml 文件形式存储在 Ladybug 安装目录的 bin 文件夹中。此控件在图像捕获模式下不可用。
您可以下载包含所记录流文件每一帧的 GPS 数据的数据文件。从 GPS 菜单项中,选择生成 GPS/帧信息。生成文件后,会弹出一个对话框,告知您文件的位置。
将 GPS 与 Ladybug API 配合使用
有关代码示例,请参阅 ladybugSimpleGPS 示例。可从以下网址访问示例:
“开始”菜单 -> Point Grey Ladybug SDK-> 示例
检测 GPS COM 端口
使用 GPS 功能需要使用 GPS 设备。必须知道 GPS 设备所连接的 COM 端口。要确定端口,请执行以下步骤:
- 右键单击“我的电脑”。
- 单击“硬件”选项卡,然后单击“设备管理器”按钮。
- 展开“端口(COM 和 LPT)”节点,并记下 GPS 设备映射到的 COM 端口。
记录 GPS 数据和生成地图文件
以下步骤简要概述了如何使用 Ladybug 库的 GPS 功能:
1. 通过调用 ladybugCreateGPSContext() 创建 GPS 上下文 (LadybugGPSContext)。这可以在创建 Ladybug 相机上下文的同时完成。
2. 通过调用 ladybugRegisterGPS() 将 GPS 上下文注册到 Ladybug 相机上下文中。单个 GPS 上下文可以注册到多个 Ladybug 相机上下文中。
3. 通过调用 ladybugInitializeGPS() 来初始化设备。
4. 通过调用 ladybugStartGPS() 启动 GPS 设备。当调用 ladybugStart() 时,可能会调用此函数。大约需要 5 秒,GPS 数据方可用。
5. 一旦图像采集激活,就有会几个图像采集选项。选项包括:
从 GPS 设备或 LadybugImage 获取 NMEA 数据
函数 ladybugGetGPSNMEAData 或 ladybugGetGPSNMEADataFromImage 可用于从 GPS 设备或 LadybugImage 获取单个 NMEA 语句。如果只需要一小部分值(例如,只需要纬度和经度),通常就足够了。
如果需要所有语句,调用 ladybugGetAllGPSNMEAData 或 ladybugGetAllGPSNMEADataFromImage 将使用所有支持的 NMEA 语句(如果可用)填充 LadybugNMEAGPSData 结构。
每个 NMEA 结构都有一个名为 bValidData 的布尔值。仅当该结构中包含的数据有效时,此值才为真。
从 LadybugImageInfo 结构获取 GPS 数据
在 JPEG 模式下采集图像时,每个 LadybugImage 中都有填充的 LadybugImageInfo 结构。当 GPS 功能激活时,将填充以下值:
- dGPSAltitude
- dGPSAltitude
- dGPSLongitude
如果这些值中的任何一个值等于 LADYBUG_INVALID_GPS_DATA,则应将其视为无效。
6. 图像采集完成后,调用 ladybugStopGPS() 以停止从 GPS 设备获取数据。
7. 调用 ladybugUnregisterGPS() 以取消注册 GPS 上下文。
8. 通过调用 ladybugDestroyGPSContext() 来破坏上下文。
9. 如果已初始化流上下文进行读取,则使用相关的 LadybugGPSFileType 调用 ladybugWriteGPSSummaryDataToFile 会生成整个流文件的 GPS 数据。