Reinforcement Learning for Ballbot Navigation in Uneven Terrain

Achkan Salehi
5/23/2025
cs.ROcs.AIcs.LG

No official code found. Best implementation: salehiac/OpenBallBot-RL (22 stars, Apache-2.0, last commit 2025-05-27).

Abstract

Ballbot (i.e. Ball balancing robot) navigation usually relies on methods rooted in control theory (CT), and works that apply Reinforcement learning (RL) to the problem remain rare while generally being limited to specific subtasks (e.g. balance recovery). Unlike CT based methods, RL does not require (simplifying) assumptions about environment dynamics (e.g. the absence of slippage between the ball and the floor). In addition to this increased accuracy in modeling, RL agents can easily be conditioned on additional observations such as depth-maps without the need for explicit formulations from first principles, leading to increased adaptivity. Despite those advantages, there has been little to no investigation into the capabilities, data-efficiency and limitations of RL based methods for ballbot control and navigation. Furthermore, there is a notable absence of an open-source, RL-friendly simulator for this task. In this paper, we present an open-source ballbot simulation based on MuJoCo, and show that with appropriate conditioning on exteroceptive observations as well as reward shaping, policies learned by classical model-free RL methods are capable of effectively navigating through randomly generated uneven terrain, using a reasonable amount of data (four to five hours on a system operating at 500hz).

View on arXivView PDF

Code Implementations(1)

Apache-2.0

This repository provides a Mujoco-based ballbot simulator as well as Reinforcement Learning based tools to train/evaluate policies that allow the ballbot to navigate in uneven terrain.

223PythonMay 23, 20251 years agoApache-2.0
controlmujocoreinforcement-learningroboticssimulation

Similar Papers

Cite this paper

@article{salehi2025reinforcement,
  title  = {Reinforcement Learning for Ballbot Navigation in Uneven Terrain},
  author = {Achkan Salehi},
  year   = {2025},
  eprint = {2505.18417},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2505.18417v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2505.18417.svg)](https://codeofpaper.com/paper/2505.18417)

Discussion