I am developing an inverted pendulum that uses a differential drive robot as base. The goal is to create a benchmark to practice my control using ROS, so I can implement what I learn on the Modern Control Engineering (5th Edition) [Katsuhiko Ogata] , and other books and Journals.

However, I am running into problems because of my lack of experience.

My hardware is composed of 2 Nema 17 stepper motors, 1 Energizer XP18000 as main battery,2 Motor Drivers DRV8825, 1 Arduino Mega, 1 Raspberry Pi 3, 1 Honeywell rotary Encoder 600 series.

I originally tried to do something similar to the b-robot but it ended being better to build a cart for benchmark because it is more stable and I can use an encoder to know the position of the rod.

The problems are:

  • low torque and too much mass, the robot is slow due to inertia.
  • Arduino Mega, and basically any AVR microcontroller is too slow for Real-Time, the fastest I can communicate with Raspberry Pi3 is 30Hz.

I am thinking to do these changes:

  • Change the Arduino by a Nucleo Mbed board.
  • Running the Raspberry pi on non-gui or snap like the ubuntu core, but with Ubuntu Mate.
  • Change the motor for DC or Servo motor.
  • I need to redesign the robot structure, making it small and light.

I would like advises on which hardware select for developing a precision robot. Which motors and motor drivers. If Nucleo boards would work well. This kind of things.

I also would like to know the best practices for programming the controllers for ROS.

I attached an image of the robot.

This is the robot

  • $\begingroup$ If the dynamics are too fast you should use a longer rod (but by looking at your picture it seems it should be long enough). Instead of using a more powerful motor you could also add some counter weight below the axis of rotation. This does mean that you would need more space below the axis. $\endgroup$
    – fibonatic
    Aug 20, 2017 at 10:52
  • $\begingroup$ My Inertia ratio is pretty bad, and adding a counter weight would be the opposite of creating a demonstration of a controller in action. My biggest doubt is about how to buy a servo motor, it is so complicated because it also includes buying a nice motor driver. I am having all sorts of difficulties with machine design, since I have lots of uncertainties in this project. $\endgroup$ Aug 21, 2017 at 18:46
  • $\begingroup$ I am not saying that the counterweight should completely balance the inverted pendulum. Also if the inertia ratio is bad you could also try to add weight at the top of the pendulum (and maybe use a thinner rod). $\endgroup$
    – fibonatic
    Aug 22, 2017 at 11:32


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.