Teleoperating over Radio

Use the Bitcraze CrazyRadio dongle to teleoperate the car over radio.

Beginner Tutorial | Expected duration is 45 minutes

By: Akkshaj Singh



Introduction

This tutorial will help you integrate a radio-based system for teleoperation.

Goal

To allow you to drive the car over radio.

Requirements

Setting up CrazyRadio

Plug one CrazyRadio USB transceiver into the jetson on the racecar, and one into your computer. Download the code from this GitHub repository onto both the jetson and the computer. Connect the dualshock controller to your teleoperating laptop over Bluetooth or USB.

First, run tx.py on the transmitting computer.

 $ sudo python tx.py 

Then, run rx.py on the Jetson. Verify that joystick input appears on your screen and is being sent to the car with the acknowledgements.

 $ sudo python rx.py 

Teleoperation

Launch teleop as per normal on the jetson by SSH-ing into the car. (ensure the python scripts from the previous step are still running on both the PC & the racecar).

$ ssh <user>@<car ip> 
$ roslaunch racecar teleop.launch 

The controller should now be able to drive the car. This system should have a much higher range when compared to the traditional Bluetooth teleoperation system, and will continue to work outside WiFi or Bluetooth range, provided that line-of-sight is maintained. This may be particularly advantageous in dynamic outdoors environments.

Pairing this system with an FPV camera

Additionally, we recommend integrating a Radio FPV camera, like those used for drone racing. These cameras have high quality, range and low latency to allow you to monitor and tele-operate MuSHR at range. Depending on the specific camera model you choose, you will likely need a transmitter and antenna to attach with it. You can power it over USB from the Jetson, and connect a 5.8 GHz radio FPV receiver to your computer to view the feed similar to an external webcam. This system is highly customizable with a wide range of compatible hardware, and you can pick what meets your needs and budget accordingly.

A STL 3D printing file that allows you to attach most 19mmx19mmx20mm FPV cameras with M2 screws is included in the mushr-radio-controller repository, and is mounted in an identical fashion to the push button at the front of the car.

Going Further - Using non-standard controllers

Currently, the GitHub Repository supports DualShock 4 and XInput based controllers. To use other input devices, adjust the device capabilities accordingly on rx.py using evdev.

Citation

If you plan to use any part of the the MuSHR platform (including tutorials, codebase, or hardware instructions) for a project or paper, please cite MuSHR: A Low-Cost, Open-Source Robotic Racecar for Education and Research.

@article{srinivasa2019mushr,
 title={{MuSHR}: A Low-Cost, Open-Source Robotic Racecar for Education and Research},
 author={Srinivasa, Siddhartha S. and Lancaster, Patrick and Michalove, Johan and Schmittle, Matt and Summers, Colin and Rockett, Matthew and Smith, Joshua R. and Chouhury, Sanjiban and Mavrogiannis, Christoforos and Sadeghi, Fereshteh},
 journal={CoRR},
 volume={abs/1908.08031},
 year={2019}
}