4x Redundant Autopilot¶
4x Redundant Autopilot
Introducction¶
4xVeronte Autopilot is a triple redundant version of the Veronte Autopilot. It includes three complete Veronte Autopilot modules together with a dissimilar arbiter for detecting system failures and selecting the module in charge of the control. The autopilot selected as the master will be the one controlling the actuators and communicating with the payloads.
Each Veronte autopilot contains all the electronics and sensors in order to properly execute all the functions needed to control the UAV. Veronte executes in real time all the guidance, navigation and control algorithms for the carrying airframe, acting on the control surfaces and propulsion system and processing the signals from different sensors: accelerometers, gyroscopes, magnetometer, static pressure, dynamic pressure, GNSS and external sensors.
All three modules are managed by a dissimilar microprocessor. This arbiter includes voting algorithms for managing the module in charge of vehicle control. This microprocessor compares data from all modules in real time and processes it for discarding any autopilot module showing an undesired performance.
Setup¶
CAN bus¶
4xVeronte Autopilot includes three complete Veronte Autopilot modules that have to be configured independtly in order to work porperly. 4xVeronte Autopilot is compatible with all configuration files from Veronte Autopilot. The communication channel between Veronte Autopilots modules and arbitrer is done by using CAN bus so in order to start arbitring, Veronte Autopilots modules have to send the following information.
Configuration |
Value |
Baudrate |
1 Mbps |
Endianess |
Little endian |
Each Veronte shall send using its CAN-TX ID and in little endian format.
Variable value message:¶
Byte0 |
0 |
Telemetry message |
Byte1 |
variable id |
Variable id sent (0 to 127) |
Byte2-5 |
variable value |
Variable value as Float (32 bits) |
Status message:¶
Byte0 |
0 |
Telemetry message |
Byte1 |
0xFF |
Status flag |
Byte3 |
bit0 |
1:Ready, 0:Not ready |
bit7-1 |
Reserved |
By default the arbiter will send the following CAN messages.
Variable value message:¶
Byte0 |
0 |
Telemetry message |
Byte1 |
N, Autopilot id |
Autopilot [0, 3] |
Byte2-5 |
value |
Autopilot score as Float(32 bits) |
Status message:¶
Byte0 |
0 |
Telemetry message |
Byte1 |
0xFF |
Status flag |
Byte3 |
bit6-0 |
Selected autopilot |
bit7 |
Arbitrating 0:false, 1:true |
|
Byte4 |
bit0 |
AP0 Alive |
bit1 |
AP1 Alive |
|
bit2 |
AP2 Alive |
|
bit3 |
AP3 Alive (external) |
|
bit4 |
AP0 Ready |
|
bit5 |
AP1 Ready |
|
bit6 |
AP2 Ready |
|
bit7 |
AP3 Ready (external) |
|
Byte5 |
bit0 |
system ok |
bit1 |
start |
|
bit2 |
pdi |
|
bit3 |
memory alloc |
|
bit4 |
cana bus on |
|
bit5 |
canb bus on |
|
bit6 |
Reserved |
|
bit7 |
Reserved |
|
Byte6 |
bit0 |
system ok |
bit1 |
Vcc A |
|
bit2 |
Vcc B |
|
bit3 |
Vcc arb |
|
bit4 |
Vcc1 |
|
bit5 |
Vcc2 |
|
bit6 |
Vcc3 |
|
bit7 |
Reserved |
Control¶
One modification has to be implemented in order to have smooth transition between Veronte Autopilots modules. This modification involves sending the control outputs of Veronte Autopilots modules to the rest of autopilots so it is considered in the transition. The user can refer to the configuration examples for this implementation.