Improve MAVLink Integration of Kirogi – Progress Report 3


It's already nearing the end of GSoC.

Although the result is quite not satisfying for me but I learned many things participating GSoC especially how to program KDE applications and how to contribute to KDE community.

It was a great experience. Thanks to KDE community for giving me chance to participate this program!

What I learned participating GSoC

The first thing I learned working on the project is that how to write a program in a C++ way. It was my first time writing a program in C++, so I learned a lot more. There is still a lot to learn, but I learned a lot working on the project.

Second thing I learned is about Qt framework. I learned things like Meta Object System, Signals and Slots, QML and much more. Although still I'm not sure how to write a program using Qt "in a proper way", I definitely learned core concepts of it.

Third thing I learned is about drones and embedded development. I read code of other projects about drones like firmwares and ground control stations. They are great references for me and I learned many things from them.

Obviously, the most important thing I learned is about how to contribute to open source communities including KDE.

It was actually my first time working with open source community, so I made many mistakes about many things including:

  • Mistake about creating PRs.

When I created a PR the first time, I just created one PR that contains everything I implemented. It contains many things that can be logically divided into separate PRs. It resulted in that my mentors couldn't review what I did efficiently.

  • Mistake about sharing what I'm working on.

To be honest, I didn't write progress report very often. I wrote them like once in a month after coding period begins. (This is my third progress report.)

That's because I thought that pushing commits to PR and leaving commit messages and comments on them is better way to share what I'm working on.

And it turns out that it was my mistake. Reading all the commit messages and comments is less efficient than reading well-summarized reports. Even some of them disappears as I continuously rebase commits.

It would be difficult to share progress report like this post when I'm contributing to open source community as a anonymous contributor, but I realized that giving some kind of persistent, summarized writing to maintainer is important.

  • Mistake about dividing work into smaller pieces.

As I didn't divide a large task into smaller pieces that I can deal with, I made many mistakes like forgetting something that I planned to implement and forgetting to change variable name or something that I should change.

In addition to that, I spent a lot of time rebasing branches that has dependency to another branch other than master.

I read status reports of other students doing GSoC and the way how they progress their project was very impressive. I learned a lot from them.

Nice work guys! :)

What tasks still remains?

There are many messages to support yet. And because Kirogi is a young project, I believe that there are many points to be improved.

At this moment, I'm planning to work on improving mavlink message support. It would be hard to spend much time because school semester begins, but I will keep working on the Kirogi.

Branches and PRs

In summary,

Improve basic integration of mavlink protocol (!126) · Merge Requests · Utilities / Kirogi
This is a first MR for improving mavlink protocol integration. This MR is self-contained, just works as itself. In this MR, I focused on improving single vehicle and connection management....
Files · 01-mavlink-connection-types · Kitae Kim / Kirogi
Ground control application for drones.
Files · 02-mavlink-vehicle-model · Kitae Kim / Kirogi
Ground control application for drones.
Files · 03-mavlink-connection-model · Kitae Kim / Kirogi
Ground control application for drones.
Show Comments