Yes, we sent it via a mavlink command. Now for the interesting part: which mavlink command. Well, we have our own library, which builts on dronekit. From dronekit we use simple_goto():
def simple_goto(self, location, airspeed=None, groundspeed=None):
In turn, this calls from pymavlink utils:
self._master.mav.mission_item_send(0, 0, 0, frame,
mavutil.mavlink.MAV_CMD_NAV_WAYPOINT, 2, 0, 0,
0, 0, 0, location.lat, location.lon,
alt)
As an aside, this seems to be the wrong command for GUIDED mode according to the MAVlink documentation: the MAVLink documentation says about MAV_CMD_NAV_WAYPOINT:
[Command] Navigate to waypoint. This is intended for use in missions (for guided commands outside of missions use MAV_CMD_DO_REPOSITION).
Now, looking at pymavlink, it appears that mission_item_send is sending the latitude, longitude and altitude as floats, which I believe corresponds to a COMMAND_LONG.
Phew, that’s a long answer to a simple question, but I think that you’re right to ask. From what I gathered, this is the “old” way of sending commands - the newer way is COMMAND_INT. Maybe that’s why it’s not logged?!
What is sure is that it works, meaning that the drone goes where it’s being told to go.