The robotic arm is now fully operational. It has 6 Degrees of Freedom and can be controlled remotely from any laptop running the interface software.The robotic hand is capable of simple tasks such as lifting and carrying small objects. I have attached a wireless AV camera to the robotic hand. A human operator can now “see” what the robot is doing and issue commands accordingly over the wireless data link.
This project brings to fruition 3 components that I have been working on:-
3. 6 DOF Robot Arm powered with a 6V 5A DC external power regulator.
How Balance Works:-
In teaching a robot how to stand straight and not fall over, we need to understand how balance really works. Balance is something we take for granted in our daily lives, most of us are actually pretty good at it, until we have had a little too much to drink.
Here is how I think balance (writ easy) works:
1. We need a sensor that tells us how ‘upright’ we are standing. In humans, this sensor is located in the inner ear. In a robot, we could use a sensor like the MPU6050 which can be used to provide tilt in two axes just by directly reading from its registers.
In this earlier post, I had documented a Serial Communications Class for data transfer with an Arduino device in the Qt environment. While it worked OK for transferring data at slower data transfer rates, it couldn’t handle fast communications with the the Invensense MPU6050 IMU. Also, that version had a lot of other problems:-
I have been learning Qt for a while now, and one its features is the very powerful concept of SIGNALS and SLOTS. I have become very dependent on the signal-slot mechanism and I use it liberally in the projects that I play around with.
Having experimented with the Arduino, and having gotten quite familiar with the basics, I needed a way to port Arduino data into the Qt environment so that I could do more complex stuff than the Arduino’s 32KB memory onboard memory would allow. Most examples of porting Arduino data to a PC are implemented with the processing programming language . Programming in processing is quite simple to learn, and easy to distribute when you’re done. But processing is doesn’t have a very well developed GUI and I needed a way to connect my Arduino into the Qt environment because I really like the signal-slot mechanism.