Launch RapidSense with Generic Vision Interface
Purpose
The following document details the generic sensor interface to RapidSense (RS), Realtime Robotics' (RTR) perception product, extending RTR’s motion planning into unstructured environments.
Assumptions
It is assumed that the user has calibrated their sensors against the RapidPlanCreate (RPC) project’s world origin. If there are deviations from a real cell’s construction and the RPC project, then unexpected behavior could result in use of RapidPlan. Specifically, slow motion or sporadic stopping due to flickering voxels in the project. It is recommended the user ensure the project and the real cell are well aligned.
Connection
Users can create a TCP/IP connection to RS by creating a client connection to the hostname of the machine RS is running on port 8999
. Initially upon connection, a sensor must send over a TCP/IP packet with some metadata describing the sensor. Currently, the sensor needs to only send over a serial number (as a string) identifying the sensor. Each generic sensor must provide a unique serial number.
Connection / Configuration Message Format
Messages contain headers with metadata, followed by payload. RS supports ASCII and binary messages. The following is an example message, broken into it’s header and payload sections.
Data Payload Message Format
Every payload message is preceded by a 4-byte unsigned integer indicating the number of bytes following (i.e., the PLY ASCII message size).
All headers begin with an ASCII ply
indicating the message is a PLY message. This is following by a line indicating whether the payload format is ASCII (ascii
) or binary (binary_little_endian
or binary_big_endian
). NOTE: The header shall always be in ASCII format, otherwise, the decoding of the message shall fail. The version number after the format is ignored currently. Any comments are preceded with the label comment
. The number of points or elements are specified next. Each vertex corresponds to a point.
ply format ascii 1.0 comment RapidSense is so cool! element vertex 4 <-------- this indicates the number of points after 'end_header' below property float x property float y property float z end_header 1.23 4.56 7.89 <---- it is expected that 4 points will follow since `element vertex` was 4 2.34 5.67 8.91 3.45 6.78 9.10 4.56 7.89 1.01
Launch RapidSense with Generic Vision Interface
Refer to Configuration for RapidSense.