pimp (japanese character)

Master Plan

<-- Japanese character for Pimp

 

ORIGINAL STRATEGERIE REPORT

This was our plan before lab on Oct. 1:

The strategy for our robot is pretty simple: we want to propel as many balls off the opposite end of the board as possible, since this guarantees points. In order to accomplish this objective, we plan to have a whacker-type appendage, somewhat like a golf club, that will hit the ball across the board and over the wall. This weapon will take advantage of the upwards slant on one side of the board. One possibility for balls on the other side of the board (with the downwards slant), which would be useful over any area of the board, is to have a conveyor-belt-type apparatus that picks up the ball and then drops it in front of the golf-club-type whacker, to get extra height and distance.

In terms of defensive strategies, aside from the obvious whacking the balls off the board and potentially hitting the other robot with them (accidentally, of course), we might also have some sort of catching apparatus to retrieve balls displaced by the other robot. Additionally, we will explore ways of making our IR beacon move around within its defined space to make it more difficult for the other robot to track us.

As far as general strategies, we would like to be able to sense walls by using a shaft encoder that rolls along the ground. We will probably concentrate on such motion as is required for the robots to find the balls. We will also attempt to make our robot sense its location from the slant of the board. If we have multiple defensive or offensive strategies, we will most likely toggle between them with the dip switch. And of course, our main objective is to win, at any cost.

During lab on Oct. 1, we discovered that, although our current whacking mechanism works well and is quite entertaining, it will be complicated to get the balls in the right position to be projected off the table. In particular we are concerned with how to pick the balls up and retain them, since they have this nasty habit of rolling away. So while we are still working on the original plan, we are exploring other possibilities as well: for example, some sort of rubber-banded extension that will spring out at the beginning of the game and drag all the balls with it as the robot slowly advances across the board. Our main objective, winning at any cost, is the common denominator amongst all our plans.

 

ORIGINAL FUNCTIONAL SPECIFICATIONS

For our robot we have (more or less) settled on the push-all-the-balls-across- the-table strategy. To accomplish this, we have built a large Lego arm that extends across half the board. It has wheels and bulldozer-like appendages and, due to a system of rubber bands, can be folded up and stored inside of the one-foot cube, to be released simply through movement of a lever whenever we desire, which will presumably be at the start of the game. The original plan is to build two such arms so that our robot can cover the whole board; however that will require more pieces than we are currently able to obtain. So this plan still stands in the background, if we can get more pieces; for now we are going to mount the one arm on some sort of turret system so that it could be rotated according to the side of the board that we start on. The end of the arm has the bulldozer-like appendages on each side so that the arm is ambidextrous. The arm currently seems to have enough mass to push the balls, although we will adjust the design as needed to make is sturdier. Our overall strategy is to shove as many balls as possible with us to the other side, and then to sit in the center of the board and make like a wall, so that no other balls can get past us. We even have designed the bulldozer-appendages such that they will block balls back as opposed to providing a ramp for them to jump over our robot.

So with the arm being our main offensive weapon, there are several other essential components to our robot design. We have decided that the key to our strategy is having the momentum to push our robot and the balls and the traction to not get pushed out of the way by the other robot. Thus, since we have no other fancy parts, we are devoting all six of our motor ports to wheels, to have the maximum force. We might add some other features, such as ratchet wheels and a friction pad that we can drop down when needed, to increase the traction of the robot (particularly the arm) in case we are run into by another robot. We are working on a gear box that would actually allow us to change between a low gear and a high gear, such that we would be able to quickly maneuver ourselves into ball-pushing position, then switch into a lower gear to give us more pushing force and traction. This is not a necessary part of our design, but it would be helpful and seems worth the effort to try, as it would be really cool if it worked.

An important part of not being run into by another robot is knowing where the other robot is. Therefore, we will use our IR sensor to determine the location of the other robot and take evasive action, if possible, or else maneuver ourselves into the best possible orientation for a collision (to avoid getting pushed) and shift into a higher gear. This is an important part of our strategy, so we will try to utilize all 4 digital ports for this purpose.

In terms of the general functioning of the robot, our motion is going to be pretty basic ñ we donít have a lot of maneuverability with six wheels. We will sense walls by means of a shaft encoder running along the ground ñ if it is not moving but the engines are, the robot will back up. This allows us to need to make contact with only a small part of our robot, as opposed to a whole side, and still have the correct reaction, and will help us avoid shoving matches with other robots. In addition, our navigation system involves the shaft encoders ñ we have one on each side of the robot, and if they are moving at different speeds, the robot will be programmed to adjust the power to one side or the other of the robot to maintain both sides equivalent and a constant total value, so that the robot will travel in a straight line. So two other digital ports will be devoted to the shaft encoders. One analog port will be used for our photocell so that the robot will actually start the contest. As to structure, the main body of our robot will be large and boxy and low to the ground, so as to have the best leverage, but with the arm sticking up somewhere until it is released. We may have some sort of structure built into the front of the robot to push the balls (and keep them away from the robot) as well.

 

THE REAL DEAL

So now perhaps you've read our first two attempts at strategy, and you think you have an idea of what our strategy was. Unfortunately, you would be completely wrong. That's because an essential part of our strategy was to keep the real strategy secret, so secret that no one even knew there was a secret strategy. We had this whole fabricated strategy to keep the labbies and everyone else happy, while meanwhile we were constructing the real Pimpbot.

Our fake strategy was pretty much what is outlined in the functionals specifications: have an attachable, spring-loaded arm that would spring out and bulldoze the balls to the other side of the board. We actually even built such an arm, back when we were still brainstorming and did not have a defined strategy, and so we used that as a decoy for the rest of the semester. And we did actually built and use IR tracking equipment to locate the other robot; it was just not for evasion purposes, as we officially claimed. We did actually use all 6 motors on 6 wheels to get traction. We tried the gear-switching mechanism and some of the other ideas to give us more leverage, but nothing else worked really well.

So the real plan was quite simple really: to move immediately across the board towards the other robot, hitting the closest ball over to the other side in the process, and then hitting the other robot and trapping it, ideally against a wall, so that it cannot collect any balls or do what it was supposed to do. As long as we pushed that ball over, we were guaranteed to score a point, and if our robot could handle the other robot, it would be a very effective strategy. So, in order to make our robot able to handle most every other robot, we put motors on all 6 wheels, made it very heavy, gave it poke-y things in front to ensnare other robots with, and did other things that will be discussed in the specific sections. We started it as close to the other side of the board as possible, in order to get as fast a start as possible - speed seemed to be our weakness, as some robots were much quicker than ours. To counteract this somewhat, we programmed our robot to sense the other robot's IR beacon and turn towards it. In this way, we hoped to be able to hunt down any robot that managed to initially escape us. Ideally we wanted to push the other robot into the wall and pin it, but we would happily settle for just locking into the other robot and not letting it free to do its job. Ours really was an evil robot.

We had two variations of our strategy, depending on if the robot we were going against was quick moving or not - we could just move directly across the other side of the board into the other robot, if it moved slowly, or we could turn on the IR sensors and track the other robot, if it moved quickly. During several games we ended up in a head-on collision with the other robot near the center of the board, and it was only because we pushed a little bit further that we won.


Main | Hardware | Software | Pictures