About local controllers#

Virtual ethernet#

Parrot Sphinx creates a virtual Ethernet interface on the host side as well as in the simulated drone. On the host side, the interface is generally called fd_veth0 and has the IP address 10.202.0.254. On the drone side, it is called eth1 and gets the IP address 10.202.0.1.

To use the virtual Ethernet link, the controller application should run on the host so that the local interface is accessible. If you really need to run the controller application from another machine belonging to the same IP network, you need to activate the port forwarding mode, by using the following machine parameter.

$ sphinx <my.drone>::remote_ctrl_ip=<remote_ip_addr>

Note

Be aware that port forwarding may conflict with any required ports that would be already taken by another process running on the host.

QDroneCtrl#

qdronectrl is a desktop application that lets you:

  • control a simulated drone with a keyboard

  • visualize the front camera stream

  • send SDK commands

  • define flight plans

qdronectrl automatically discovers reachable Parrot devices visible on any virtual Ethernet interface. So once a simulation is running, you should just have to click on the Connect button.

_images/qdronectrl.png

The list of keyboard shortcuts to control the drone can be found in ‘Tools > Options’.

Olympe#

Olympe is a Python3 module belonging to Parrot Ground SDK. It allows you to easily write Python scripts to control the drone using the virtual Ethernet interface.

Here is an example requesting the drone to take off, then to land.

import olympe
import time
import olympe.messages.ardrone3.Piloting as piloting

DRONE_IP="10.202.0.1"

drone = olympe.Drone(DRONE_IP)
drone.connect()
assert drone(piloting.TakeOff()).wait().success()
time.sleep(12)
assert drone(piloting.Landing()).wait().success()
drone.disconnect()

Note

You can also use Olympe with a Wi-Fi interface and/or with a real drone.