What you will need

What you will get

  • Keyboard control of a Duckiebot

Keyboard Control (Make it Move!)#

An easy way to make your Duckiebot move is by using the Keyboard Controller.

the Duckietown keyboard controller is a tool that enables manual keyboard control of Duckiebots

Fig. 43 The Keyboard Controller enables manual control of the Duckiebot.#

To open the Keyboard Controller, first make sure you can successfully ping the Duckiebot with ping ROBOT_NAME.local, then run:

dts duckiebot keyboard_control ROBOT_NAME

where ROBOT_NAME is the hostname of either a physical or virtual Duckiebot.

There are two ways to open the Keyboard Controller:

  1. If you have installed dts on the host machine: open a terminal on your host machine and run:

    dts duckiebot keyboard_control ROBOT_NAME

Note

The first time this command is ran, a popup window will appear asking for permissions. Insert your password and “(Always) Allow” to continue.

  1. Alternatively, inside the Workspace terminal run:

    dts duckiebot keyboard_control ROBOT_NAME –browser

where ROBOT_NAME is the hostname of either a physical or virtual Duckiebot.

Note the keys in the table below.

Key

Function

W

Drive forwards

S

Drive backwards

A

Turn left

D

Turn right

E

Toggle the Emergency Stop switch

F

Toggle the Autopilot switch

X

Increase the Gain

Z

Decrease the Gain

V

Increase the Trim

C

Decrease the Trim

Space

Save the Gain and Trim

R

Refresh the window

T

Open the Debug Console

Note

The F key’s function (Autopilot) requires software, such as for Lane Following, to be running.

Troubleshooting#

Troubleshooting

SYMPTOM

My Duckiebot does not move.

RESOLUTION

Before trying to use the Keyboard Controller, make sure that it is active by selecting its window.

Troubleshooting

SYMPTOM

The Keyboard Controller window is active but my Duckiebot still does not move. However, I can see messages being sent to my Duckiebot when looking at the DUCKIEBOT_NAME/actuator/wheels/base/pwm DTPS topic, after following Duckietown Postal Service (DTPS), and the Components page of the Dashboard (opened by running dts duckiebot dashboard DUCKIEBOT_NAME --page robot/components) shows a red alert for the HUT.

RESOLUTION

If you have a HUT v3.1, follow Re-flashing the “HUT”.

Troubleshooting

SYMPTOM

I have re-flashed the HUT but my Duckiebot still does not move or moves in a jerky manner. Additionally, the ToF sensor and front bumper are not detected on the Components page of the Dashboard (opened by running dts duckiebot dashboard DUCKIEBOT_NAME --page robot/components). I may also be having issues with the screen.

RESOLUTION

Disconnect the ToF sensor from the front bumper and use the long I2C cable, that originally connected the front bumper to the HUT, to connect the ToF sensor directly to that same HUT port. Finally, reboot your Duckiebot. This procedure bypasses a known multiplexer issue on some front bumpers that can cause other issues with the HUT.

Troubleshooting

SYMPTOM

I have connected the ToF sensor directly to the same HUT port that the front bumper was originally connected to and rebooted my Duckiebot but it still does not move.

RESOLUTION

Make sure that the duckiebot-interface container is running by checking the Portainer page of the Dashboard (opened by running dts duckiebot dashboard DUCKIEBOT_NAME --page portainer) or by running:

docker -H DUCKIEBOT_NAME.local ps

The exact name of the container will depend on your Duckiebot’s version. If you do not see the duckiebot-interface container, update your Duckiebot by running:

dts duckiebot update DUCKIEBOT_NAME

Troubleshooting

SYMPTOM

My Duckiebot drives backwards when I command it to drive forward.

RESOLUTION

Swap the motor cable connections on the HUT.

Troubleshooting

SYMPTOM

My Duckiebot doesn’t go really straight when I command it to. At least not for long.

RESOLUTION

Perform the wheel calibration procedure: Wheel Calibration.