Servers by jDrones

DroneKit-Python Rescue Project

Topic:DroneKit-Python Rescue Project

Proposal type: Software

Description:

The purpose of this project is to put a relatively small amount of effort to update and release DroneKit to ensure that it remains useful for developers to use on their companion computer interfacing with ArduPilot.

Tasks included:

  • fix documentation links to DroneKit from ardupilot.org (volunteer)
  • review important looking issues and PRs and close or merge them
  • update some features to catch-up with ArduPilot’s capabilities:
    • ensure MISSION_ITEM_INT, COMMAND_LONG_INT are used when possible
    • add terrain alt support to go-to command
    • verify that position, velocity, attitude control works with Copter, Rover, Plane in Guided mode
    • consume EKF status report’s GPS glitch field
    • support multiple rangefinders including different directions
    • multiple vehicle support?
  • do a release after updates including producing a blog on ardupilot.org

How does this fit in with other competitors:

  • pymavlink: a lower level tool much more tightly tied to the mavlink protocol. Dronekit is built on top of pymavlink.
  • Lua scripting: onboard meaning it has limited access to CPU resources and external sensors. Companion computers with dronekit are for situations where CPU and access to external sensors (i.e. cameras) are required.
  • DroneAPI/MAVSDK: another competitor which another team is putting effort into. Integrating would be a much larger longer term effort. These projects have been moving in fits and starts.

Planned amount $8K (USD):

Estimated time for completion: 2 months

10 Likes

It is unclear who would do this work, and also unclear who would manage the funds to ensure that payment is appropriately distributed only when either work is completed or contract for work is scoped-out and signed.

Separately, I’d like to point to OpenSolo’s continued releases as an example here and say that due to it having just a couple/three passionate software devs, it was able to take on and manage the releases of a much,much larger bundle of code, “for free”… and by that I mean by devs volunteering their time, for the betterment of the project.

I’d therefore like to suggest that it may be better NOT to fund this project, because we will then get to find out who is truly passionate enough about it to step up and volunteer, and if no-one is, then that’s a pretty good reason to let it die.

Thanks for the feedback. To clarify, I intended for Peter Barker to be the recipient of the funding and the Funding team would take care of making sure that it was paid. I’d handle the basic project management but I wouldn’t charge AP for that.

I think some projects work fine with no funding but others need it. I think we can expect that without funding dronekit-python will continue as it has been which I think means it will fall further and further behind the main ArduPilot code’s abilities (see here for recent commits: github/dronekit-python).

I think a fair question to ask is whether we should bother trying to maintain DroneKit-python or whether we should just push people to pymavlink which is slightly more active (see commit history here) but also harder to use.

This is really interesting. We like dronekit-python and use it a lot but it is lacking in some features/functionality.

Might be able to help with Development and Funding for specific modules.
RTK integration would be a great one to have. Also multiple vehicle support, although we have a workaround for this in place.

Please keep me in the loop. Let me know how i can help!

Nick

I don’t think we should arbitrarily decide who. My understanding is that this is a proposal to make the funds available - which I support. We then need to apply good governance practices to determine where they are spent. The simplest way to do that is via the Jobs page (https://discuss.ardupilot.org/c/general/wanted-jobs). That way it is transparent, and we reduce the potential for perceptions of self-dealing or cronyism.
I also see this as somewhat of an interim effort: DroneKit, whilst currently suffering from a lack of maintenance, is quite comprehensive and in use, so a refresh is the right thing to do, to support the community/users. But @DavidBuzz is basically right - without dedicated Dev’s providing ongoing maintenance, we’ll end up back in the same situation we find ourselves in now, which basically means DroneKit-Python would become a sponsored project. Longer term, I think MAVSDK will provide an attractive alternative (with options beyond Python), and we’d do well to put effort into pushing for it to become compatible with ArduPilot. That would also go some way to addressing an obvious next question… what to do about DroneKit-Android and Tower.

So how is this a good idea to make funds available without a current plan on who is going to support this, how are you to verify what they have done is correct, etc…? Is arudpilot going to officially adopt this and maintain this or will this be a one off and then again in 3 years the community will be in the exact same boat. " DroneKit-Python Rescue Project" V2!?

I 100% agree with @DavidBuzz, if you truly find someone passionate about it, isn’t that the way this community works? There are plenty of request floating around that eventually someone with the skill/time/passion will uptake without the need to spend money on, or they will die which signifies their lack of importance within the project, or the lack of partner funding to make it work.

@Matt_C I know it frustrates some members of the dev team that I push for a two-pass approach, but I think it’s a robust way to manage expectations and meet governance requirements. For significant spends, such as this proposal, I think there are basically two parts to the process: approving a “budget” (how much can I plan to spend on this), which is what I see this request as being; and then the value for money piece, which takes into consideration

I largely agree with your other points, and think I mirrored them to a degree in my earlier post, tempered by a concern that there are a large number of DroneKit deployments, and DroneKit as a project was basically completely sponsored by 3DR until 2016, so didn’t have a culture of community contribution.
@rmackay9 is right: in the short term, a DroneKit refresh will support more users, faster, than MAVSDK, as even with compatibility the MAVSDK is very immature and nowhere near feature complete. pyMavlink is very capable, but is less abstracted so has a higher barrier to entry.
Ultimately, as you and Buzz highlight, the best solution is for someone from the Dev Team, a Partner, or community member to step up and drive SDK maintenance (be that DroneKit, MAVROS, MAVSDK or any other). Otherwise the cycle will repeat.

1 Like

then if there is no community contribution why keep trying, isn’t ardupilot driven by the community (or by partner contributions)? you have expressed interest in wasting funds on something you are skeptical about, and have even stated

Often times there are barriers to entry but should that stop a community from moving forward with the best non-antiquated program/system. If dronekit hasn’t been updated then someone with the passion/skill/need should be a community member and update it if he/she needs it, like stated before. I’m not a dev or partner but think you should listen to the community before committing funds to an antiquated system that very few use and focus on not reviving something that few have interest in, or just open a PR an see who takes you up on the offer to revive it without spending money on.

All valid points, and it’s great that you are contributing to the decision process - I think it is good to have my views challenged. I guess I see value in having an up-to-date SDK, which is why I’m still supporting this. This definitely isn’t the optimal approach, but unless someone steps up very soon, it’s an approach I’m willing to support.
This particular request is subject to a full vote by the Dev Team, so it will be interesting to see the outcome.

The main issue is that there is demand for dronekit support from some partners, academics and community but nobody want to do the support… Unfortunately, that is a hard task to invest time on open source … You can see it even on ArduPilot, we are a few deal with multiple matters on the project, for free. I don’t blame other for lack of investment, everybody do as much as it can ! Beeing passionate isn’t enough,
With-Great-Power-Comes-Great-Responsibility-Meme

So paying for dronekit is the last way to bring support on dronekit.

PS: I am not in favor of it as I think that dronekit is dead. But I still think that we should but some effort on bring it doc and server up for those that still us it.

So this is to support the “few” that actually use this? This does not seem like to me a project that ardupilot should waste money on, but then again im not a dev so does it really matter that i chime in, seems kind of like hey the popular votes is against but we have the electoral votes as dev’s to go against the will of the community and just do it anyway?

There is always only a few that will benefit from funded proposal …
You can look at other proposal :
heli autorotation will concern only heli guys,
tracker maintainer will concern only those that use tracker
sensor/board X will only concern those that buy this thing
contribution of the month, only those who contribute
etc…

But we listen your concern but also listen to other on community that push us to get back dronekit.
I will ask other about opinion on launching a community survey on this matter, it may change opinion … but also bring a big mess …

So by a few you mean what, i know more than a “few” folks that have benifited from the heli rotation (might seem to be more than a few when you think of that being a saftey feature within the arduheli code) also seems to me that more than a “few” have benifited from the antenna tracker update. This is like comparing apples to oranges, and you cannot honestly tell me you are lumping them in with this resuscitation of an antiquated system. Here is a link to definition of a few sorry its notthe oxford def but should suffice.

I mean as few want dronekit as tracker update. Just look at questions on discuss and gitter.

So you are basing the need based on gitter questions? Slightly confused by the previous post? Not a lot of “common” users get on gitter at least from what I can tell, can you provide more explanation to that statement?

The community speak on those channels, what is the issue ?
The “few” you know (see DroneKit-Python Rescue Project) speak nothing to me, but posts on discuss and gitter (or issue list) are.

Discuss and gitter (and mumble) are the officials way to communicate with the project, we cannot guess what user are speaking about on field if we aren’t there … If we don’t have report how can we know ?

What report are you speaking about? Might be language barrier that im not fully understanding? Is there some report I need to fill out about my issue or do i need to go elsewhere to let my voice be heard, good sir please let me know where?

We would love to see dronekit updated/rescued. We could, as a company, fund a little bit of it.

regards,

Corrado

1 Like
Servers by jDrones