Stair Climbing Robot – Group 11 – Report



As second year undergraduate engineering students, we got given a task to develop and make a robot that could drive around and climb stairs. For this project we had to team up in groups of three people. Every group would consist of two people following electro-mechanics classes and one person following electronics classes. However, due to circumstances our team only consisted of two members, who both follow electronics classes. So we, Tom Bronders and Axel Rombauts, had a lot of work on our hands, but we found our way through the mechanical aspects of this assignment and managed to complete it successfully.

Task description

The target of this project was to build a robot that would be able to drive around and get up the stairs, without exceeding the maximum dimensions of 350mm x 350mm x 450mm. This limitation was put upon us to prevent us from building a robot so big it would be able to simply drive up the stairs.


Before starting on our stair climbing robot, we first had to copy an example robot, which was a simple robot that had a cubic shape and could drive around. Making the example robot wasn’t very difficult, because all files used to make it were given to us, so we just had to put it all together and write some code to drive the robot. Although not being a challenge, putting together this robot gave us a chance to learn how to work with the machines used to make the required parts. The casing of the robot was built of 3mm thick MDF, which we cut out of large plates using a laser-cutter. The gears used in the robot had to be more solid and therefore were made using 3D-printers.

Once all components had been put together, we got to work on the electronics. This consisted of two H-bridge circuits, used to power the stepper-engine driving the wheels. All that rested us at this point was to write the code that would be used by an Arduino uno board to process input signals coming from a pc, so we could drive the robot. To be able to drive the robot without it being connected to a pc by a cable, we made an XBEE-shield PCB that was placed on top of the Arduino and made it possible to transmit signals from the pc in a wireless fashion.

Actual assignment

After completing this example robot, the time had come to think of a robot that would be able to climb the stairs. We started by searching on the internet for existing stair climbing robots and found some designs that could work for us. Based on these robots we designed our first model in inventor, which had three spokes in the front, each with a wheel on the end and a caterpillar track in the back to provide support for our casing. The three spokes in the front would be able to turn around their center point freely, so when the robot pushed itself against a stair, these spokes would turn over and get onto the next step.

However, when we were finished designing this robot in inventor and we had made a simple 2D-mockup out of a wood plank, which we presented to the assessors, it quickly became clear that our design wouldn’t work very well and was too complicated. So we started searching for another design that would be able to climb the stairs. Of course we had already found some other interesting designs, but these were already used by a lot of the other groups, so we wanted to make something different.


Because time was running short on us, we decided to adjust the design we had already made to something that would work better. The first adjustment we made was to take the wheels off the ends of the spokes and drive the spokes themselves with an engine. This way the spokes would turn around and grab the step in front of it and pull the robot up the stairs. These spokes were quickly replaced with circular wheels of a diameter of 35cm, each consisting of five hooks, which gave the robot a lot more grip on the stairs. The second big change was our support-point for the casing, which originally was a caterpillar track, but got replaced by a solid tail.

With these changes to the design made, we had to calculate the gear ratio we would have to use to make sure the robot could pull its own weight up the stairs. To make up for friction losses, we assumed the robot would weigh 4kg, which was a deliberate overestimation. After searching on the internet and finding that the DC-engines we were allowed to use have a torque of 40Ncm, we calculated a gear ratio of 1/14 was needed to sufficiently increase the torque being put on the wheels so the robot would get up the stairs.


We began designing this new concept, but soon enough encountered some difficulties. Wanting to keep the casing within the diameter of the wheels to protect the fragile components within, we tried to make it as compact as possible. However, the first time we put the robot together we concluded there wasn’t enough space to fit everything in. So the casing got widened and we made some mockups of all components in inventor, to check whether or not the newly designed casing would be big enough. At the same time, we designed a gearbox, to reach the needed reduction in two steps. Two gear ratios of ¼ would be combined to get a total gear ratio of 1/16, which was more than we calculated. This way we could be sure that the robot would be able to pull itself up the stairs.

Our robot being put together at last, we tested its stair climbing abilities, but soon enough came to the conclusion that our tail was too short to keep the robot stable. Making the tail longer however, would mean that the robot would be bigger than the allowed dimensions, which was allowed while climbing the stairs, but not while driving around. So we redesigned the tail and made it able to fold up, so the robot could drive around while being within the allowed dimensions. To be able to fold up the tail we used a servo, which is able to turn a certain amount of degrees, so we could easily hardcode the two stances we needed for the tail, opened and folded up.


After having tested the stair climbing capabilities of our robot once again, the tail still seemed to be too short and didn’t seem to provide enough stability. Quickly designing a longer tail, with a T form at the end to provide stability, we managed to get up a large enough part of the stairs to succeed our first real deadline.

With the first deadline succeeded, it was time to start work on the electronics of the robot. For this we originally used an Arduino uno and a breadboard, which resulted in a lot of troubles caused by cables getting loose. However, we didn’t want to make PCB’s yet, until we were sure our electronics was working perfectly. Also, the two DC-engines used to power the wheels didn’t seem to turn at the same speed, which was solved by putting an accelerometer on top of the robot, to control the power being sent to the engines, so the robot would be able to keep itself upright.

This solved a lot of our stability issues and made sure the robot would drive straight, but as soon as we connected the servo used to fold in the tail, another problem rose. The Arduino didn’t seem to be able to process both the signal coming from the accelerometer and the signal being sent out to the servo used to fold in the tail. This resulted in corrupted values coming from the accelerometer, which in its turn led to the robot becoming even more unstable than it was before. After having tried using insulated cables and powering the servo directly from the battery we still hadn’t found a solution to this problem, so we decided to use a DC-engine to fold in the tail instead.


Having finalized our electronics, we decided to start making PCB’s, which would solve the troubles of cables getting loose and made everything look a lot cleaner. Because of the simple way our robot functions we only had to make two PCB’s. One PCB with an H-bridge circuit to power the two DC-engines used to drive the wheels and one PCB that would power the DC-engine used to fold in the tail and that would read in the values of the accelerometer. We still had the XBEE-shield PCB we made for the example robot, so we had all the PCB’s we needed.

With the electronics finished the time had come to subject our robot to the final test: climbing up a staircase, driving towards the next staircase and climb that one as well. After some minor tweaks to our code, we managed to get the robot to work reliably and climb the stairs at a very decent speed, so we succeeded the final deadline. Our robot however is not able to get back down again, because of its weight distribution. This lost us some points in the end, but that didn’t matter too much.


After having completed the final presentations of the robot we decided to test whether our robot would survive falling down the stairs, as this was the only way it would ever be able to get down on its own. After landing at the bottom of the stairs, the only thing damaged was one of the wheels. So if we would have made the wheels sturdier, the robot probably would have survived this and would have been able to go down the stairs, albeit in a rather interesting way.


  • 3mm thick MDF plates
  • 3mm thick birch plates
  • 3 DC-engines
  • 1 accelerometer
  • 1 arduino
  • 2 XBEE’s (1 to transmit, 1 to receive)
  • 1 XBEE shield PCB (designed by Jannick Verbelen)
  • 1 H-bridge PCB
  • 1 PCB with half of a H-bridge and connections for the accelerometer
  • 5 M6 axles (cut to fit)
  • M6 bolts
  • M3 screws and bolts
  • ABS/PLA (used in 3D-printing)


  • Lasercutter (BRM-series)
  • Makerbot (3D-printer)
  • PCB cutter


  • Autodesk inventor (to make 3D models, which can be cut and/or 3D-printed)
  • Makerware (used to create printing files for Makerbot 3D-printers)
  • Altium designer (used to design PCB’s)
  • Software needed to use the machines

special thanks

We would like to thank our teachers who were very constructive and always able to help us. Also when they had their own projects at hand. Some of the ideas they gave us we used in our project. We also would like to thank some of our classmates who were also able to help us from time to time. Sometimes you just need someone else to find a problem you were searching on for more than an hour. But this project wouldn’t be possible without a fablab with 8 3D printers and 3 laser-cutters. So thanks to the school giving us the tools and material to make this whole thing possible.


For questions and experiences please contact us via mail.

Tom Bronders


Axel Rombauts




Leave a Reply

You must be logged in to post a comment.