explaingit

brunopinto900/argus

Analysis updated 2026-05-18

38PythonAudience · researcherComplexity · 5/5Setup · hard

TLDR

A drone flight control project that plans and executes circular flight paths while keeping the camera locked on a ground target, using predictive math turned into fast compiled code.

Mindmap

mindmap
  root((repo))
    What it does
      Circle tracking flight
      Camera locked on target
      Predictive control
    Tech stack
      Python CasADi
      ACADOS
      C plus plus
    Use cases
      Drone simulation
      Control research
      Hardware prototyping
    Audience
      Robotics researchers
      Control engineers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Simulate a drone flying a fixed circular path while keeping its camera locked on a ground target.

USE CASE 2

Study how Model Predictive Control handles a mismatch between the planning model and the true physical dynamics.

USE CASE 3

Generate fast compiled C solver code from a Python-defined drone model using ACADOS.

USE CASE 4

Prototype control logic that could transfer to a real flight controller such as PX4.

What is it built with?

PythonC++CasADiACADOSC

How does it compare?

brunopinto900/argusadewale/skill-eval-harnessanil-matcha/seedream-5-pro-api
Stars383838
LanguagePythonPythonPython
Last pushed2026-07-08
MaintenanceActive
Setup difficultyhardmoderatemoderate
Complexity5/53/52/5
Audienceresearcherdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires installing ACADOS and a C++ toolchain to compile the generated solver.

No license information is stated in the README.

In plain English

Argus is a control system for a small flying drone, specifically a quadrotor, that makes it fly a smooth circle around a fixed point while always pointing its camera at that point. Picture a drone hovering in a ring around a target on the ground, keeping its nose aimed at that target the whole time it circles. This is achieved using a method called Model Predictive Control, which works by continuously predicting a few steps into the future and choosing thrust and rotation commands that keep the drone on the planned path. The drone's physical behavior, its position, speed, tilt angles and rotation rates, is described mathematically so the control system can simulate what will happen next before deciding what to do. The project uses a tool called ACADOS to turn this math into fast, compiled C code, which is then used inside a C++ program that actually runs the control loop in real time. The commands the controller sends match what a real drone's flight computer expects, meaning thrust and rotation rate targets, so the same logic could work on real hardware and not just in simulation. To make the simulation realistic, the project purposely uses two different models: a simpler one for planning ahead, and a more detailed one to simulate how the real drone would actually respond. This mismatch is intentional. It tests whether the controller still performs well even when its internal assumptions about the drone are not perfectly accurate, which is closer to what happens with a real physical drone. The project is organized so that the physics of the drone and the control strategy are defined separately in Python files, using a library called CasADi that lets the math be written in a readable form and automatically turned into the precise calculations the solver needs. Python is only used to build and generate this control code ahead of time. Nothing about running the drone control loop at flight time depends on Python, the final program is a compiled C++ binary with no interpreter involved.

Copy-paste prompts

Prompt 1
Explain how this project's Model Predictive Control cost function keeps the drone's yaw pointed at the target.
Prompt 2
Walk me through running generate_mpc.py to produce the ACADOS solver code for this quadrotor model.
Prompt 3
Help me understand why the plant simulator here deliberately uses a different model than the MPC predictor.
Prompt 4
Show me how to adjust config/quadrotor.yaml to change this drone's mass or rate limits.

Frequently asked questions

What is argus?

A drone flight control project that plans and executes circular flight paths while keeping the camera locked on a ground target, using predictive math turned into fast compiled code.

What language is argus written in?

Mainly Python. The stack also includes Python, C++, CasADi.

What license does argus use?

No license information is stated in the README.

How hard is argus to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is argus for?

Mainly researcher.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.