Introducing FIREBRINGER - A generalised autonomous navigation algorithm

Hey all,

Our company GEEAR (full announcement soon) has been developing FIREBRINGER - a generalised autonomous navigation algorithm implemented on ROS2 for field-robotic applications.

The algorithm is meant to support a variety of missions from simple point-to-point travelling and trajectory tracking, to more advanced interaction with third-party vehicles and our favourite - real-world dense robotic swarms (in the full academic sense of emergent collaborative behaviour). We will continue working on populating our library of mission types/functionalities so you can expect more in the future.

So far we have validated FIREBRINGER on real-world boats and ground vehicles and on copters and fixed-winged aircraft in gazebo, (real-world experiments coming soon). You can find our recent video unveiling our autonomous vessel prototype here.

The algorithm is meant to be easy to use and tune, only requiring basic physical characteristics of the robot (maximum linear/angular velocity and maximum acceleration for each degree of freedom of the robot), and it offers plug-n-play functionality when combined with an Ardupilot autopilot through MAVROS.

It is based on a lightweight, robust NMPC-variant integrated with artificial potential field theory. It can typically run at 100Hz on a normal PC and 25Hz on a RPi4B for all vehicle types. So far, it can receive topics regarding the location of other vehicles (third-party and collaborative), trajectory (e.g., NAV2 global path), destination (complete pose), and various other mission specific info. We are currently working on incorporating point-cloud/costmap information for surrounding obstacle avoidance. Our aim is to allow integration with any ROS2 perception package that may be used in field robotics. The algorithm outputs an optimal velocity for each degree of freedom so it needs to be combined with appropriate low-level actuation control (or connected to a well-tuned Ardupilot autopilot which will do the work).

We are currently considering creating and publishing a complete ROS2 package for the algorithm and we may propose some type of fusion with NAV2 in the future, but we wanted to gauge interest first. Obviously we are open to ideas and recommendations (and some criticism)!

7 Likes

Sounds very interesting indeed! Iā€™d love to hear more and see how we can make this part of the ecosystem :slight_smile:

2 Likes

I would love to see the nav2 integration with object avoidance. Maybe even using it as part of a behavior tree to switch between different algorithms

1 Like

We will be updating the post in the next few days explaining how we envision the final integration and next steps. We can see several ways of how behavior trees will be used to control the algorithm and switch between functionalities.