Once upon a time RC control of an aircraft consisted of a Transmitter with a single button. Your aircraft had a rudder only. Hit the button once to go left, twice to go right.
Increasingly RC transmitters offered more functionality with different mixing facilities and modern transmitter software such as open TX offer very flexible facilities.
But, if your aircraft is being controlled by a flight controller, have mixing on the RC Transmitter is no good, you need the mixing to be on the flight controller.
The mixing for different model types so far has usually been hard coded into the flight controller so you get what you are given. PX4 improves matters with its mixing scheme but it is quite cryptic so I decided to try to offer an alternative.
The result is mixer_lang, a flexible mixer for Flight controllers
some features
High level Specification.
The specification is based on a context free grammar and well documented semantics. The goal is consistent semantics, so that you arent reliant on the vagaries of a particular implementation.
Strongly typed, type deduction.
Expressive economical language with type deduction, but strongly typed to give well defined and predictable qualities
Access to system values.
The language enables defining system values either constant or variable and of real, integer or bool type as inputs to the mixer.
Inputs and Outputs as Integers, floats or booleans.
Inputs and Outputs can be comprised of combinations of integer real and boolean. You can select the underlying integer and floating point types to the best combination for space and performance on your system.
Tunable at runtime.
The language specifies how selected values in the mixer can be remotely modified in flight to tune best performance in real time.
Multipoint mixers specified in the language
For more info visit the project on github mixer_lang, a flexible mixer for Flight controllers
Comments
That would be sooo great!
Very nice Andy.
I forgot to add. There is also a GUI, that was used to make the Youtube video:
https://github.com/kwikius/mixer_gui
but it is very rough and just really for my own use, so it wont build out of the box, many things such as file paths are hardcoded in, but with a few path changes it should run on a Linux box. If there is intereset I will add some build info and clean it up a little.
Hi Jerry,
I am just now working to get this on my flight controller, (using the software on my ArduPilot fork).
http://diydrones.com/profiles/blogs/ardupilot-flight-controller-wit...
http://discuss.ardupilot.org/t/ardupilot-flight-controller-with-on-...
I hope to get it running on this aircraft shortly
http://diydrones.com/profiles/blogs/a-high-performance-fpv-soarer-t...
As you may know the RC I/O on Ardupilot had been unchanged for years, simply because it was so difficult.
I am picking through that code now and I hope soon to be able to install the mixer code.
At that point I hope I can get flying. :)
In longer term, I would like to re-support the APM and Linux, but for now I am just concentrating on getting this in the air!
great work, i will have look with a magnifier. how are you planning to do with this code?