Archive for May, 2012

Get a grip on!

Following Rosen’s suggestion, I used the TaskManip interface to perform grasp planning, and here’s the first look at the ER4U grasping an object. Yes, you read that right, I’m getting agonizingly close!

The next thing I’m going to implement is introducing a couple of placeholders to define the start and end positions of the target.

Hopefully, I’ll also be able to add a IP based target tracking plug to later substitute for the placeholders in the simulation.

Sound the Alarms!

Finally done with the drudgery of undergraduate exams!

And, with a happy coincidence, I managed to get my XPS 17 L702x laptop speakers working on ubuntu 10.04

So, in case you’re in the same boat as I am, here’s how to go about it
a. Enable the backports repository in Software Packages
b. Determine your kernel version using uname -a
c. Install the appropriate linux-backports-modules-alsa-$(uname -r)
d. Enjoy the awesomeness! :)

How this works is that the reasonably current development versions of libraries like ALSA are, as the name suggests, back-ported to run on 10.04. Similarly, there’s a compat-wireless backport as well, which might solve your wireless issues as well.

Unfortunately, I can’t seem to find a way to get full HD resolution working. Although going through the Xorg log, EDID information is read, it can’t parse it.

In other news, I really have to rush development on the Senior project :S

Also, to be able to push to github through my college firewall I used a SSL port (If you can access https sites, you’re good to go) that the good guys at github at opened up, thusly (I always wanted to use this word!)
a. ~/.ssh/config
Host github
User git
Port 443
ServerAliveInterval 10
IdentityFile /home/kshaurya/.ssh/id_rsa

b. Changed project/.git/config hostname from to the new hostname, github


Well, as the title suggests, work on the Senior project has been progressing at a lazy pace, but a few developments have spurred me back in action. First, my project has been selected for the final 20 projects to compete at the Jed-I challenge. Second, the official project submission deadline is approaching. Fast.

So, developments. I’ve started work on a more structured manner – Have set up a git repo and a proper debuggable python environment within Eclipse. The last post showed the SCORBOT ER-4U robot building the ikfast TranslationDirection5D library database for itself. This ik solver is used since the robot has only 5 degrees of freedom, which severely curtails the available 6D space for effective manipulation. Hence this ik solver works from a given destination point and direction to approach it.

After playing around a bit with the python files I observed that very few grasps managed to return valid ik solutions. Even deleting the generated ikfast files and rebuilding the database didn’t help. What puzzled me the most was that even a very small displacement failed to return a solution.

On setting openrave to verbose mode it turned out that the wrist joint was colliding with the gripper:

Self collision: (ER-4U:wrist1)x(ER-4U:gripperLeft) contacts=0
[odecollision.h:687] selfcol ER-4U, Links wrist1 gripperLeft are colliding

So, here since the jaws are colliding whenever I use the cube’s coordinates as my target point, on an arbitrary valid target point, the arm moves correctly and along the specified direction.

I also need to adjust my CAD model as the wrist attachment’s top is interfering with the lower arm, and the grippers are actually more easily modelled as revolute joints, and not sliding joints as I had initially thought. I’ll also increase the initial gripper opening as suggested by Rosen here

UPDATE: It turned out that the collision was happening because I had a virtual wrist that rolled, to which the wrist attachment pitched up and down. So, what this was doing was that whenever the virtual wrist (wristZ) rolled, the pitching axis of the wrist attachment also changed, so that any pitching movement would lead to the wrist obliquely colliding with the forearm. To amend this, I split the wrist attachment into two parts, with first wristX pitching up and down, and wristZ then rolling about that axis (the grippers are attached to wristZ). Here’s a screenshot of the new model in action. This has also eliminated the occasional wobbling of the arm during a move.

The updated CAD model. Note that the grippers have become revolute joints, and the wrist attachment has been divided into two subparts – wristX is the projecting portion behind the differential gears and wristZ the part in front, to which the grippers are attached. Also note the small 1 mm clearance I introduced between the differential gears.