Saturday 11 October 2014

Integration of Subsystems on the Software level

This post we will be talking about integrating the all subsystems on software level. As a whole, we are using 3 arduino boards.
                                Board 1 - Robot Arm and Hand
                                Board 2 - IR Sensors on the Robot Hand
                                Board 3 - Glove (Vibrational Motors)

Shown is the overview of how the user control the robot remotely. Setting up the server is discussed in detail here.
Figure 1 - Overview
Thanks to Johnny-Five library integrating these subsystems was really easy. Using multiple boards in one Javascript is elaborated in this post. All three boards are synchronised so that they execute commands every 250ms.

Controlling the Arm and Hand together was unreliable as the leap motion data does not provide accurate results when the hand is near the limits. Only the results of finger tip positions were distorted. Distortion of the fingers doesn't effect on the Arm as we are only using the information on the palm to calculate the joint angles using Inverse Kinematics. As mentioned with the new leap motion skeletal tracking we can see how the leap motion sees our hand is. Low Confidence value means hand is more distorted. We clearly noticed this when our hand is in the limits of the leap motion. Confidence can be found using this code. 

Figure 2 - Distorted values. Low Confidence Value
When the hand is straight up above leap motion it gave a perfect confidence value of 1.

Figure 3- No distortion. Confidence = 1
With these results, we decided to control Arm and the hand in two modes. First the user controls the arm, with one hand. User moves the palm to the decided position so that the arm mimics the movement including the wrist gestures. Once that's done the user inputs the other hand (both hands enabled) and the robot hand is activated and the arm is disabled. This enables the user control the hand precisely even the arm the moved to its limits (even though we moved the arm to the limits of the leap motion). 

Overview of the software implementation is shown from this flowchart. 

Figure 4 - FlowChart

No comments:

Post a Comment