The Goddard Rover Prototype 1 is a core technology concept test to confirm Raspberry Pi 3A+ computers can be reliably used to create a functional remote controlled device. It proved to be a reliable platform to drive two 6V motors in a camera gimbal, two 6V motors in the wheel chassis, and two fans to cool the CPU and rig electronics. The operating system is Arch Linux ARM on all devices, communication is over standard Wi-Fi 2.4GHz transmissions (typical in homes and businesses), and have fail-safe recovery abilities should there be field interference.

The Arducam OV5647 5Megapixel camera streams video accessible on Wi-Fi using a fixed IP address that can be easily recorded on a local Wi-Fi receiving device such as a mobile phone, tablet, or other portable device, as well as LAN surveillance capturing systems. The Remote Control has a one minute record button that can be stopped if capture needed is shorter than a minute. Two other buttons allow a snapshot picture of the Rover camera video image or a snapshot capture of the Remote Control screen.

Rover Specifications:

  • Speed: 1 Mile Per Hour, 1.6 Kilometers Per Hour, smooth surfaces
  • Average Battery Charge Life: 50 minutes, constant running.
  • Remote Control Range Distance: Over 250 feet.
  • Due to weight distribution factors, level surfaces are a limitation because the Rover can easily tip over mole and ant hills.

Video Demos and Test Drives

(Click link above for Google Drive video - if YouTube not working)

(Click link above for Google Drive video - if YouTube not working)

Remote Control User Interface

The Remote Control is a mobile touchscreen tablet with a graphical user interface created using Kivy graphical software components. The design for this user interface was to provide a test vehicle for this initial prototype. Other designs have been suggested that are much more mature but for this release, this provided the necessary functionality for concept testing for future designs.

The Remote Control screen shows the streaming video from the Rover with buttons surrounding the video image. The Rover navigation controls by default are on the right side, as illustrated in this screen capture below, but can be switched to the opposite side for left handed users. The top left shows the Rover (R) and Remote Control (RC) battery capacity levels, the Wi-Fi signal strength, and the Rover's connection status icons. At the bottom left side are the camera capture buttons to Record a 1 minute or less video capture, a Video Camera Snapshop, and a Remote Control screen capture button.

Icons on Top Left are: ABOVE Buttons (on Bottom) are: ABOVE Buttons:Both Battery Capacities Record Video for 1 minute with early Stop Button BLUE: Gimbal and Camera ControlsWi-Fi Signal Strength Camera Video Snapshot at High Definition GREEN: Motors/Wheels Controls & SliderRover Communications Remote Control Screen Capture (sample above)

Camera Gimbal Remote Controls

The Camera Gimbal sits on top of the Rover covered with a protective glass dome. It is a 3D printed parts kit assembled based on the instructions provided by Benjamin Höller, see references below. The Gimbal head mount holds the Arducam OV5647 5Megapixel camera to position the camera using pan and tilt controls. Inside the Gimbal housing, there are two DC Stepper Motors that are controlled by individual motor boards to make the pan/tilt movements using the 12V battery power.

On the Remote Control user interface, two programmed buttons turn the camera to predetermined Left and Right 90 degrees from the Camera Front position. Camera Front is calibrated using the left and right arrows to position the camera pointing forward on the Rover, then pressing the Calibrate Camera button.

(Click link above for Google Drive video - if YouTube not working)

Communications Module

To facilitate the Wi-Fi communications in fields away from all neighborhood signals, the Goddard Rover Communications Module provides the access point for both the Rover and the Remote Control. In addition, this module also includes a Global Positioning System (GPS) board at the end of the wire extension to set the date/time for all devices during startup. This same module will be used in the next prototype to track the Rover as it roams from one location to another.

Development Considerations

In order to reconfigure both ends of the Rover Rig (camera top and electronics bottom), this design includes the ability to disconnect a few cables (fan and motors) to remove the core components from the chassis. As shown in the picture below, the Rover wheel chassis can sit next to the core electronic components.

Left in this picture is the wheel chassis with fan housing over the 12V battery shelf. To the right is the core electronic components that drive the wheels, pan and tilt the camera gimbal, and provides CPU its 5V power and the Motor board its 12V power, all from two batteries.

To develop and test the core electronic components and gimbal code, the rig can be set in its development docking station, as illustrated below. Based on the cylindrical design, the rig can be inserted either side up. This capability is essential for configuring and/or positioning each board in the stack and to route wires.

Camera/Gimbal Side Up

Core Electronics Side Up

Camera/Gimbal side up allows changes to these components so that the internal gears and cable routes are in proper order.

Core Electronics side up allows location changes to each of the board, wiring, and spacing. This configuration also allows full device operation for tests, however without wheels and fans that are not connected. The Gimbal can be attached to the 12V battery for testing purposes.

Core Electronics Components

The basic requirements for this prototype were as follows:

  • Reliable CPUs, Power, Wi-Fi Communications, and Operating Systems for mobile Raspberry Pi Computers.
  • All software is written in Python language to run all of the hardware components and use sockets to communicate between the Rover and the Remote Control.
  • Basic system management with features such as cooling fans and power down safely before power outage.
  • Ability to stack off-the-shelf (online purchased) boards with some level of support.

To accomplish these requirements, the first successful field tests, outside Wi-Fi neighborhoods, were configured as illustrated in the pictures below.

Right Motor Rig Boards

Left Motor Rig Boards (Fans/Wheels indicates wire harness connections)

Prototype Cost Results

There are two parts involved in the total cost of my project: R&D expenses and actual final product build cost. The total cost of R&D expense was a couple thousand dollars due to equipment and learning expenses. The rough cost of the product prototype turned out to be about $700 with the major expenses in the gimbal and remote control components. In a real product, I would use something other than the RPi3A+ with touchscreen, like an Android or Apple tablet. Because this was a prototype to test the communications between a controller and rover with a proprietary protocol over Wi-Fi using a common platform, I wrote the code in the same programming language for all components in this prototype, to be consistent across future prototypes. In other words, this prototype was not for an actual product to produce but to learn and create core technologies for future autonomous vehicles.

Attribution

Gimbal: Benjamin Höller https://www.thingiverse.com/thing:314027 including 3D adaptation for Rover design using a software calibration button and sample code and drivers in python.

Tablet: Matt Schott https://www.thingiverse.com/thing:1044934 for Remote Control and Raspberry Pi 3A+ adapted design.

GPS: Dan Mandle http://dan.mandle.me for the core threading and gpsd processing sample code in python.

Picam and node-rtsp-rtmp-server Open Source code from Nao Iizuka to configure and stream rtsp video on Raspberry Pi using Arch Linux ARM.

Arch Linux and Moral Support: Kuzeyron, Mathias Lindström, for his brilliant recommendations and advice with python syntax, standards, and methods for Linux.

Raspberry Pi 3A+ Specifications

  • SoC: Broadcom BCM2837B0 quad-core A54 (ARMv8) 64-bit @ 1.4GHz
  • GPU: Broadcom VideoCore IV
  • Networking: 2.4GHz and 5GHz 802.11b/g/n/ac wireless LAN
  • RAM: 512MB LPDDR2 SDRAM
  • Bluetooth: Bluetooth 4.2, Bluetooth Low Energy (BLE)
  • GPIO: 40-pin GPIO header, populated
  • Storage: microSD
  • Ports:
    • HDMI, 3.5 mm analogue audio-video jack
    • 1x USB 2.0
    • Camera Serial Interface (CSI)
    • Display Serial Interface (DSI)
  • Dimensions: 67×56×11.5 mm