This page shows the results of our project, in a timeline fashion. We begin with the basic functionality of the electronics, which is to let the motors react to a sensed angle. From there on, we proceed with improving the control strategy and the angle filter.

Pendulum construction

Click to enlarge:

figure figure

Basic functionallity

The video below shows the basic functionallity of the robot: letting the motors react to the sensed angle.

Balancing with badly tuned filter

The video below shows our robot trying to balance with a badly tuned angle filter. As can be seen, it is still pretty unstable, altough the hardware is functioning correct. We just need to tune the filter a bit, and then our Wheeled Inverted Pendulum should be able to balance itself.

In the picture below the output of the filter is shown. Click to enlarge:


To be continued...

At the moment when we uploaded this webpage, we weren't able to tune our filter correctly and interconnect Matlab GUI and Android application with our Inverted Pendulum robot.

This was caused by the international character of our team. During last period every member of team was in different country so final completing and debuging was not really possible for all members, since only one group member had access to the robot. We encountered a problem with the connection of our Matlab GUI and the Bluetooth module, because the GUI was written on a different computer, and we weren't able to solve this in time. Because of this we had no access to realtime measurements of our robot's angle, which prohibited us of tuning the filter and controller well.

While we were trying to balance our robot, we stumbled upon a problem which we had not forseen. Even if we could tune our sensors filter well, due to the noise in our controlling system (from sensors to actuators), the robot would drift away from it's position when it's trying to balance, because we don't have any position feedback from the motors. When we discovered this, we made a small upgrade to our motors, by adding axis encoders. We are currently trying to implement this feedback in our control loop to enhance the stability of our robot.

However we will try to complete the next parts of our project in the time that is left until the final presentation:

  • Measure data in realtime
  • Balancing the robot with a tuned filter and control loop and axis encoder data.
  • Controlling the robot with Matlab GUI
  • Controlling the robot with Android App

Future improvements

To make our pendulum more autonomous, a few hardware improvements are possible. By using the axis encoders, the robots travelled path could be recorded and plotted in the GUI. Other sensors (like ultrasonic) could be added for more advanced features (like obstacle evasion). The hood of the robot could be modified to carry something on it, for example a cup of coffee, which could be guided to the user.