As mentioned in the previous post, the first prototype of the spherical rolling robot was based on a hamster drive system and is a little wobbly. I decided to use an axle drive system instead. The axle is rotated using a continuous servo. In order for this to work, the axle has to have weights below the center-of-gravity. Otherwise, if the internal system is lighter than the outer sphere, the entire internal drive system will start spinning around instead of the outer sphere.
The batteries conveniently serve as the weights for the spherical rolling robot which prevents it from spinning, thus causing the sphere to spin instead. The Arduino is placed nearer to the bottom instead of on top of the axle platform so that it is heavier at the bottom. The batteries also serve as a counter-weight to tilt the robot using another servo, hence turning the robot in the direction that the weight is tilting towards.
This method seems to be more controlled and works better than the hamster drive system. There are other quirks that come with this systems. The spherical rolling robot will rock back and forth when it suddenly stopped rolling due to the counter-weight. This can be resolved using an IMU to counter the rocking motion and accelerating/decelerating the rolling robot when moving and stopping. However, that will make the coding workshop too difficult for the kids so I decided to leave that out.
Next, I will be adding a head to the spherical rolling robot that is attached using a magnet. The head should be light. Otherwise, it will cause the rocking motion to be worse or it might even drop off.
In the next post, I will show how the spherical rolling robot looks like with the head mounted. This is just one of the many robots that I will be building for the Coding for Kids workshops conducted by IXEN Robotics Singapore and hope to share the build process for those robots as well.