|
VLink
2.0.0
A high-performance communication middleware
|
Zero-copy 2-D occupancy / cost-map grid container with typed cell storage. More...
Go to the source code of this file.
Namespaces | |
| vlink | |
| vlink::zerocopy | |
Functions | |
| struct | vlink::zerocopy::VLINK_EXPORT_AND_ALIGNED (8) AudioFrame final |
Zero-copy 2-D occupancy / cost-map grid container with typed cell storage.
OccupancyGrid is the canonical 2-D map message for VLink autonomous-driving stacks: local costmaps, global occupancy, lane-level reachability, signed distance fields, log-odds buffers, etc. Each grid carries the cell buffer, the world-to-grid transform, value range, default value, occupied / free thresholds, a 40-byte Header for sequencing, and a map identifier so that multiple map types can share one topic.
CellType | C++ type | Bytes | Free | Occupied | Unknown |
|---|---|---|---|---|---|
kCellInt8 | int8_t | 1 | 0 | 100 | -1 (ROS nav_msgs convention) |
kCellUint8 | uint8_t | 1 | 0 | 254 | 255 |
kCellUint16 | uint16_t | 2 | 0 | 65534 | 65535 |
kCellFloat32 | float | 4 | <= ft | >= ot | NaN (ft / ot = thresholds) |
OccupancyGrid is POD; memcpy is the canonical serialiser. The sizeof value is locked by static_assert and forms a permanent contract: vlink::zerocopy::* containers offer NO forward and NO backward binary compatibility – every field, including reserved bytes, is wire-locked. reserved_buf_, reserved_buf2_, reserved_buf3_ are exposed through get_reserved* helpers and survive clear() and the copy / move helpers. These slots MUST NOT be repurposed by application code: future library revisions may bind them to real fields, silently breaking peers that abused the slot.