The signal processing view of a quadcopter has one obvious result – a node editor.
Still WIP but here’s the first screenshot:
The left top part has some nodes that compute a Reference Frame, a Location and a Battery State from a MPU9250 imu, a MS5611 baro, a Ublox GPS and a RC5T619 ADC.
There are some processors there that do some resampling or convert streams (like an ADC_Voltmeter that converts from ADC to Voltage).
The nodes are read from the brain running on the Raspberry Pi. Each node has:
– a unique name
– a type (class_id)
– a list of inputs
– a list of outputs
– an init_params json which represents fixed configuration that is applied when the node is created. Stuff like IMU sample rate or gyro range.
– a config json that has things that can be changed at any moment – like where the inputs/outputs are connected or calibration data, or cutoff frequency for LPFs.
Each input/output has a name and a stream type that determines where it can be connected. There’s also a sample rate that has to be matched.
Next is to allow uploading of the json configs to the brain and more editing features.
The node editing is done with this library.