This port groups various packets related to localization. It exposes two channels:
Port | Channel | Name |
---|---|---|
6 | 0 | External Position |
6 | 1 | Generic localization |
External Position
This packet is used to send the Crazyflie position as acquired by an external system. The main use is to send the position acquired by a motion capture system to push it in the Extended Kalman Filter to allow the Crazyflie to calculate an estimate and control its state.
The packet format is:
struct CrtpExtPosition
{
float x; // in m
float y; // in m
float z; // in m
} __attribute__((packed));
Generic Localization
This channel intends to host packets useful for the localization subsystem. It has been created to serve the Loco Positioning System packets but can be used for more general things like GPS NMEA or binary streams. The format of the packet is:
Byte | Value | Note |
---|---|---|
0 | ID | ID of the packet |
1.. | Payload | Packet payload. Format defined per ID |
ID | Packet |
---|---|
0 | Range stream report |
1 | Range stream report, 16 bit floating point |
2 | LPP Short packet tunnel |
3 | Enable emergency stop |
4 | Reset emergency stop timeout |
6 | COMM GNSS NMEA |
7 | COMM GNSS proprietary |
8 | External pose information |
9 | External pose information, packed |
10 | Lighthouse angle stream |
11 | Lighthouse data persist |
LPP Short packet tunnel
Packet used to send LPP short packet to the loco positioning system. The payload is sent to the sytem as an LPP Short Packet.
Emergency stop
When received, the stabilizer loop is set in emergency stop mode which stops all the motors. The loop stays in emergency stop mode until the situation is reset.
Reset emergency stop timeout
At startup the emergency stop timeout is disabled.
The first time this packet is receive, the emergency stop timeout is enabled with a timeout of 1 second.
This packet should then be sent, and received by the Crazyflie, at least once every 1 second otherwise the stabilizer loop will be set in emergency stop and all motors will stop.