Ethan Tira-Thompson
All of the demos shown below are open-loop manipulation, being
directed remotely. The work shown below is using a modified copy
of the CMPack'02 walk engine, running within the Tekkotsu development
framework. Inspirational credit goes to the Mobipulator
project. (more here)
The parameter files listed are binary format -- only useful if you
are using the Tekkotsu
framework, version 2.2
or later.
Length-wise: (.prm)
Keeping the front paws stiff, the rear legs do all the pushing. |
|
Width-wise: (.prm)
The hope is that if we can widen the spacing of the front legs, this would increase
the support triangle, and the back legs could be brought more directly under the
body. This would put more weight on the back legs, allowing them
to grip better, hopefully providing more accurate movement. |
|
Undersize: (stiff: .prm)
A three legged limp allows undersized papers to be used. Notice
that the plastic part of forearm is in contact with the paper,
producing a point contact with friction from Salisbury's
classifications -- when the AIBO rotates, the paper rotates very little. |
Undersize: (limp: .prm)Using the fourth leg to take steps as well, but not lifting the paw on the return stroke seems to allow better control and steering. However, the posture has also been modified so now the rubber knob is in contact with the paper. This produces a "soft finger" type of contact from Salisbury's classifications -- when the AIBO rotates, the paper rotates with it.![]() |
|
The short range manipulations had three challenges. One
was rotation
of the paper -- since the AIBO cannot rotate its paw (no wrist)
it is unable to rotate a paper with just one paw in most configurations.
Instead, I will
concentrate on using two paws. However, using two paws requires
a "diff-drive" style of motion.
Since the walk engine we are using typically handles rotations by
twisting the legs out to the sides, a new parameter had to be
added to provide this capability. The second problem is more significant: when using two paws,
whenever a paw was lifted and set down again, it would often hit the
table earlier than it should, while still moving in the "wrong"
direction. You can see some of this wiggling in the "Scanning
paper sideways" demo below. I determined this issue is due to the
supporting leg sagging under the weight of the AIBO, and thus causing
the AIBO to be lower than it intends. I fixed this
problem by adding a "sag" parameter to
allow each joint to target a slightly higher position on its recovery path
so it would not hit the ground until the end of the recovery stroke. The third problem is that the joints are generally somewhat
weak compared to the weight of the AIBO. If much weight is placed
on the forward joints, it causes those joints to "stick" more, and not
move the paper until the other leg is already down, taking some
pressure off the joint. This causes each leg to rotate the paper
around the other leg's point of contact, wiggling the paper.
The solution is to use a posture which takes weight
off the manipulator arms and places it on non-manipulator arms.
However, putting all the weight on the
motors of the back legs causes a "BATTERY_OVER_CURRENT" violation to be
thrown, and the AIBO will automatically shut down. This was
relatively common problem with the first (leftmost) examples shows
below, but was solved in the second iteration. |
|
Scanning paper sideways: (.prm)
|
Version 2 (.prm)
|
Pushing paper away ("AIBO OCR" :)Take 1: Low Resolution: |
Version 2Using the new squatting posture... notice we now get a better (i.e. close up, almost perpendicular) view of the paper as well! Another advantage to the squat is that the legs are far enough apart for a standard sheet of paper to pass between them. In the previous version, I had to remove some margin from both edges of the paper. ![]() ![]() |
Take 2:
Higher resolution: |
|
General Manipulations:This demo shows a combination of using diff-drive style steering to rotate the paper, as well as pulling the paper sideways.![]() |
|
|
I'll walk up to a piece of paper, manipulate it into a good orientation, and then walk around with it. The caveat is that I didn't spend any time making transitions between the postures used for each of the walks, so that part is pretty rough, and unfortunately disturbs the grip on the paper. But this is a trivial matter of scripting a sequence of motions to move from one to the other, so I'll leave that as an exercise to the viewer. ;) In summary, manipulating papers on desktop with an AIBO is
quite feasible,
and I'm sure with a some more work I could add some feedback and
automation, as well as making transitions between different walk
parameters happen more smoothly. However, the downside is that I also had hoped to be able to used these manipulations on carpeted/padded surfaces, but I have found that the paper/ground interface has roughly the same friction as the foot/ground, so it is very difficult to move the paper, even though the foot/paper interface has higher friction than the paper/ground below it. |


