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.