About CogniPilot on MR-B3RB
CogniPilot introduction
CogniPilot is a new opensource vehicle control software that sits cleanly on top of the Zephyr RTOS. This will be used as the default real-time vehicle controller software framework on MR-B3RB kits.
EVEN when not using the full capability of CogniPilot, the framework still includes many software modules, high level drivers, communications methods and related PC tools and setup that makes other less demanding uses (such as NXP-CUP) much easier. The framework is there and can be used as much or as little as needed.
Zephyr and CogniPilot
Zephyr RTOS has build targets for MR-CANHUBK344 and MR-VMU-RT1176 which can be used as part of the real-time controller and IMU for MR-B3RB. In various versions of MR-B3RB kits these boards may already be included.
CogniPilot info
CogniPilot's claim to fame is that the control system software component is synthesized as a module from popular control software called Casadi. Casadi is popular with control systems engineers and researchers and allows the decoupling of the control theory, simulation and mathematical proofs from the actual code that implements the particular controller math. This approach helps with ensuring safety and robustness, while also supporting rapid innovation
CasADi
CasADi is an open-source tool for nonlinear optimization and algorithmic differentiation.
It facilitates rapid — yet efficient — implementation of different methods for numerical optimal control, both in an offline context and for nonlinear model predictive control (NMPC).
CogniPilot Cerebri module
CogniPilot represents the name of the group of software modules making up the vehicle control system. More details of what each of the modules does is available on the project website.
Cerebri represents the CogniPilot control-system software module and is named similarly to a human brain cerebellum, which The synthesized code from CasADi, or code representing the control theory-module for the particular vehicle intended, plugs into CogniPilot's Cerebri module. The control system for the vehicle type is a swappable module, it can define control functions or approaches that relate to a ground vehicle vs a multicopter, vs a winged vehicle. You then separately provide a hardware description file for the specific vehicle characteristics.
Example:
One of many control theories could be used to control an Ackermann steering car. The specific control theory is built in CasADi. Code is then synthesized and put into Cerebri for execution. The control theory was for a generic Ackermann vehicle type. The hardware description file defines the power of the motors, the size of the vehicle and wheels, the placement of all these wheels. You could theoretically have an Ackermann vehicle where the steering is misaligned with the drive wheel thrust. This same control software works for a passenger car or a toy car since the vehicle size and power that gets defines independently. A different synthesized control theory would be loaded to control a multicopter. The hardware definition would control the arm lengths, the number and orientation of the motors, and the thrust from the motors.
CogniPilot information
There is much more detail and information about the design and structure of CogniPilot here: https://www.cognipilot.com
The developer guide for CogniPilot can be found here: https://cognipilot.org/releases/airy/getting_started/install
Last updated