Skip to main content

实时数据

通过 Foxglove WebSocket、Rosbridge 和 Velodyne Lidar 连接来连接实时数据源。您还可以通过 URL 加载远程数据文件。

支持的格式

支持的格式配置选项
Foxglove WebSocketWebSocket URL
RosbridgeWebSocket URL
ROS 1ROS 1(仅限桌面应用程序)ROS_MASTER_URIROS_HOSTNAME
Velodyne LidarVelodyne(仅限桌面应用程序)UDP 端口
远程文件需要 CORS 设置

限制

连接到实时机器人堆栈时,每个连接将具有不同的功能。

Foxglove WebSocket(推荐)RosbridgeROS 1
流式传输 ROS 1 数据
流式传输 ROS 2 数据
流式传输自定义数据
自定义消息架构
发布消息✓(ROS 1、ROS 2、JSON)
调用服务
调用动作
读取和设置参数参见讨论

跨域资源共享(CORS)设置

要加载远程数据文件,您必须将文件托管在支持跨域资源共享(CORS)并接受范围请求的服务器或云提供商中。

在将远程数据加载到 Foxglove 进行回放和分析时,我们建议将文件托管在 Amazon Simple Storage Service (S3)Google Cloud Storage (GCS)Azure Storage 等云提供商中。您也可以在自己的服务器上托管文件,但设置支持 跨域资源共享(CORS)范围请求 可能会很困难且耗时。

如果您的数据是敏感的,请生成并使用签名 URL – 确保您直接指向资源,因为重定向将无法与 CORS 一起使用:

此签名 URL 将在有限的时间内有效。您可以设置服务器仅为经过身份验证的用户签署 URL。

最后,设置您的 CORS 配置。请查看以下 S3 存储桶的 Terraform 配置示例(文档):

cors_rule {
allowed_methods = ["GET", "HEAD", "OPTIONS"]
allowed_origins = ["https://app.foxglove.dev"]
allowed_headers = ["*"]
expose_headers = ["ETag", "Content-Type", "Accept-Ranges", "Content-Length"]
}

以及 GCS 存储桶的 Terraform 配置(文档):

cors {
origin = ["https://app.foxglove.dev"]
method = ["GET", "HEAD", "OPTIONS"]
response_header = ["ETag", "Content-Type", "Accept-Ranges", "Content-Length"]
}

链接和资源