Skip to content

Rolling Robot

ECE Rolling Robot Report

The Rolling Robot uses a unique form of locomotion to reach a designated goal. TERRA, as the rolling robot is affectionately called, can position itself in its environment utilizing an Ultra Wideband positioning system and plan a path to it goal. Once TERRA has reached its goal it will send back temperature data to its base station.


Electrical and Computer Engineering Team

  • Jack F Bell
  • Eric Elias
  • Alexander D Kleerup
  • Theodore M Leon

Mechanical Engineering Team

  • Jason Kahn
  • Cris Ramos
  • Ali Mganga
  • Vision Aryal


Jack Mottley, Dan Phinney, & Christopher Muir


Not all environments are reachable by humans, and therefore they require a specialized method of locomotion to explore them. The polyhedral robot has many advantages including but not limited to: omnidirectional movement, any orientationally state is stable and in normal operation, able to travel over rough terrain, not reliant on frictional forces, able to operate at relatively high speeds. The technology we plan to develop could be relevant towards many applications including space exploration and search and rescue operations. Our proposed design project is a rolling robot of a polyhedral shape. This form of movement brings advantages such as increased versatility in the terrain it can cross. Previously, rolling robots like the one our group envisions have manipulated its center of mass to invoke a rolling motion. We plan to deploy linear actuators to invoke a rolling motion. Potential deployments of the rolling robot, affectionately called TERRA, include disaster relief situations and planetary exploration. The rolling robot is exceptional at rolling over debris and rubble. The rolling robot could be deployed in a disaster relief situation being controlled by ultra wideband cellular towers and sending data about the condition of the terrain autonomously. Moreover, NASA brainstorms ideas for potential rovers for other planets that have new and novel designs. These designs utilize new ways to solve a problem that are specially adapted to a particular environment.


Physics of a Rolling Robot

NX rolling model used to calculate minimum motor torque requirement


Circuit Block Diagram

Block Diagram for Rolling Robot Circuitry


Wiring Schematic of the Rolling Robot

Electronics Panel

Laser Cutter Template for Electronics Panel

Component Selection, Hardware, and Budgeting

List of Materials

  • Raspberry Pi 4 4gb Model
  • 12V 6Ah Battery
  • Adafruit AHT20 – Temperature & Humidity Sensor
  • Adafruit DPS310 Precision Barometric Pressure / Altitude Sensor
  • LSM6DS33 3D Accelerometer and Gyro Carrier with Voltage Regulator
  • SainSmart 16-Channel 12V Relay Module Board
  • Pololu 47:1 Metal Gearmotor 25Dx52L mm HP 12V
  • Pololu Dual MC33926 Motor Driver Carrier
  • Sparkfun SX1509 GPIO Breakout
  • SparkFun Pi Wedge 40-Pin
  • BOJACK 10SQ050 Schottky diode
  • 12 & 20 Gauge Wire
  • Barrier Strips
  • 3D printed parts
  • 5V Voltage Regulator
  • Aluminum Sheet metal
  • 5.5 Amp Fuse
  • PCB standoffs
  • Muffin Fans
  • LED Light Bar
  • PNP and NPN Transistors
  • 1k Ohm Resistors
  • Micro USB Cables
  • Mechanical Limit Switches
  • Raspberry Pi Breakout board and Ribbon Cable
  • Raspberry Pi case and fan
  • JST Connectors
  • Tape
  • DWM1001-DEV Ultra Wideband Boards


Running Budget Spread Sheet of Rolling Robot Expenditures
Pie Chart of remaining budget. Total budget was 1,000 USD

Mechanical Engineer Update

Hardware Driver Code

A majority of the sensors and components used in our robot are meant to interface with a Raspberry Pi and have Python libraries already written for them. We are current working on implementing all of those libraries and testing that they work.

Ultra Wide Band Indoor Positioning System

Ultra wide band (UWB) is a radio technology we are using to make a positioning system. Our UWB System involves using four stationary boards as anchors and three boards attached to the robot as mobile tags. Both are used to create a system that communicates and tells the location of the tags in relation to the anchors.

We are using the DWM1001 Development Board from Decawave.

We have successfully interfaced between the Raspberry Pi and the UWB boards using a Python program that outputs X, Y, Z positions as well as the quality between 0-100. The tags are plugged into the Raspberry Pi’s USB ports and the anchors are setup using an Android application and Bluetooth.

Python Code and Console Output

Planning Algorithm

  • Finished planning algorithm
  • Robot moves in the direction that has the lowest angle to the goal
  • Problem: TERRA rolls in a grid. With only this planning law, the robot could oscillate back and forth and get stuck
  • Solution: Add a constraint that each roll cannot backtrack
TERRA rolling to a goal of (x: 1.5, y: 1,5).

Particle Filter

  • Extended Kalman filter Jacobian math was very cumbersome
    • Required taking partial derivative of a quaternion with respect to another quaternion
  • Particle filter does not involve quaternions, only direct propagation
  • Each particle is a hypothesis of the robot’s position in the state space (x, y, z)
  • Finds the predicted position of UWB board for each particle
Particle Filter Algorithm
  1. Propagate all particles forward (with noise) by the expected motion of the robot
  2. Find the expected UWB measurement for each particle
  3. Find the probability of the expected measurement in the context of the actual measurement
  4. Resample particles proportional to their probability
Simulation in Gazebo showing TERRA rolling towards a goal of (x: 1, y: 1) with the particle filter being visualized in RViz. During the roll, the filter stops to avoid the need for a more complex motion model. With each roll, noise is added to the particles. The distribution converges as the filter begins running again.

ECE & ME Team Bonding Event

Please Leave A Comment!

Return to the top of the page