The goal of TrajBridge is to enable quick and safe testing of trajectory planning pipeliness and novel trajectory control policies on multirotor hardware. This is done through a set of ROS(1) nodes that interact with PX4 over mavros. There exists a bunch of excellent code bases out there that do something similiar in simulation. This repo differs from these by the following aspects:
- Provides a step-by-step guide for an actual hardware implementation in the wiki.
- Provides a comprehensive and easy to modify set of failsafe mechanisms for safe hardware implementation.
- Enables access to the Synthesized Adaptive Controller (SAC), a neural-network based controller that is being designed to work across a variety of multirotor platforms that are also under additional dynamics (aerial grasping, tugging, perching)
The controllers in this repository has the following input->output structure:
- Pose Commands -> Pose Commands
- Pose Commands -> Normalized Thrust and Body Rate Commands
- Full State Reference Trajectory -> Motor Comands
The controller is slaved to a state machine that checks for the following failsafes:
- Motion Capture Stream -> Auto Land
- L2-norm position error -> Auto Land
- L2-norm velocity error -> Auto Land
- Flight area bounding box -> Auto Land
- Transmitter Soft Kill -> Auto Land
- Transmitter Hard Kill -> Motor Cut