将外部 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 数据并生成谷歌地图或谷歌地球文件。

  • 单击 Start_GPS_icon.JPG 图标开始从 GPS 装置接收位置数据。当与捕获流文件一起使用时,GPS 数据与流文件一起保存。此控件在记录的流模式下不可用。再次单击以停止 GPS 记录。
  • 单击 GMap_icon.JPG 图标,根据之前使用流文件记录的 GPS 数据创建谷歌地图文件。您也可以选择加载文件。需要互联网连接才能查看文件。谷歌地图以 .html 文件形式存储在 Ladybug 安装目录的 bin 文件夹中。此控件在图像捕获模式下不可用。
  • 单击 GEarth_icon.JPG 图标,根据使用流文件记录的 GPS 数据创建谷歌地球文件。您也可以选择加载文件。需要谷歌地球应用程序和互联网连接才能查看文件。谷歌地球文件以 .kml 文件形式存储在 Ladybug 安装目录的 bin 文件夹中。此控件在图像捕获模式下不可用。

您可以下载包含所记录流文件每一帧的 GPS 数据的数据文件。从 GPS 菜单项中,选择生成 GPS/帧信息。生成文件后,会弹出一个对话框,告知您文件的位置。

将 GPS 与 Ladybug API 配合使用

有关代码示例,请参阅 ladybugSimpleGPS 示例。可从以下网址访问示例:
“开始”菜单 -> Point Grey Ladybug SDK-> 示例

检测 GPS COM 端口

使用 GPS 功能需要使用 GPS 设备。必须知道 GPS 设备所连接的 COM 端口。要确定端口,请执行以下步骤:

  1. 右键单击“我的电脑”。
  2. 单击“硬件”选项卡,然后单击“设备管理器”按钮。
  3. 展开“端口(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 数据。