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.

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.