Standard Robotic Library
March 30, 2013
I remember back in the late 1990s when the Standard Template Library for C++ came out. It made things that took days or weeks into mere hours to solve. It was a revolution in thought, a mind blowing leap forward.
I was thinking about robotics as I was driving home today, and it occurred to me that there seems to be a lack of standard libraries to solve standard programming problems. To control a robotic arm, inverse kinematics library. Put the number of arms, length of each arm, depth of the elbows, voila, you can control the arm. How about a mapping algorithm for a wheeled robot that needs to cover an area (robotic lawn mower or iRobot Roomba-like bots)? Put in the turn radius for the robot, length, width, axle length, etc and it will make a map of what it runs into. Want a balancing robot? Here's a library to make it balance. Want to do some control of a heater? Here is a PID library. Have an encoder on that wheel? Put in the distance per pulse, pins for led and pulse from emitter, how often to query the emitter, voila distance. Learning algorithms? Artificial intelligence?
I am new to robotics, so maybe I am missing some resources. But it seems that these sorts of algorithms written in an object oriented way with a standardized approach would go a long way towards making robotics more attainable and usable by more people. None of this stuff is really rocket science. We need reentrant, object oriented code with a small footprint. Pick and choose what you need, put the pieces together and it does what you want. The Arduino seems to be the processor of choice so an SRL for Arduino would be great.
And if it doesn't exist, all of us should work together to create this kind of repository of code on LMR. Look at the open source movement and the impact that has had with Linux. We really could change the world.