This project is for development of self balanced (inverted pendulum) home robot. I'll add camera, sensors and smart speaker to move around my home and support my family as an robotic servant, or home robot.
First I assumed that higher center of mass will be easier to control Whipbot's posture, analogy to make a broom stand on my palm (in my childhood, I realized higher, and heavier center of mass was easier...).
However in those case : when I mounted the battery on top of the bot, it wouldn't stand. I even prepared PID gain tuner by GUI slider indicator, but I couldn't reach to the optimal set of the gains.
I accidentally reached to stable gains when I changed battery mount points to lower of the bot. The bot became much calm and proof to a little noise such as being pushed by my finger.
But still it's not so robust since when I mounted another battery as a dummy weight, the bot easily fall down! This experiment was conducted so that I can predict what will happen when I install other sensors and actuators to have the bot as a HOMEROBOT!
The reason why this bot is unstable in bigger payload, I think, is a low maximum rotation speed of the motor : 46 rpm at no load! To recover upright when the bot is tilted, it have to be accelerated to get inertial momentum, that means wheels are accelerating. But maximum rotation speed are low, so the period that acceleration can be applied is too short to recover the bot's posture.
Now I'm planning to replace current motors with high power motors!
I mounted Lambda Plus : arduino compatible MCU with IMU, serial - USB converter for serial commanded servo, up board:single board computer for future development, and lithium polymer battery.
Now I'm having struggle in tuning PID gains to make it stand.
I manufactured servo brackets by 3D printer to arrange servos to frame. Previously mentioned, main parts of the frame are made by aluminum frame by Makeblock.com.
Servos are connected by serial, or daisy chain. This servo, B3M-1170 by Kondo Kagaku Inc. has IDs manually assigned so that users can control a particular servo by identifying its ID while there are multiple servos.
I purchased robot wheel, with TPU tread, 6 inch diameter. Maximum rotation speed of the servos are 46rpm, mean that maximum speed of the robot will be about 0.36 m/s ( 1.1 km/h approx.). Its quite reasonable to be used in my room since my wife is agile enough to run away from the robot rushing in to her.
I'm not sure is it fast enough to recover its posture when it crushed in to obstacles? But the servos are quite powerful, 4 Nm at rated torque, and have low inertia with core-less motor, so i'm not so pessimistic about this concern.
Next time I'll mount my electronics to this platform.
I searched other parts such as wheels so that I can assemble basic platform for my robot, and reproduced them in 3D CAD. It is helpful to build up concrete image for consideration of arrangements on electronics, sensors, batteries etc.
Unfortunately there was no suitable servo brackets to arrange servos to the frame, so I designed by my own to manufacture them by 3D printers.
I started to build my own robot. Previously I experienced building remote controlled tank type robot (attached, it was shot before I mount electronics, though... )
For next step, I get having idea to build my self balanced robot, since the tank robot was a little bit boring because it was too easy to operate, too easy to mount new payload.
The tank was remote operated, but this step, I'll going to implement autonomous driving around my room !