• Welcome to Redshift Project Depot.

How the arm will work

Started by Louis L, January 11, 2018, 12:38:45 PM

Previous topic - Next topic

Louis L

This thread will document how the arm will operate from a software point of view. The goal is to describe in as much detail as possible, the operation of the arm as it relates to game play, software states, state machines,  etc. There will be some cross-pollination with the related intake (http://www.team4048.org/smf/index.php?topic=254.0) thread.

Louis L

Are there fixed heights that we pre-program for the arm to simplify the work on the user? For example, here are some I'm thinking of:

  • Basement. All the way at the bottom so we can grab hold of the next Cube
  • Lobby. Carry Cube about at least an inch above the carpet to clear the cable conduits on the field. This may not be absolutely necessary; it's something we'll find out on the real field and in testing. We'll be slowing down to avoid stress on the swerve drive and that will lower the momentum that can force a Cube over the conduit. Carrying it would be the best thing assuming the grip is reliable and won't slip. Having a grip that won't slip is important because we want to be able to rely on these pre-programmed heights to speed things up. If the grip slips for any reason, all alignment bets are off.
  • 2nd floor. Switch deposit height. High enough to clear the Fence around the Switch.
  • 3rd floor. Low Scale. This can be tricky since access to the side of the Scale is different than access from the end.
  • 4th floor. High Scale. The upper end of the Scale's movement.
  • Penthouse. For when we really need to get the most extension. We might need this to stack a Cube on top of another Cube to maximize its impact on the Scale.
  • Roof. The height and position used for Climbing.

Louis L

The arm can extend in and out in order to prevent the arm from extending beyond the 16 inch size restriction. As the arm rises, the extension mechanism needs to shorten the arm and later extend. The movement of the extension in and out needs to be automatic and under software control. The user must not have be allowed to raise the arm without the extension mechanism working. This will strictly fly-by-wire; no direct control of the arm will be allowed.

Louis L

Following the 1/23 HW meeting, here's how the arm will work:

Theory of Operation

The arm consists of 3 parts - a fixed vertical tower, an extendable rotating arm, and a gripper mounted at the end of the arm. Together, the arm grabs a Cube from the Intake, tucks it away for transport, and delivers it to various heights as needed. In its motion up and down, the arm, with the help of software, will not break the 16 inch rule.

Everything needs to move quickly and the Cube needs to be held securely. Together with the Intake, the overall system needs to be highly efficient at getting a Cube and delivering it to its destination in the shortest amount of time.

The arm is the tallest structure on the robot. If we advance to the World Championship in Detroit, we will need to make this fit inside the shipping container. Anything that doesn't fit needs to be easily disassembled for shipping.

Mechanical and Electrical Details
The tower is at a height that makes it still legal per FRC Power Up rule. The rotating arm is mounted to the top of the tower and moves via a chain driven system. The arm's motion is limited at each end by limit switches that stop the motor when tripped. The arm consists of a fixed part and an extension. The extension is build onto drawer slides whose movement is controlled by a lead screw. Limit switches define the range of motion of the extension. The extension exists because the rules allow only 16 inches of protrusion from the frame perimeter. The arc traversed by the arm would violate this rule if the arm's length was not somehow reduced; hence the extension.

Movement of the extension in and out will be software controlled at all times. The user's interaction with the arm is entirely fly-by-wire; the user has no direct interaction with the extension. This is intentional and prevents the user from breaking the 16 inch rule.

At the end of the arm is the gripper. The gripper uses a pinching mechanism to grab a Cube from the Intake. The grip position is the top edge of the Cube. Either or both of a pressure sensor and motor current sensing will be used to determine how hard to grip the Cube without destroying something. Limit switches define the min and max grip width. Another limit switch detects when the gripper makes contact with the top of a Cube.

The Gripper can rotate the the Cube 180 degrees such that it rests more securely on a surface rather than relying entirely on grip friction. A motor performs the rotation and it too is travel limited by limit switches. An accelerometer mounted to the Gripper is used to determine how level the Gripper is. This information is used to continuously rotate the assembly to keep it level.

Louis L

We had a long discussion with Peter & Sarah & Ed today and it seems we had the wrong idea of how the Gripper / claw works. What this means is that from a software point of view, we have to rethink how the software will operate.

  • The robot "home" position is defined as (a) the arm the lowest position (b) with the extension fully retracted, (c) the gripper flipped up as far as it will go and (d) the intake assembly in the Up position.
  • Unless otherwise noted, a Cube is transported on the playing field with the arm in the "home" position.
  • Unless otherwise noted, the arm is raised and lowered with (a) the extension fully retracted, (b) the gripper flipped up as far as it will go and (c) the Intake assembly in the Up position. The Cube carried this way will not maintain "level" and we won't try to do so.
  • The extension is used only when we are ready to deposit a Cube at a raised elevation.
  • Leveling the Gripper is used only when we are getting ready to put the Cube somewhere.
  • Manual height override via the Game Controller will also require self-leveling of the Gripper and possibly the auto-adjustment of the extension (depending on height).
Get Cube, Deliver it to a Scale or Switch, Release the Cube.

The most basic act in the game is to get a Cube from the ground and deliver it to a Scale or Switch. Here's what the software will do.

  • Arm is Home.
  • Run Intake until a Cube is sucked in.
  • Raise Arm a little bit, then lower onto Cube. We raise it because the Cube may be in one of 2 orientations and one is taller than the other.
  • Lower Gripper and grab Cube.
  • Flip Cube over into its Home position
  • Move Arm into its Home position
  • Raise intake out of the way
  • <driver now drives to destination>
  • Arm is raised to desired height
  • Arm is extended if necessary.
  • <driver drives forward>
  • Gripper flips over
  • Cube is released
Caveat - when the arm is raised from its Home position and power is cut once the correct height is reached, gravity will pull the arm back down. We will need to apply some amount of power to the motor to stall it - not enough to burn it but enough to counter gravity. The amount of power has to be experimentally derived. It will also vary with the angle of the arm.

ohad z

One addition to the software list is to raise the intake out of the way between "move arm to home" and "driver now drives"

Louis L

Quote from: ohad z on February 03, 2018, 10:56:19 PM
One addition to the software list is to raise the intake out of the way between "move arm to home" and "driver now drives"

added to previous post.

Louis L

Also update definitions of "home" to include the Intake assembly.