Chanomi

In the last semester, I had the course called Cyber Physical System. The name sounds cool, and I made the robot for the final project. That was a lot of work, probably the most I have ever experienced at the unviersity.

I leave the summary of the project here.

gif

References

  • GitHub Repo: The repository contains all the 3D models and the source code.

  • Report (JP): The report I wrote in Japanese for some reasons.

Summary

The project was conducted as a part of CPS (Cyber Physical System) at TUM.

A team that consists of 4 students with the budget of 500 EUR to make “something related to CPS”.

In my project, we gained the inspiration from “a Japanese tradinational art” called 茶運び人形(Chahakobi Ningyo), and tried to make a robot to carry a cup of tea. However, the point of the project is not at making the robot carrying something, but to keep the balance of the board with a cup of tea on it.

Details

image

The robot is entirely controlled by one Raspberry Pi 3B. Under the robot, the kit for a Raspberry-Pi-controlled car, and on top of that, there is the module printed after the 3D model on Autodesk 360 with 4 servomotors, metal joints, and sensors. Those two modules move independently.

Complementary Filter

There are two sensors, the accelerometer and the gyroscope. However, one of them is not enough to tell the accurate angle of the board on top. Therefore, those two sensors work complementarily.

PID Control

The angle of the board is treated as an error to be fixed, and the system tries to make it zero with the PID control.

Result

I managed to make a robot that tries to make the board horizontal, however, the accuracy was far from enough to prevent a cup of tea to spill.

The main reason from that is the quality of all the parts is terrible. The space between the parts or the bent makes the error larger, and it was not fixable.

Especially, the servomotor was quite cheap (~20 EUR), and that was almost impossible to set the arm to the designated angle. I tried to do some calibration on those, yet it had a large error.

The parts are also plastic printed by a 3D printer, and it made spaces and bent by the weight. It made the board on top quite unstable.

Those errors made the adjustment of the PID control difficult, and I had no option but to set the parameters low to avoid the oscillation.