The question has been asked before a long time ago but i havn't heard anything of it ever since. Is it possible to find out if a waypoint has been reached? Does dronekit implement this mavlink message? I'm programming a drone to stop for a few seconds once the waypoint is reached and havn't found a way to do so.
You need to be a member of diydrones to add comments!
Particularly, you should use DO_SET_CAM_TRIGG_DIST or DO_DIGICAM_CONTROL depending on your application. Again, I haven't tested it, but you should be able to send these commands with dronekit according to this guide:
Adding an observer/listener didnt work but your first idea did, thank you very much!
I got one more question, could you point me to somewhere regarding camera control via dronekit if possible? I read something about gimbal control but nothing around camera triggers.
Check this guide and the source code in the bottom of that page. There is some code to execute some actions based on the waypoint the drone is currently heading to. You could store the next_waypoint in a variable and as soon as it changes, it means the waypoint has been reached.
# Monitor mission. # Demonstrates getting and setting the command number
# Uses distance_to_current_waypoint(), a convenience function for finding the
# distance to the next waypoint.
whileTrue:
nextwaypoint=vehicle.commands.next
print'Distance to waypoint (%s): %s'%(nextwaypoint,distance_to_current_waypoint())
ifnextwaypoint==3:#Skip to next waypoint
print'Skipping to Waypoint 5 when reach waypoint 3'
vehicle.commands.next=5
ifnextwaypoint==5:#Dummy waypoint - as soon as we reach waypoint 4 this is true and we exit.
print"Exit 'standard' mission when start heading to final waypoint (5)"
break;
time.sleep(1)
Alternatively, you could try to add a listener for this variable (vehicle.commands.next), though I'm not sure it works, you have to test it first.
As it did help quite a lot in part, see im trying to make the drone stop at the waypoint so it can execute a script from its computer companion. In order to do that in code i need something to tell me it reached it so it can execute. Think of it as if(waypoint_reached: Execute script.
Replies
Hi Melvin,
You can send commands in an Auto mission by using the camera commands:
http://ardupilot.org/copter/docs/common-camera-control-and-auto-mis...
Particularly, you should use DO_SET_CAM_TRIGG_DIST or DO_DIGICAM_CONTROL depending on your application. Again, I haven't tested it, but you should be able to send these commands with dronekit according to this guide:
http://python.dronekit.io/guide/auto_mode.html
Hope it helps!
Javier
I got one more question, could you point me to somewhere regarding camera control via dronekit if possible? I read something about gimbal control but nothing around camera triggers.
Thanks,
-Melvin
Hi Melvin,
Check this guide and the source code in the bottom of that page. There is some code to execute some actions based on the waypoint the drone is currently heading to. You could store the next_waypoint in a variable and as soon as it changes, it means the waypoint has been reached.
Alternatively, you could try to add a listener for this variable (vehicle.commands.next), though I'm not sure it works, you have to test it first.
Observing parameter changes
Best,
Javier
As it did help quite a lot in part, see im trying to make the drone stop at the waypoint so it can execute a script from its computer companion. In order to do that in code i need something to tell me it reached it so it can execute. Think of it as if(waypoint_reached: Execute script.
Any ideas if that's possible?
You could add a delay of 3 to 5 s in the command:
http://python.dronekit.io/automodule.html#dronekit.Command
Hope it helps!
Javier