OmBURo

Omnidirectional Balancing Unicycle Robot

Overview

OmBURo

The Omnidirectional Balancing Unicycle Robot (OmBURo) is a robotic system developed at the Robotics and Mechanisms Laboratory (RoMeLa). OmBURo is a robot that was designed as a mobility mechanism in tight spaces shared with people. In order to operate in the close-spaced environment, OmBURo operates in the close-spaced environment with humans by moving omnidirectionally and dynamically balancing based on the principle of dual-axis wheeled inverted pendulum. OmBURo uses a pair of servo motors to drive one large wheel and a set of rollers along the circumference of the large wheel, allowing for omnidirectional movement. Additionally, by using a single wheel for mobility, OmBURo is capable maneuvering dextrously with a small footprint, which is invaluable in tight-spaces. Without using additional motors or other hardware components to the system, I extended the work on OmBURo by analyzing the dynamic factors that influence the orientation, specifically the yaw, of OmBURo and designed a cascaded multi-loop controller to track a desired yaw rate, using a dynamic phenomenon called gyroscopic precession.

Gyroscopic Precession

Gyroscopic Precession

Gyroscopic precession is the relationship between the angular momentum of an object and the torque applied to it.

Figure 1: (Left) Precession, external torque, and angular momentum shown on a coin. (Right) Leaning of the coin can be seen in a 2-D view.

I first analyzed this phenomenon on a simple coin (Figure 1) rolling down a surface and extended my analysis to OmBURo (Figure 2). Check out my publication for more indepth derivations on the dynamics.

Figure 2: Model of OmBURo moving longitudinally (X direction) while leaning laterally (Y direction).

Cascaded Multi-loop Controllers

Figure 3: (Top) Loop for controlling both wheel angular velocity and body pitch. (Bottom) Loop for controlling body yaw rate and body roll.

The dynamic analysis of the models shows a relationship between the angular velocity of the wheel, roll, and yaw rate of the body. The yaw rate can be controlled by maintaining a constant wheel angular velocity and regulating the roll. As balancing needs to be simultaneously regulated, a cascaded multi-loop control architecture is used as seen in Figure 3 (Top) to control both wheel angular velocity and pitch. The yaw rate and roll are controlled using the same control structure as seen in Figure 3 (Bottom), but with different gains. All the controllers are PID and PI controllers.

Results and Discussion

First a simulation of a coin rolling was built to verify the dynamic analysis. Below is a simulation of a coin in PyBullet, where the coin was accelerated for one second and then only affected by gravity afterwards. Figure 4 (Bottom) validates the theoretical derivation of the coin’s precession.

Coin Rolling Simulation
Figure 4: Coin Simulation

A simulation of OmBURo was built to repeatedly test and assess the feasibility of the approach (Figure 5). An environment was built using Pybullet.

Figure 5: OmBURo model
OmBURo Simulation

Gaussian white noise was added to the actuator and IMU readings to mimic the hardware as best as possible. The timestep of the simulation was set to 1/240. Due to the limitations of the simulation, there is a key difference in the actuation approach compared to the hardware implementation. Rollers and the wheel are driven separately unlike in the hardware implementation which uses a differential drive method to run the wheel and motors.

To begin with, to verify the derived dynamics of OmBURo’s gyroscopic precession, an expected yaw rate calculated using OmBURo’s yaw rate relationship is compared to the ground truth yaw rate from the simulator. OmBURo is commanded to track a given desired longitudinal velocity and roll orientation to collect sensor data to calculate an expected yaw rate based on OmBURo’s yaw rate relationship. When compared to the ground truth yaw rate as seen in Figure 6 (Bottom), the results clearly show that the derived dynamics are sufficient for describing OmBURo’s gyroscopic precession.

Figure 6: (Top) Roll of the body during a given turn. (Bottom) Comparison of the calculated yaw rate with the ground truth (i.e. simulated) yaw rate. Longitudinal angular velocity is 2.48 rad/s.

To reach a given desired yaw rate, as precession is a function of angular momentum, it is important to first be able to track a desired wheel angular velocity. Figure 7 (Bottom) shows a reference wheel angular velocity, which the proposed cascaded controller tries to track. Note that the actual angular velocity is decided based on robot’s pitch orientation. Hence, the wheel angular velocity controller feeds the reference pitch angle to the orientation controller, which when tracked well, will result in the desired angular velocity. We can see that the resulting wheeled angular velocity is tracked well. Interesting to also note is that like other unicycle robots, an initial retrograde can be observed at 2 seconds in the wheel angular velocity when given a desired pitch.

Figure 7: (Top) Pitch (i.e. orientation) of the body required to induce a wheel angular velocity. (Bottom) Wheel angular velocity controller is able to track a desired velocity indirectly through the orientation controller.

Once a steady wheel angular velocity is maintained, the yaw rate controller is turned on to track a given rate as seen in Figure 8 (Bottom). Rather than an instantaneous increase to some non-zero desired yaw rate, a ramp reference is given to avoid causing unnecessary instability to the system. We can see from the results that the cascaded yaw rate controller is able to track a given reference yaw rate.

Figure 8: (Top) Body roll. (Middle) Wheel angular velocity slowly decreases to zero to minimize drifting behavior. (Bottom) Comparison between the desired and actual yaw rate.

However, note that at higher angular velocities, there are limitations with a simple PID approach due to the inherent mechanical configuration of the platform. Because OmBURo is able to move omnidirectionally, its complex coupled dynamics make it much more sensitive to the fluctuations in the variables than conventional unicycle robots. Hence, though the general shape of the desired yaw rate is achieved, when moving faster, the desired yaw rate is not accurately tracked as seen in Figure 9 (Bottom).

Figure 9: (Top) Body roll. (Bottom) Comparison between the desired and actual yaw rate for a faster wheel angular velocity.

Additionally, a key difference between OmBURo and conventional unicycle robots can be observed during faster turns, where OmBURo “drifts” like a car. As seen in Figure 10, OmBURo’s trajectory is unlike that of a conventional unicycle robot, where they are required to be facing the direction they are traveling. While on this path, the force balance performed on the roller in contact with the ground in the lateral direction reveals that centrifugal forces are only partially countered by friction. Part of the centrifugal forces are balanced by the angular acceleration of the rollers. The increase in roller angular velocity affects the yaw rate. Consequently, the increase in yaw rate produces a larger centrifugal force, causing more roller angular acceleration. Hence, OmBURo is destabilized by this cycle of coupled dynamics, making yaw rate tracking difficult, and eventually will fall down.

Figure 10: Unlike a conventional unicycle robot, the heading angle (black arrows) does not need to be aligned to the direction of travel, resulting in a ``drift"-like behavior.

The reason the proposed approach may still work at lower velocities is because of torsional friction force helping lessen the problems caused by the cycle of coupled dynamics, even though the dynamics derived indicate that a decrease in the wheel angular velocity would increase the yaw rate. The gradual decrease in angular velocity seen in Figure 8 (Middle) helps dampen the yaw rate even though the roll seen in Figure 8 (Top) is very similar to Figure 9 (Top). By making the angular velocity reach zero at the end of a commanded reference yaw rate effectively stops OmBURo from turning, as gyroscopic precession is no longer valid.

Additionally at this point, the aforementioned drift could also be addressed. The roller angular velocity controller can be activated to address drift with minimal change to the yaw state as the robot is no longer moving longitudinally. This would eventually let OmBURo instantaneously come to a stop, bringing OmBURo back to a state where it can again track a given yaw rate to reach a final desired yaw. Note that dealing with drift during turning is a unique behavior that exists due to OmBURo’s mechanical design and a different approach to address it could also be developed and appended after the proposed yaw rate controller.

References

2020

  1. OmBURo: A Novel Unicycle Robot with Active Omnidirectional Wheel
    Junjie Shen, and Dennis Hong
    In 2020 IEEE International Conference on Robotics and Automation (ICRA), 2020

2018

  1. A mass-produced sociable humanoid robot: Pepper: The first machine of its kind
    Amit Kumar Pandey, and Rodolphe Gelin
    IEEE Robotics & Automation Magazine, 2018
  2. Steering Control Method for an Underactuated Unicycle Robot Based on Dynamic Model
    Hongzhe Jin, Yang Zhang, Hui Zhang, and 4 more authors
    Mathematical Problems in Engineering, 2018

2016

  1. Speed and balancing control for unicycle robot
    M Anfa’ur Rosyidi, Eko Henfri Binugroho, S Ekti Radin Charel, and 2 more authors
    In 2016 International Electronics Symposium (IES), 2016
  2. Unicycle robot stabilized by the effect of gyroscopic precession and its control realization based on centrifugal force compensation
    Hongzhe Jin, Tianlu Wang, Fachuan Yu, and 3 more authors
    IEEE/ASME Transactions on Mechatronics, 2016
  3. Development and control of a unicycle robot with double flywheels
    Surachat Chantarachit, and Manukid Parnichkun
    Mechatronics, 2016
  4. Pybullet, a python module for physics simulation for games, robotics and machine learning
    Erwin Coumans, and Yunfei Bai
    2016

2015

  1. Point-to-point motion control of a unicycle robot: Design, implementation, and validation
    Yusie Rizal, Chun-Ting Ke, and Ming-Tzu Ho
    In 2015 IEEE International Conference on Robotics and Automation (ICRA), 2015

2014

  1. Kinect-based people detection and tracking from small-footprint ground robots
    Armando Pesenti Gritti, Oscar Tarabini, Jérôme Guzzi, and 4 more authors
    In 2014 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2014

2013

  1. Analysis and design of a passive steering mechanism for a pedaled, self-balanced, personal mobility vehicle
    Jian-Hao Hong, Chun-Feng Huang, Kuan-Ying Lu, and 1 more author
    In Proceedings of the 2013 IEEE/SICE International Symposium on System Integration, 2013

2010

  1. Balancing control of a unicycle riding
    Zhiyu Shao, and Daliang Liu
    In Proceedings of the 29th Chinese Control Conference, 2010

2005

  1. Dynamic analysis of a nonholonomic two-wheeled inverted pendulum robot
    Yeonhoon Kim, Soo Hyun Kim, and Yoon Keun Kwak
    Journal of Intelligent and Robotic Systems, 2005

1995

  1. Modelling and control of nonholonomic mechanical systems
    Alessandro De Luca, and Giuseppe Oriolo
    In Kinematics and dynamics of multi-body systems, 1995

1994

  1. Trajectory tracking control for navigation of self-contained mobile inverse pendulum
    Yunsu Ha, and Shinichi Yuta
    In Proceedings of IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS’94), 1994