explor-O-matic

Beaglebone Green + ROS + 4WD RC Truck + more!

View the Project on GitHub mechatrocity/Exploromatic

Introducing the explor-O-matic

The explorOmatic is an autonomous RC Truck based around a Beaglebone Black and Robot Operating System (ROS). It has no aim in particular, but serves to be a platform for experimenting. In this vein it must have bi-directional communication and a good interface, which is accomplished through Ubuntu over a SSH connection. The initial version of the greenOmatic will essentially be a remote-controlled RC truck with all the on-board sensors constantly being updated and reported. Lets call this version 1.0.

Roadmap

The next version of the greenOmatic software will implement SLAM to create a precise map of the perimeter of any arbitrary indoor unit (multiple rooms). This could be useful to real-estate businesses for verifying the layout of floor plans.

The RC Truck has a flatbed and a removable plastic flatbed lining. For a future hardware revision (once I get my RepRap up and running) a fixture will be created to mount a stepper or servo motor to the flatbed and attach the rotor to the plastic flatbed lining (or any other solid flat surface), so that the motor tilts the flatbed surface relative to the chassis. A 6-DOF IMU will be fixed go the chassis or the moving flat bed; it's not too important which, as the tilt will be known.
Then, attach a Model Rocket launcher to the truck bed, and wire the launcher to a relay to the Beaglebone, and voila -- a mobile model rocket launcher!

Current Status

The Beaglebone Black is running Ubuntu 14.04, can be accessed over SSH with a Wifi connection, and ROS is installed. For initial system integration the Chassis and Power and Propulsion systems are not in the picture. All sensors are electrically connected.
I ran into issues getting the UART working on the Beaglebone Black to read the GPS stream, found that some Ubuntu 14.04 compilations for the BBB have UART device tree overlays, and others don't... mine didn't.

The blinking means it's happy

Hardware

Chassis

I got very lucky on a trip to Value village, and found this great RC truck. It's 4-wheel-drive, has a decent suspension system, and has a pretty hefty drive motor.

Power and Propulsion

NiMH Batteries

...but really, any type of battery over 5V will do. I have some old 5000mAh 8-cell NiMH batteries that are perfect. If I was to race LiPO batteries could be used to lighten the load.

SyRen 10 Motor Controller

SyRen10 and a DC Motor for testing Features bidirectional control of DC motors, regenerative breaking, multiple input types for control (Analog, PWM, Simple Serial and Packetized Serial) and even offers a high-amperage 5V power connection, which is used to provide power to the whole system!

Servo Motor

The steering motor that came with the Value Village RC Truck was of an old design I'd never seen before, 5 wire analog control but NOT a stepper, so rather than figure out how it works I swapped it out for a modern Servo. These are quite common, PWM-driven with Ground-Power-Input connectors.

Computer and Communications

Beaglebone Black

A powerful little embedded computer with HDMI, Ethernet and USB connectivity, 4 UARTS + 1 TX-only UART, SPI, I2C, and tonnes of GPIO. I don't exactly consider its ADC ports to be that useful as they only tolerate up to 1.8V... so unless you want to wire up an opamp circuit to scale the input voltage levels, it's not that useful.

USB Wifi Dongle

A cheap and by far the easiest way of implementing a bidirectional link to the robot and other systems. I got mine from , there's tonnes to choose from but almost any will do; there may be issues with the Beaglebone Black OS and the drivers, but most use a common Realtek chipset that won't present any issues to modern Linux distributions.

Sensors

At a minimum, the explorOmatic should have GPS and some ranging (distance-measuring) sensors for immediate environmental navigation.

LS20031 GPS Receiver

66-channel 10Hz UART GPS receiver.

URM37 Ultrasonic Sensors

Ultrasonic ranging sensors for short-range sensing. Not incredibly accurate, good enough to react to its immediate environment but not good enough for precise measurements.

DHT11/DHT21 Temperature and Humidity Sensors

There's no real reason for a temperature and humidity sensor, it certainly won't be used for any closed-loop controls... but it's a low-power device with a 1-wire connection, so why not?

Software

Ubuntu 14.04 for ARMHF

Ubuntu, everyone's favourite Linux distribution, for embedded systems! There are builds specifically done for the Beaglebone Black which I've used.

Robot Operating System (ROS)

To tie everything together.