Hey guys,
Iām new to this and I want to know as many newbies how to get started!
I have basic experience skills in C/C++ (embedded) and Python programming.
My goal is to start programming my RC airplane so that it can fly autonomously (waypoints, takeoff, landing and so onā¦)
My RC airplane is a āmini Talonā and I have bought a Holybro PX4 6C flight controller.
I have read a bit about MAVLink but still I donāt know how to get started with the programming.
Which dev environment should I use?
Iām kind of familiar with the QGroundcontrol settings and Ardupilot. But where does the programming start?
I would be very thanksful for you suggestions and instructions!
Programming starts when you have an issue that doesnāt have an existing solution.
For example, when I joined the PX4 community PX4 didnāt support DShot so this is when I first started contributing, by writing DShot low-level driver.
Once you figure out what you want to improve in PX4 you can clone the PX4 repo from Github, learn how to build it for your board, and you can start with improvements in the code.
p.s. there are plenty of things to improve, If you donāt have an idea you can take the issue board and try to solve some bugs:
Hello @Igor_Misic thanks a lot for your helpful reply!
Thatās a good idea to start! As you know the gebinning is always difficult thatās why I rely on your experience in this forum.
My aim is also to make my drone fly autonomous, for example takeoff and fly different waypoints. Things like that, I think Mavlink is the right way?
Well, your drone can do that already without any programming. You can open QGroundcontrol set waypoints and it will do exactly the same. You can also control your drone over Mavlink as you suggested.
Recently, we have made some changes on the main branch so you shall be able to use ROS2 to upload waypoints. Not sure in what state is at the moment, but you can have a look at āmission planningā and see if tehre is help required.
This is changed to make this possible, check related topics:
Yeah I know it is extremely hard to jump in, but after spending hours looking into the code and documentation eventually, it will start sitting in its place.