This project was designed to include two stages: a testing stage to determine the physical characteristics of the object and a decision-making stage in which the robot executes the manipulation maneuver. We chose this two-stage design because we wanted to simulate having nearly no visual input. This means we almost have no information about the properties of the object and need to sense them ourselves. The two physical properties we focused on for the testing stage are:
Deformability
Weight
We chose the following set of test objects to represent the two main properties we desired:
Deformability: Solid
Weight: Heavy
Deformability: Soft
Weight: Light
Deformability: Solid
Weight: Light
The Robotiq 2F-140 gripper and Axia80 F/T sensor on the robot are not able to tell us the amount of force used to squeeze an object between the gripper fingers. However, the force sensor allows us to measure force in three different directions (along the x-, y-, and z-axes). We speculate and confirm with several trials that the z-axis force readings change whenever the gripper pushes down on an object.
With that in mind, we devise a plan to measure the deformability of an object without squeezing it. To do this, we close the gripper before slowly descending it down onto the object. Taking the z-axis force readings allows us to estimate the deformability abstracted into the spring constant of the object as we press it with the gripper.
The most efficient way of measuring an object's weight is by simply picking it up. We use the sensor's z-axis reading to find the change in the amount of downward force it is experiencing, thus obtaining gravity data on the object.
Once the deformability and weight of the object are estimated, the robot tries to decide on a best way to move the object.
The flow chart below represents the complete motion-decision plan we had in mind:
Our two decision nodes were based on our sensor outputs: object deformability and object weight.
For deformability, our rationale was that to prevent object deformation due to the gripper squeezing the object, we wanted to push the object instead. However, although this worked, we did not take into account the object's friction and stickiness, which may change general planning. Another consideration for pushing deformable objects is due to the fact that we may not be able to acquire a proper, steady grip on the object due to its shape or deformability, making it hard to pick and place to another point.
As for our weight decision node, our plan followed the simple rationale that heavier objects would cost more to lift up, and thus we choose to push the object instead.Â
While we were designing, we considered two pushing methods, one in which the object is placed outside of the gripper, while one resembles a sort of dragging motion with the object between the gripper. We decided that to align with our push plans, the dragging motion would prove to be more successful, as the nature of our plan was to push any objects we could not acquire a good grip on or was too heavy in the first place.