Barycenter Offset Locomotion Mechanism For Cylindrical Robots

Open-source remote-controlled robotic cylinder uses Barycenter offset locomotion mechanism


Rings materialClear acrylic glass
Total mass 1.7 kg
Moving mass150 g (9%)
Maximal speed1.03 m/s
Maximal slope
Power supply3 AA batteries
Maximal energy consumption0.67A
Theoretical autonomy in standby9.8 hours
Theoretical autonomy rolling3.7 hours
Control typeThrough a web page


This tech spec was submitted by Chrisanthemum Wadwadan as part of the University Technology Exposure Program.

Problem / Solution

In the past twenty years, spherical robot research has gained popularity. Despite their extensive application, these robots have an internal driving system with wheels mounted to a hard exterior shell. Another method, known as a "gravity offset mechanism," has been created. It allows for the displacement of the robot's center of mass, which causes movement. Additionally, there have been reports in the past about various spherical robot designs that use barycenter offset mechanics. These robots can turn in position or move in any direction at any time. However, only a few methods lead to a balanced robot that can roll with less energy once accelerated.

The study proposes an open-source, remote-controlled, and robotic cylinder. The robot is equipped with a mechanism that enables the displacement of the mass in its center, which causes the cylinder to roll forward or backward. The research focuses on the cylinder's movement properties, particularly its mathematical and physical constraints. A simple user interface on the robot's WIFI controller also allows for wireless control. The robotic cylinder is appropriate for teaching physics and engineering because it was made with readily available, low-cost materials. Additionally, it can precisely manage a cylinder's motion and displaces the mass inside of it using three servo motors. In addition, the paper's robot design is inexpensive and simple to construct with widely accessible components.



The research concluded that the easiest method to construct a cylinder for the robotic cylinder is to get two rings with the exact dimensions and connect them with rigid bars. To maintain efficiency, extra materials on the ring are removed because doing so reduces overall inertia and enables the ring to produce higher accelerations. The center of the back ring also features a perforated platform that makes it possible to fix the electronics quickly. The robot is more balanced thanks to the setup described above. Brass is used for the bulk in the core of the robotic cutter because of its high density and ease of processing.

Additionally, the design uses a Cylinder ring composed of inexpensive, 6 mm thick acrylic glass that can be simply laser-cut. The mass to servo motor connection is additionally set up for this application because the available servo arms are not long enough. Three small brass masses are incorporated into the radial slots to guarantee that the center of mass is at the geometric center of the back ring. This allows, for example, to account for the slightly asymmetrical and off-center electronics.



A Raspberry Pi Zero W is used to manage the robotic cylinder since it has enough memory and speed and, when properly configured, can act as a hotspot. The controller enables the project's user interface (UI), mathematics resolution, and motion control to be implemented in a single programming language, JS. The device's orientation and acceleration along the cartesian space dimensions are provided by a gyroscope combined with an accelerometer, which is incorporated into the design to assess the speed and direction of the cylinder. The MPU5060 circuit is employed in the design because of its low cost, portability, and precision. A PCA9685, a Pulse Width Modulation (PWM) controller controlled by I2C, is used to operate servo motors. Four MG995 high-speed servo metal gears were used to maximize the design's performance because of their high stall torque of 9.5 kg/cm to a weight-to-voltage ratio of 55 g.

Further, the Raspberry Pi device is protected by a printed circuit board. Additionally, the board has been configured to include all necessary I2C peripherals, such as an I2C motor driver and an IMU. This board ensures less clutter and greater reliability than a breadboard and wire setup.



For the main programming language to be used, JavaScript ECMAScript 6 is chosen. Two primary functions are built into the robot's programming. The mass m will be fixed on a line through the center of the cylinder and perpendicular to gravity due to the IMU orientation data. It is primarily programmed to move smoothly forward and backward. Additionally, the mass can be moved in one direction away from the cylinder's center while changing the radius to get the maximum possible forward or reverse acceleration. The robot can also run a PID algorithm to stabilize itself, allowing the cylinder to stay put on a slope that varies between 0° and 3°. The PID coefficients are set using a trial-and-error method to minimize oscillation visually.


A research paper describing the challenge, design, and outcome of the research.

Oc´eane Patiny

Wevolver 2023