SCRC:Indoor Robot-Magellan: Manipulation
- 1 Manipulation Hardware
- 2 Coordination with other systems
- 3 Vision/Sensing
- 4 Manipulation tasks
The current arm design uses aluminum structural channel and associated components from the Actobatics product line.
The arm will provide independent vertical (Z axis) and forward-back (X axis) motion. In the interest of simplicity, the initial implementation will not include independent rotation or lateral movement in the Y (left-right) direction (contrary to paragraph 4.3.3 of our specification document).
<TODO: Provide photos with detail views>
Vertical movement is provided by a belt drive with follower. The motor is fixed at the base of the post.
- Timing Belt: 0.2-inch pitch
- Pinion Pulley: 15-tooth, 0.2-inch pitch (3-inch belt travel per revolution)
- Motor: Cytron model SPG50-180K gearmotor
- Encoder (attached to motor output/pinion shaft): specs (scroll down) (Single-phase 400 pulses /R, Two phase 4 frequency doubling to 1600 pulses)
Horizontal movement is provided by a rack and pinion. The motor pushes/pulls the rack out/in from its position on the vertical post's belt follower.
- Rack: 32-pitch; provides 15-16 inches of travel
- Pinion: 16-tooth 32 pitch (0.5-inch travel per revolution)
- Motor/encoder: Product page with specs
Drive limit circuitry
- This schematic shows limit sensing and limit stop switches used with the horizontal and vertical drive motors. A limit sensing switch triggers just prior to the physical limit of travel being reached, closing a path to ground for a sensor. A limit stop switch prevents further movement of the motor in the present direction (by interrupting current flow in that direction).
- Claw: VEX claw kit product page. Claw has been geared-down to increase torque by a factor of 2.4 (in case we choose to spread it to open the refrigerator door).
- Motor: VEX 2-Wire Motor 393 product page
- Encoder: Product page
Coordination with other systems
Definition: "Manipulation Body" - that part of the robot that rides on top on the Propulsion unit AND grabs the pop can; it has one or more manipulator arms.
The Manipulation System needs to be able to command the Propulsion System to shuttle the robot in-out and left-right when we are near the refrigerator without the manipulation body being rotated as a result of this movement. (Once we're at the refrigerator and have managed to crack the door, we will need to move the robot incrementally as we expand the door opening and get to a position to scan the contents of the refrigerator.)
If Propulsion cannot provide that capability, it means that the Manipulation System would need to be self-orienting. (That would be a bit of doing.)
I suggest a 2-axis forward/backward up/down arrangement, with left/right controlled by the robot.
If we're going to perform the manipulation tasks below, we will need some way of knowing exactly where (in 3 dimensions) to apply forces. See Vision "Technologies/Vision" section.
The Kinect or the KinectFusion provide a lot of 3D data, which may be beyond the needs of this first project. The map for this competition is specified in great detail, such that any robot with accurate enough dead-reckoning could accomplish the course.
For sensing, I propose an array of cheap ultrasonic sensors, maybe 8, that would be used to correct any angular or positional deviation.
For the task of opening the door and grasping the can, I am inclined to make the most of a single manipulator arm, in that it must fling open the door, so that the robot can position its body to prevent the door closing. Then a USB camera and some basic object recognition software can connect the manipulator to the pop can.
If we use a servo-powered arm, we should be able to monitor the current to the servos to estimate the amount of force they are experiencing.
Our robot needs to perform these tasks: (Each needs to be broken down by YOU GUYS!)
Open the refrigerator door
Specifications to be defined (in robo challenge)
- Q: How much force is required to open the refrigerator door?
A: On the tested mini fridge, it required about 3/4 of a pound of pull to open the door applied to the door seal crack.
- Q: Are hinges on left or right side of refrigerator door?
A: All mini fridges at the hardware store had hinges on the right side, but most fridges allowed for the hidges to be moved to the left side.
- Q: What kind of handle is on refrigerator door?
A: There is a finger groove at the top of the door. There's also the crack between the door and the fridge that has the magnetic gasket.
- Q: Is the gap between refrigerator door and frame accessible? (There's normally a recessed gasket between door and frame in this gap.) I.e., Could the robot insert a caliper mechanism and expand it in the gap to open the door? That would not be possible if the refrigerator were built in flush with cabinetry with minimum clearances.
A: The gap is about 1/2 of an inch.
Thoughts on opening the door
- If we don't let go of the door, we will need a second arm to grab the can. But the first arm would need to be articulated enough to allow the robot to go behind the door to face the interior of the refrigerator and grab the can.
However, if if we had an arm keeping a grip on the handle, it would make the "Close the refrigerator door" task much easier.
- Your ideas???
Two manipulator arms would be doubly complex and, I think, and unnecessarily specific to this challenge.
I don't know the force required to open a mini-fridge. Maybe the gripper could also be a spreader? Then the robot enters the door swing area, preventing it from closing, and then has its way with the fridge contents.
The distance sensor can be used to "see" the door, and the robot maneuvered to the edge of the door. The bar that goes into the gap to open the fridge can also be used to hook the door and pull it before the hook leaves the door, allowing momentum to let the door close.
Grab the pop can
This will require some sort of image analysis to identify the pop can (we can only hope that it's a Coke can in a white fridge!)
We center the target with tiny wheel adjustments, and then analyze the height and width to determine the distance. Then we set the claw to meet the target, perhaps using visual cues painted on the claw itself to align the two. Close the grips, monitoring the current to prevent crushing.
I think we can do the grabber movement without any electronic gizmology. Consider this: The traditional gripper has two caliper pieces that are solid (each looking like a question mark without the dot). That is like human arms, with elbows together, cupped hands, and wrists locked in place; you can only swivel about the elbows to close the forearms and hands as solid units to grab an object (then you would need some control to prevent crushing). Now consider that arrangement, but allow the wrists to pivot as the hand makes contact with an object (or as the hands close on themselves). The hand is now separate from the forearm but connected to it with a torsion spring. The forearm-hand assemblies stay rigid until the hands grasp something (or touch each other); then they become fixed but the forearm can continue to move. And that relative movement allows us to use a microswitch to detect it. When the switch is triggered, we know the grippers are exerting the force on an object that the torsion springs determine and we stop the motor. (Or we could have completely missed the object and the gripper claws are closed on themselves. Contacts on the gripper tips could sense this completely-closed position.) Likewise, a limit switch could detect the completely-open position of the claws. So we could get by with any DC gear motor, no need for encoders or fancy sensor logic. The gripper would have two commands: Open and Close.
Close the refrigerator door
Go to a predetermined location behind the maximum swing of the door, and then move through the arc of the door.
Deliver the pop can (given that the location has been properly set)
With the pop securely in our paw, we navigate to the coffee table, again with dead-reckoning mitigated by some ultrasonic sensors so we don't crash, and once we're satisfied that our robot is close enough to the table, we extend the arm, monitoring the current draw to indicate that we have made contact, and release the grip.
Use a (Sharp) IR distance sensor, looking down, to see that the arm's hand is over the table. After proceeding in 4 inches (should this be in metric?) from the edge of the table, the robot should be stopped and the armed lowered until the pop can touches the table (assuming the sensor is the same distance about table as it was above the fridge shelf). A 4-30 cm IR distance sensor has been ordered to try out this approach.