Category Archives: Arduino

Obstacle avoidance robot

This is my attempt at building a really good obstacle avoidance robot. The robot is built to drive around a normal indoor environment without getting stuck on stuff. The robot uses an Arduino Maga 2560 and several sonar sensors to detect obstacles.

This robot also has a Raspberry Pi and camera module, that will be used for computer vision experiments in the future.

More info about this robot on the obstacle avoidance robot page

Obstacle avoidance with the Prototype Rover 1

I have built an obstacle avoidance robot I built to test a few ideas I had and learn more about what it takes to make robot robot that can navigate around an indoor environment without getting stuck on things. I will also use this robot to experiment with line following and maybe line-maze solving in the future.

You can reed more about this new robot here: Prototype Rover 1 page

Balancing robot rebuild

I have rebuilt my balancing robot. The reason was that I wanted to fit more sensors and functions, and there where no space for that in the previous design. I have also rewritten all the code and replaced the Kalman-filter I previously used for angle estimation with a complimentary filter instead. This in combination with a higher center of mass have made the robot a lot more stable and tolerant against pushes and other disturbances.

A Kalman-filter should work better than a complimentary filter, but the Kalman-filter is a lot more complicated. Since I do not understand exactly how the Kalman-filter worked, it was to hard for my to tune it properly. The estimated angle of the robot was reacting to slow. My current solution with a complimentary filter is much more responsive. That allowed me to increase the parameters of my PID regulators to make the robot more stable.

IR sensors on the self balancing robot

This video shows some new IR distance sensors I have installed on my self balancing robot robot. The IR sensors are short range (5-10 cm) and should prevent the robot from running into things that the main ultrasonic sensors miss. The video also shows two servos I have installed under the robot. They are not connected yet, but they will later be used to raise the robot up again if it falls over.

Balancing robot simple autonomous behavior

Made a new video demonstrating how my Arduino based balancing robot can enter balancing mode by itself. The video also shows the robot doing basic obstacle avoidance using its tree ultrasonic rangefinders. The obstacle avoidance if currently done by one of the Arduinos, but this a typical high level function that will later be handled by the Raspberry Pi.

Balancing robot update


I have made some progress with the self balancing robot. The speed of the motors is now controlled using two cascaded PID regulators. One regulator adjusts the speed of the motors to maintain a setpoint angle. The other PID regulator adjusts this setpoint angle according to a setpoint speed. This new control system allows the robot to return to its original position when disturbed. The robot can also find a new angle for balancing if the center of gravity is moved, or the robot is standing on an inclined plane.

In this video I use the Raspberry Pi for a very basic form of remote control. I connect to the robot using SSH, then I run a serial terminal program on the Raspberry Pi to send ascii characters the the main Arduino. The video also shows an example of video and photo quality from the Raspberry Pi camera.

The three ultrasonic distance sensors and the tilt servo for the camera module are not connected yet…

More info about this project here

A new robot project

It was about three years since last time I built a robot. I have learned a lot of things since then, now it is time for a new robot project. Now I have built a self balancing robot based on Arduino. This robot uses stepper motors, the balancing is done using a PID regulator. In this video, the setpoint angle is adjusted proportionally to the speed of the motors to keep the robot from drifting away. Later I will add a second PID regulator for this instead.

Currently the robot can only stand still, but this will be a platform for more experiments in the future. There is a Raspberry Pi 2 installed in the robot. Right now it does nothing, but it will bu used to persorm higher level functions like navigation, obstacle avoidance, remote control and maybe computer vision using the raspberry pi camera module.