@@ -301,5 +301,254 @@ sidebar_position: 2
301
301
2 . 点击 【+】和 【-】可以放大和缩小画面
302
302
3 . 亦可通过键盘鼠标来放大和缩小画面
303
303
304
- ---
304
+ ## 支持的消息类型
305
+
306
+ 三维面板可以可视化各种不同类型的消息。要可视化一个话题,该话题上的消息必须符合以下列出的已知消息模式之一。
307
+
308
+ ### 相机视场
309
+
310
+ 场景相机的校准参数。
311
+
312
+ | 框架 | 模式 |
313
+ | --- | --- |
314
+ | ROS 1 | [ sensor_msgs/CameraInfo] ( https://docs.ros.org/en/noetic/api/sensor_msgs/html/msg/CameraInfo.html ) |
315
+ | ROS 2 | [ sensor_msgs/msg/CameraInfo] ( https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/CameraInfo.msg ) |
316
+ | 自定义 | [ foxglove.CameraCalibration] ( ../message-schemas/camera-calibration ) |
317
+
318
+ ### 网格
319
+
320
+ 2D 彩色网格。
321
+
322
+ | 框架 | 模式 |
323
+ | --- | --- |
324
+ | ROS 1 | [ nav_msgs/OccupancyGrid] ( https://docs.ros.org/en/noetic/api/nav_msgs/html/msg/OccupancyGrid.html ) |
325
+ | ROS 2 | [ nav_msgs/msg/OccupancyGrid] ( https://github.com/ros2/common_interfaces/blob/master/nav_msgs/msg/OccupancyGrid.msg ) |
326
+ | 自定义 | [ foxglove.Grid] ( ../message-schemas/grid ) |
327
+
328
+ #### ` foxglove.Grid ` 设置
329
+
330
+ | 字段 | 描述 |
331
+ | --- | --- |
332
+ | ** 颜色模式** | 以下之一:** Flat** :纯色** Color map** :预定义调色板** Gradient** :两个自定义颜色之间的平滑过渡** RGBA(单独字段)** :使用每个单元格的红色、绿色、蓝色和 alpha 字段中嵌入的颜色([ 见下文] ( #rgba单独字段颜色模式 ) ) |
333
+ | ** 纯色** | 仅在"颜色模式"设置为"Flat"时显示;每个单元格颜色的十六进制代码 |
334
+ | ** 按颜色** | 仅在"颜色模式"未设置为"Flat"时显示;用于着色逻辑的消息中的数字字段 |
335
+ | ** 颜色映射** | 仅在"颜色模式"设置为"Color map"时显示;"Turbo"(Google)或"Rainbow"(RViz);用于将"按颜色"字段值映射到颜色 |
336
+ | ** 不透明度** | 仅在"颜色模式"设置为"Color map"或"BGR(打包)"时显示;设置所有单元格的 alpha 值 |
337
+ | ** 最小值** | 仅在"颜色模式"未设置为"Flat"时显示;用于规范化传入网格的"按颜色"字段值的最小值 |
338
+ | ** 最大值** | 仅在"颜色模式"未设置为"Flat"时显示;用于规范化传入网格的"按颜色"字段值的最大值 |
339
+ | ** 帧锁定** | "开启"表示网格锁定到其 frame_id 指定的帧,并将随着该帧的变换变化而移动。"关闭"表示网格相对于固定帧,在首次显示后将不会移动。 |
340
+
341
+ ##### RGBA(单独字段)颜色模式
342
+
343
+ 每个单元格可以在四个单独的字段中包含颜色信息,名为 ` red ` 、` green ` 、` blue ` 和 ` alpha ` ,可以是任何数字类型:
344
+
345
+ * ** 浮点值** — 0–1 范围
346
+ * ** 无符号整数值** — 最大可能范围(例如,对于 ` UINT8 ` 字段为 0–255)
347
+ * ** 有符号整数值** — ` -max ` 到 ` max ` (例如,对于 ` INT8 ` 字段为 −127 到 127;−128 的值被视为与 −127 相同)
348
+
349
+ #### ` nav_msgs/OccupancyGrid ` 设置
350
+
351
+ | 字段 | 描述 |
352
+ | --- | --- |
353
+ | ** 颜色模式** | 以下之一:** Costmap** :预定义 RViz 调色板。无法进一步自定义设置。** Custom** :使用以下设置的自定义调色板 |
354
+ | ** 最小颜色** | 对应于最小单元格值(0)的颜色 |
355
+ | ** 最大颜色** | 对应于最大单元格值(100)的颜色。注意,值为 100 的单元格显示为完全透明。 |
356
+ | ** 未知颜色** | 对应于未知单元格值(−1)的颜色 |
357
+ | ** 回退颜色** | 对应于超出 −1 到 100 范围的单元格值的颜色 |
358
+ | ** 帧锁定** | "开启"表示网格锁定到其 frame_id 指定的帧,并将随着该帧的变换变化而移动。"关闭"表示网格相对于固定帧,在首次显示后将不会移动。 |
359
+
360
+ ### 图像
361
+
362
+ 使用相应的相机视场消息在 3D 场景中显示的图像。
363
+
364
+ | 框架 | 模式 |
365
+ | --- | --- |
366
+ | ROS 1 | [ sensor_msgs/Image] ( https://docs.ros.org/en/noetic/api/sensor_msgs/html/msg/Image.html ) |
367
+ | ROS 2 | [ sensor_msgs/msg/Image] ( https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/Image.msg ) |
368
+ | ROS 1 | [ sensor_msgs/CompressedImage] ( https://docs.ros.org/en/api/sensor_msgs/html/msg/CompressedImage.html ) |
369
+ | ROS 2 | [ sensor_msgs/msg/CompressedImage] ( https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/CompressedImage.msg ) |
370
+ | 自定义 | [ foxglove.RawImage] ( ../message-schemas/raw-image ) |
371
+ | 自定义 | [ foxglove.CompressedImage] ( ../message-schemas/compressed-image ) |
372
+
373
+ ### 激光扫描
374
+
375
+ 来自平面激光测距仪的单次扫描。
376
+
377
+ | 框架 | 模式 |
378
+ | --- | --- |
379
+ | ROS 1 | [ sensor_msgs/LaserScan] ( https://docs.ros.org/en/noetic/api/sensor_msgs/html/msg/LaserScan.html ) |
380
+ | ROS 2 | [ sensor_msgs/msg/LaserScan] ( https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/LaserScan.msg ) |
381
+ | 自定义 | [ foxglove.LaserScan] ( ../message-schemas/laser-scan ) |
382
+
383
+ ### ROS 多边形
384
+
385
+ 由一系列连接点组成的带时间戳的多边形。
386
+
387
+ | 框架 | 模式 |
388
+ | --- | --- |
389
+ | ROS 1 | [ geometry_msgs/PolygonStamped] ( https://docs.ros.org/en/noetic/api/geometry_msgs/html/msg/PolygonStamped.html ) |
390
+ | ROS 2 | [ geometry_msgs/msg/PolygonStamped] ( https://github.com/ros2/common_interfaces/blob/master/geometry_msgs/msg/PolygonStamped.msg ) |
391
+
392
+ ### ROS 标记
393
+
394
+ 类似于场景实体,这些 ` Marker ` 消息描述了基本形状或网格。
395
+
396
+ | 框架 | 模式 |
397
+ | --- | --- |
398
+ | ROS 1 | [ visualization_msgs/Marker] ( https://docs.ros.org/en/noetic/api/visualization_msgs/html/msg/Marker.html ) |
399
+ | ROS 2 | [ visualization_msgs/msg/Marker] ( https://github.com/ros2/common_interfaces/blob/master/visualization_msgs/msg/Marker.msg ) |
400
+ | ROS 1 | [ visualization_msgs/MarkerArray] ( https://docs.ros.org/en/noetic/api/visualization_msgs/html/msg/MarkerArray.html ) |
401
+ | ROS 2 | [ visualization_msgs/msg/MarkerArray] ( https://github.com/ros2/common_interfaces/blob/master/visualization_msgs/msg/MarkerArray.msg ) |
402
+
403
+ #### 网格标记
404
+
405
+ 具有 ` mesh_resource ` 字段的标记支持以下 URL 方案:
406
+
407
+ * ` http(s):// `
408
+ * ` package:// ` (仅限Studio)
409
+ * ` file:// ` (仅限Studio)
410
+
411
+ 以及文件格式:
412
+
413
+ ** glTF (.glb)**
414
+
415
+ 这是首选的格式,因为它在所有支持的文件类型中具有最佳性能。
416
+
417
+ 二进制 glTF 文件将所有必需的资源捆绑到一个文件中,支持嵌入式网格、压缩,并使用与可视化相同的基于物理的材质系统。因此,您的模型在可视化中的显示效果应该与在其他 3D 程序中的显示效果相似。
418
+
419
+ ** STL (.stl)**
420
+
421
+ 一种简单的三角网格格式,不包含材质信息。可视化将使用标记的颜色属性来渲染 STL 模型。
422
+
423
+ ** COLLADA (.dae)**
424
+
425
+ 一种基于 XML 的格式,支持材质、纹理和动画。可视化目前仅支持 COLLADA 的几何和材质部分。
426
+
427
+ ** Wavefront OBJ (.obj)**
428
+
429
+ 一种简单的文本格式,通常与 MTL 文件一起使用来定义材质。可视化将尝试加载关联的 MTL 文件,如果找不到,将使用标记的颜色属性。
430
+
431
+ ** glTF (.glb)**
432
+
433
+ 这是首选的格式,因为它在所有支持的文件类型中具有最佳性能。二进制 glTF 文件将所有必需的资源打包到一个文件中,支持嵌入网格、压缩以及可视化中使用的相同基于物理的材质系统。因此,您的模型在可视化中的显示方式应该与其他 3D 程序中的显示方式相似。
434
+
435
+ ** STL (.stl)**
436
+
437
+ STL 文件在可视化中得到良好支持,但缺少 glTF 的一些可视化功能。STL 的主要优势是能够在硬件制造过程和机器人可视化工具之间共享相同的文件。
438
+
439
+ STL 是为 3D 打印和 CAD 应用程序设计的,不包含材质或网格层次结构。虽然它们可以用二进制编码表示,但 STL 文件通常用 ASCII 字符表示,这会导致文件更大。
440
+
441
+ ** COLLADA (.dae)**
442
+
443
+ 作为 glTF 的前身,COLLADA 具有类似的功能集。尽管如此,它确实有较大的基于 XML 的文件,没有压缩,并且有额外的处理开销。
444
+
445
+ RViz 中存在一个错误,即忽略 up-axis 元数据,导致许多 .dae 文件在 ROS 环境中方向不正确。为了解决这个问题,3D 面板有一个忽略 COLLADA \< up_axis\> 设置,可以在观察 \< up-axis\> 标签或像 RViz 一样忽略它之间切换。
446
+
447
+ ** Wavefront OBJ (.obj)**
448
+
449
+ OBJ 是一种简单的 ASCII 格式,早于所有其他支持的格式。它具有大文件大小、无材质支持、无网格层次结构、无压缩和额外的处理开销。
450
+
451
+ 材质支持是作为单独的 .mtl 文件添加到 OBJ 格式中的,但可视化不读取这些文件。
452
+
453
+
454
+ ### 路径
455
+
456
+ 一个在指定坐标系中、带有时间戳的姿态数组,表示一个物体在空间中的路径。
457
+
458
+ | 框架 | 模式 |
459
+ | --- | --- |
460
+ | ROS 1 | [ nav_msgs/Path] ( https://docs.ros.org/en/noetic/api/nav_msgs/html/msg/Path.html ) |
461
+ | ROS 2 | [ nav_msgs/msg/Path] ( https://github.com/ros2/common_interfaces/blob/master/nav_msgs/msg/Path.msg ) |
462
+ | 自定义 | [ foxglove.PosesInFrame] ( ../message-schemas/poses-in-frame ) |
463
+
464
+ ### 点云
465
+
466
+ 一个 N 维点的集合,可能包含附加字段,如法线(normals)、强度(intensity)等信息。
467
+
468
+ | 框架 | 模式 |
469
+ | --- | --- |
470
+ | ROS 1 | [ sensor_msgs/PointCloud2] ( https://docs.ros.org/en/noetic/api/sensor_msgs/html/msg/PointCloud2.html ) |
471
+ | ROS 2 | [ sensor_msgs/msg/PointCloud2] ( https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/PointCloud2.msg ) |
472
+ | 自定义 | [ foxglove.PointCloud] ( ../message-schemas/point-cloud ) |
473
+
474
+ #### 设置
475
+
476
+ | 字段 | 描述 |
477
+ | --- | --- |
478
+ | ** 点形状** | 每个渲染点的形状:` 圆形(Circle) ` 、` 方形(Square) ` 或` 立方体(Cube) ` 。默认:` 圆形(Circle) ` |
479
+ | ** 点大小** | 每个渲染点的像素大小。仅当点形状为 ` 圆形(Circle) ` 或 ` 方形(Square) ` 时显示。 |
480
+ | ** 立方体大小** | 每个立方体在 3D 场景中的大小。仅当点形状为 ` 立方体(Cube) ` 时显示。 |
481
+ | ** 显示轮廓** | 切换是否在立方体周围显示线框轮廓。仅当点形状为 ` 立方体(Cube) ` 时显示。默认:` 关闭 ` |
482
+ | ** 衰减时间** | 每个点保持渲染状态的持续时间(秒) |
483
+ | ** 颜色模式** | 以下之一:<br />` Flat ` :纯色 <br />` Color map ` :预定义调色板<br />` Gradient ` :两个自定义颜色之间的平滑过渡<br />` BGR (packed) ` :仅适用于 ` sensor_msgs/PointCloud2 ` ;使用每个点的 rgb 字段中嵌入的颜色([ 见下文] ( #rgba-颜色模式 ) ) <br />` BGRA (packed) ` :仅适用于 ` sensor_msgs/PointCloud2 ` ;使用每个点的 rgba 字段中嵌入的颜色([ 见下文] ( #rgba-颜色模式 ) )<br />` RGBA (separate fields) ` :仅适用于 ` foxglove.PointCloud ` ;使用每个点的红色、绿色、蓝色和 alpha 字段中嵌入的颜色([ 见下文] ( #rgba-颜色模式 ) ) |
484
+ | ** 纯色** | 仅在"颜色模式"设置为` 平面(Flat) ` 时显示;每个点颜色的十六进制代码 |
485
+ | ** 按颜色** | 仅在"颜色模式"未设置为` 平面(Flat) ` 时显示;用于` 颜色映射(Color map) ` 着色逻辑的值;消息中的任何数字字段,如 x、y、z、\< 距离\> (坐标的 L2 范数)或自定义定义字段 |
486
+ | ** 颜色映射** | 仅在"颜色模式"设置为` 颜色映射(Color map) ` 时显示;` Turbo ` (Google)或` Rainbow ` (RViz);用于将"按颜色"字段值映射到颜色 |
487
+ | ** 不透明度** | 仅在"颜色模式"设置为` 颜色映射(Color map) ` 或` BGR(打包)(BGR (packed)) ` 时显示;设置所有点的 alpha 值 |
488
+ | ** 最小值** | 仅在"颜色模式"未设置为` 平面(Flat) ` 时显示;用于规范化传入点的"按颜色"字段值的最小值 |
489
+ | ** 最大值** | 仅在"颜色模式"未设置为` 平面(Flat) ` 时显示;用于规范化传入点的"按颜色"字段值的最大值 |
490
+ | ** Stixel 视图** | 将点可视化为从点的 z 位置延伸到 0 的 stixel |
491
+
492
+ ##### RGBA 颜色模式
493
+
494
+ 当使用 ` BGR (packed) ` , ` BGRA (packed) ` , and ` RGBA (separate fields) ` 颜色模式时,您的点云消息必须包含某些字段以显示每个点的颜色信息。
495
+
496
+
497
+ ##### RGBA (separate fields)
498
+
499
+ 对于 foxglove.PointCloud 消息,每个点可以在四个单独的字段中包含颜色信息,名为 ` red ` 、` green ` 、` blue ` 和 ` alpha ` ,可以是任何数字类型:
500
+
501
+ * ** 浮点值** — 0–1 范围
502
+ * ** 无符号整数值** — 最大可能范围(例如,对于 ` UINT8 ` 字段为 0–255)
503
+ * ** 有符号整数值** — ` -max ` 到 ` max ` (例如,对于 ` INT8 ` 字段为 −127 到 127;−128 的值被视为与 −127 相同)
504
+
505
+ ##### BGR (packed) and BGRA (packed)
506
+
507
+ 对于 sensor_msgs/PointCloud2 消息,每个点可以在一个名为 ` rgb ` 或 ` rgba ` 的单字段中包含颜色信息:
508
+
509
+ - 必须使用 sensor_msgs/PointField 中的 4 字节类型(推荐使用 UINT32,值为 6)
510
+ - 每个红色、绿色、蓝色和 alpha 值由一个字节表示,范围为 0–255
511
+ - 字节必须按 [ 0xBB, 0xGG, 0xRR, 0xAA] 顺序打包(即 (0xAA \<\< 24) | (0xRR \<\< 16) | (0xGG \<\< 8) | 0xBB 以小端顺序)。此顺序与 RViz 兼容。
512
+
513
+ 如果使用 "BGR" 模式,alpha 值必须仍然存在,但被忽略。
514
+
515
+ ### 姿态
516
+
517
+ 在命名坐标系中带有时间戳的姿态数据。
518
+
519
+ | 框架 | 模式 |
520
+ | --- | --- |
521
+ | ROS 1 | [ geometry_msgs/PoseStamped] ( https://docs.ros.org/en/noetic/api/geometry_msgs/html/msg/PoseStamped.html ) |
522
+ | ROS 2 | [ geometry_msgs/msg/PoseStamped] ( https://github.com/ros2/common_interfaces/blob/master/geometry_msgs/msg/PoseStamped.msg ) |
523
+ | 自定义 | [ foxglove.Pose] ( ../message-schemas/pose ) |
524
+
525
+ ### 场景实体
526
+
527
+ 用于显示从基本包围框到复杂 3D 决策树或道路网络的任何内容的一系列基本形状(立方体、球体、文本、网格、线条等)。
528
+
529
+ 场景实体必须包装在 ` SceneUpdate ` 消息中。
530
+
531
+ | 框架 | 模式
532
+ | --- | --- |
533
+ | 自定义 | [ foxglove.SceneEntity] ( ../message-schemas/scene-entity ) |
534
+ | 自定义 | [ foxglove.SceneUpdate] ( ../message-schemas/scene-update ) |
535
+
536
+ ### 变换
537
+
538
+ 3D 空间中两个参考坐标系之间的变换(平移和旋转)。
539
+
540
+ | 框架 | 模式 |
541
+ | --- | --- |
542
+ | ROS 1 | [ tf/tfMessage] ( https://docs.ros.org/en/noetic/api/tf2_msgs/html/msg/TFMessage.html ) |
543
+ | ROS 1 | [ tf2_msgs/TF2Error] ( https://docs.ros.org/en/noetic/api/tf2_msgs/html/msg/TF2Error.html ) |
544
+ | ROS 2 | [ tf2_msgs/msg/TFMessage] ( https://github.com/ros2/common_interfaces/blob/master/tf2_msgs/msg/TFMessage.msg ) |
545
+ | 自定义 | [ foxglove.FrameTransform] ( ../message-schemas/frame-transform ) |
546
+
547
+ ### Velodyne 扫描
548
+
549
+ 来自 Velodyne ROS 驱动程序或 coStudio 的 Velodyne 激光雷达扫描数据包。
305
550
551
+ | 框架 | 模式 |
552
+ | --- | --- |
553
+ | ROS1 | [ velodyne_msgs/VelodyneScan] ( https://docs.ros.org/en/noetic/api/velodyne_msgs/html/msg/VelodyneScan.html ) |
554
+ | ROS2 | [ velodyne_msgs/msg/VelodyneScan] ( https://github.com/ros-drivers/velodyne/blob/ros2/velodyne_msgs/msg/VelodyneScan.msg ) |
0 commit comments