DO_CHANGE_SPEED use case

What is the point of DO_CHANGE_SPEED in mission planner? I set it to 1m/s and then did an ATTITUDE_TIME of -15 degree Pitch for 1 second and it traveled like 2-3m. How can I use the DO_CHANGE_SPEED command?
Additionally, I want to be able to land at the same spot every time but my M10 GPS is too imprecise for it and the ATTITUDE_TIME command has no defense against variation in wind. What can I do to achieve a mission where if the drone starts in spot A, it will land in spot B every single time? I really need it to be extremely precise.

Use the right tool for the job: get a (septentrio or F9P) RTK GNSS receiver with a good helical antenna. And either a RTK base station or a NTRIP service subscription.

DO_CHANGE_SPEED can not de used in any way or shape to do precision landings.

Then what is the use case of DO_CHANGE_SPEED?
Those gps modules are out of my budget unfortunately. Is there really no other way to achieve this?

It changes the speed of the vehicle. What else would it do?
Mission Commands

Then you will really need to spend some money for RTK…

So then if I set the speed to 1m/s then and the tell the drone to pitch forward for 1s, it should move 1 meter right?

It’s not going to do that. That GPS module’s precision is measured in meters.

How is the vehicle supposed to achieve a precise velocity without knowing it’s precise position?

Think :thinking: about it. There is no way. The laws of physics dictate that you either need machine vision or RTK GNSS

How can I do it with machine vision? I am planning on adding an Intel RealSense D435i facing the ground on my drone as my ultimate goal is for the drone to fly around in a given area and find and pickup all pieces of trash in the area.
Can a depth camera facing downward be used for this precision? And can it be simultaneously used for object detection? The object Detection does not have to be continuous if it is not possible, just every couple of seconds it should send the current frame to a companion computer that will run the inference.

Yes that camera is fine if coupled with good Algorithms. To use it for navigating you need fully processed frames at 5Hz or more. If it takes more than 200ms it will not work.

What algorithms can I use if the camera is facing the ground? Also I will be operating in a pretty small area where the ground will not change much, Is this still fine?

Nothing to do with do_change_speed, that’s for sure.

DO_CHANGE_SPEED works when setting waypoints (in mission or guided mode). As mentioned above, it’s use case is to set the maximum horizontal speed. But apparently it does not work if you set the pitch manually. Also, I noticed it does not affect the speed in other flight modes (e.g. RTL).

How could a speed command possibly be effective if a pitch attitude is commanded? The two are at odds. Either you want to let the autopilot control the speed (via attitude), or you want to control the attitude more directly and accept the speed outcome that results.

2 Likes

Not that it matters in the context of this mislabeled thread title but you can also use the DO_CHANGE_SPEED command to control the ascent and descent rate.

Thanks for enlighten me :smiley:
Seems I didn’t test it thoroughly enough.