I've been interested in robotics for a while and have always found it difficult to program them. The mechanics of writing the code, setting up interfaces etc was easy. It was making complex motions that I found quite time consuming because of the trial and error to mapping servo movements.
I came up with the idea to build a basic framework the interprets what I want the robot to do. The Smart Servo Controller is my project. I've started a kickstarter campaign for it and hope that it might help some people overcome the challenges of programming robotics.
To test how effective the board is I ordered a servo bracket kit off ebay and build a 12DOF biped robot. I ordered a 6 channel RC radio from hobbyking and used my control board as the glue. I mapped the input and outputs in a way that lets the robot walk.
Check out the youtube link to see the robot walk. The second video gives a glimpse into how easy it is to use the "programming" environment. I still have to make the robot walk, you can see me moving the hand controller, but those are relatively high level commands.
If you guys have any questions just let me know and I'd be happy to respond. I'd like to invite you to like my facebook page and share the project with your friends if you find it interesting. https://www.facebook.com/smartservocontroller
I think you are onto something with this project. Trying to write in C a program to control a bot to do complex and fluid motion is a daunting task to say the least.
I like that someone with little to no programming experience could get a simple robot working quickly. It appears to be dead nuts simple and allows some fairly complex motions.
I didn’t see any way to communicate with the controller except through the USB. Am I missing something? If so, what protocol could be used? How best would you connect a RasPi or PC to your controller?
There are two options to communicate with other microcontrollers:
The first and simple one is to use one of the standard input channels and accept either PWM or on/off commands. These could be used to trigger a stored animation or map to output servos. That is how I used the RC radio receiver with this project.
The other option is to connect to the gray header on the board. It is wired up to a serial IO port on the microcontroller. From that you have pretty much full control of reading the inputs and setting the outputs. You can have an option to mix your output value with what the controller is doing internally or override the output. More complicated but also more powerful.
Thanks for getting back to me. I was thinking of this to control an arm with a grasping hand coupled to a RasPi. I think it will do the trick very nicely.
I am looking forward to playing with it. Good luck with your Kickstarter.