Imporove MAVLink integration of Kirogi

The Kirogi is Ground Control Station for controlling unmanned vehicles like drones.

Currently, Kirogi dose not support all standards of MAVLink protocol, which is mostly used protocol between GCS and drones.

The goal of project is that improve MAVLink protocol ingeration of Kirogi so that it supports most functionalities of the MAVLink protocol.

Mentors: Tomaz Canabrava, Eike Hein, Patrick José Pereira, Sung Jae Cho

Work reports

Work report 01

Brief description

Period: 04.17 ~ 06.14


  1. Command queue
  2. Bug fix
  3. Heartbeat
  4. Multi-vehicle support
  5. Plugin for GUI

The command protocol, one of MAVLink subprotocols, specifies that commands must be acknowledged by ack message. So i implemented command queue to store commands and send repeatedly until it gets acknowledged.

I found minor bug in Kirogi's plugin system. Kirogi used deprecated function to load plugins.

I'm trying to support all functionalities of heartbeat protocol. this is still WIP.

And i'm also trying to make Kirogi support multiple vehicles at the same time. (the protocol supports up to 255 vehicles)

Most challenging thing in this period was GUI element plugin. I need to load GUI elements for Mission Planner, Vehicle Configuration in runtime. It seemed easy at first glance but i felt that most ways to approach makes codebase dirty. Tomaz and Patrick implemented POC for that and waiting for review. So i will try to find best way to implement it and help them.

Accepted commits

  • d63efbf54e1726d0ea07d25dc5c76295f0c7a04a
  • b19d034b204c73849793fd824270cd897911cea6
  • 15b48b52ef3e80bf3d2e14031623bbd11c9b2c6c
  • 0d9d7fe32a6c0eaed32770b50de5e36496caad06

Personal commits

  • 2f70d1a2b563ae70e9cba016fba1c15e9e0137eb
  • 2dbaa3d96288b7768094fc84203d2d44e7b26689
  • 2307ac6929597c3d5b8902bf861e5cdc4bd712a3
  • f9aabb2f86ef57468e02bf4eb555321674e3facb
  • 44f77d7e259e00778b58c2f1f0cb48d89a8b3142
  • ...

Links to blogs and other writings

This page was last edited on 14 June 2020, at 18:00. Content is available under Creative Commons License SA 4.0 unless otherwise noted.