We are making some improvements to our robot in preparation for an off-season tournament. We have a pneumatics problem on our robot, and we're trying to find a solution that is allowable under the 2011 LogoMotion rules.
We have come up with a proposed solution for the problem, but we aren't sure if it is legal (under the rules) or practical, and are soliciting feedback.
NOTE: I have carefully read the thread, "
Variable position of cylinder in compliance with <R74>," but our issue is a bit different. We don't need control over the variable position of a cylinder. That level of control is more than we require. We're just trying to reduce the speed of air flow from the exhaust port of a cylinder (see below).
Here is our issue: We have a long, pneumatically-actuated arm, with the pivot point at the bottom, that leans (rotates) down to pick up tubes. We use a double-acting cylinder to control the up-and-down movement of the arm. We are using one of the 5-port Festo valves that comes in the KOP for controlling a double-acting cylinder for this purpose.
To make the arm go down, we trigger the valve so that it sends pressurized air into the "down" port of the cylinder and exhausts from the other port of the cylinder. This sends the arm down fast (too fast, truthfully).
Our big problem comes when we reverse the valve to send the arm back up. The arm is rather long and heavy. When we send 60psi of air pressure into the "up" port of the cylinder (while exhausting from the other cylinder port), the pressure gradually builds in the cylinder for a couple of seconds until the cylinder is able to lift the arm. Then, when the cylinder lifts the arm, the arm starts going up slowly (fighting gravity), but as the arm rotates upward, there is less gravity to contend with (due to the angle of the arm), and the arm then slams very hard into the top stop bar on our robot. This makes us wince every time it happens. It really slams -- it's a wonder that the arm hasn't broken in the two tournaments we've been using the robot.
So, here's the thing. Even though we are using pneumatics to lower and raise the arm, we would like to be able to reduce the speed of the arm in both directions. We need to use the full 60psi of allowable pressure, because otherwise the cylinder cannot lift the arm from its lowest rotated down position. But using the full 60psi, the arm ends up slamming against the top stop when it is at the top and no longer fighting gravity, and we aren't happy about that. Also, in the down direction, the arm also goes too quickly.
For the down direction, the solution is fairly simple, but it doesn't appear to be allowable in the 2011 rules. We could simply use a COTS flow-control valve on the exhaust port of the Festo valve for the "down" direction of the arm, so that the air won't exhaust so quickly. A flow-control valve, for those who might not be familiar, is a simple, inexpensive, passive pneumatics part with a screw that restricts how fast the air can escape, so you can slow down the air flow. There are other, similar simple COTS pneumatics parts that achieve the same goal under different names: exhaust mufflers, speed controls, etc. They all work basically the same way -- they are passive little frobs that reduce the air flow so it doesn't move too fast. Any of these would allow the arm to go down nice and smoothly, and not overly fast. However, <R66> doesn't specifically list flow-control valves or similar devices as being legal for use this year, so it seems like we can't use a solution like that. I just want to confirm that we are reading the pneumatics rules correctly on this.
I can't quite understand why a passive flow-limiting device is not allowable. The main pressure vent plug valve will still release all stored air pressure in the system for our robot. There is no danger issue that I can see here of stored pressure, unless the flow control valve is completely closed (which would make the cylinder completely useless on the robot).
The "up" direction for the arm is also a problem, with the "slamming" at the end, and is more complicated to fix. A flow-control valve is not sufficient here. By the time the arm has rotated to the top (where it is about to "slam"), there is almost no gravity acting on the arm movement and the air exhaust is coming out of the cylinder very fast. If we used a flow-control valve for the exhaust in this direction, we would have to set the flow to be very constrained to prevent the slamming. But reducing the air flow that much would make the arm VERY slow to raise up when it is first coming up from the ground, fighting gravity -- too slow to use in competition.
A sort of obvious solution would be to use a solenoid-controlled valve on the exhaust port of the cylinder, to rapidly switch between allowing air to exhaust and blocking the exhaust. However, this would be in violation of <R74>, since we would be using multiple valves for a single commanded action of a cylinder, and this specific case is specifically clarified as illegal in
Team Update #13. (This led to the <R74> discussion in
this thread.)
So, here is our proposed solution for controlling the speed the air exhausts from the cylinder. If anyone sees a problem with this solution with respect to the rules, or can suggest an alternate solution, please let us know. Here's our idea:
When we are raising the arm, for the first few seconds, we will send all of the pressurized air into the "up" port on the cylinder port that raises the arm. After a few seconds, we will, under software control, slow down the arm by rapidly switching the Festo valve between the sending pressurized air into the "up" port of the cylinder and sending air into the "down" port of the cylinder. If we send air into the "up" direction 60% of the time, and send air into the "down" direction 40% of the time, the arm should still raise up, but more slowly, so it won't slam into the top stop bar of our robot.
How does that sound? It doesn't seem like it violates any of the rules, because we aren't adding any prohibited hardware, we're just using software to control the Festo valve very quickly. Also, the main pressure vent plug valve will still release all stored air pressure in the system for our robot. We haven't tried rapidly switching the Festo valve back and forth electronically before -- I wonder if that will burn out the Festo valve. Also, this solution is a kludge -- I wish we didn't have to do it this way, so if there is another way, that would be great.
Super sorry for this long message. In summary, we are looking for a way to effectively reduce the airflow out of the exhaust port on a pneumatic cylinder, in a variable manner (as the arm raises and needs to reduce the flow more), without violating the rules. And we are wondering if our software solution, above, makes any sense, or will just end up burning out our Festo valve.
I hope my problem explanation above is understandable. Any help appreciated. Thank you!