IMU-based robot pole balancing
Bachelor--Thesis at group TAMS
Motivation
Balancing a pole on the palm of the hand is an efficient demonstration
of human non-prehensile manipulation and eye-hand coordination skills.
The task has also become one of the most popular demonstrations of
reinforcement learning approaches,
as success and failure (pole falling down) can be detected easily,
and definition of the state and action spaces is straightforward.
However, most demonstrations are restricted to the 1-dimensional version
(cart-pole) and/or are in simulation only (e.g. OpenAI gym).
In this thesis, we will try to implement autonomous pole-balancing
as a demo for one of the robot-arms at TAMS
(either PA-10, UR5/UR10, or the Trixi/PR2).
While previous balancing demos on robots have used visual tracking
of the pole, we will try use IMU data from an IMU fixed to the pole.
Hardware design
The existing hardware setups consist of a robot-arm and optionally
cameras observing the robot workspace.
Design and construction of the balancing pole with IMU sensor,
microcontroller (e.g. Arduino or ESP 32)
and host communication (e.g. serial/USB or WiFi/UDP)
are the first part of the thesis.
Depending on the chosen setup, additional hardware (e.g. switches
for detecting the pole weight, or wires/mechanisms to catch
and lift a falling/fallen pole) might be needed.
Software design
The design of the overall software architecture is the second part of the thesis,
and probably will include three main components:
- simple microcontroller firmware to initialize, calibrate, and sample
the selected IMU-chip, and possibly on-board sensor-fusion for pose tracking,
- a ROS-based setup for real-time control of the robot-arm
(these components exist but must be configured according to the task),
- additional host software to convert IMU readings into the object pose of the pole,
and a machine learning setup to train the robot motion based on sensor input.
Reinforcement learning
The third and most important part of the software architecture is the
actual machine learning of robot skills based on the collected sensor inputs
(including IMU, robot proprioception, vision).
This could use either classical RL algorithms based on discretized table-based
state/action spaces or deep networks trained on actual sensor measurements.
Thesis Goals:
- microcontroller firmware for sensor readout and WiFi transmission
- software setup integrating a reinforcement learning architecture
with real-time control of a robot-arm,
- basic host software (python,C++) for data analysis and visualization
- collect ideas and experiment data leading to a publication
Requirements
- interest in working with a real robot arm
- basic knowledge of robot control (e.g. Introduction to robotics lecture)
- basic knowledge of reinforement learning (e.g. ML course)
Contact