Team Vantage - Giving a robot a meaningful sense of it's surroundings
Abstract:This study asked the question: Is it possible to create a cheap soccer robot - with a limited amount of sensors compared to most competitive robots - that is capable of scoring a goal from any position? While this project was also a hardware challenge, it was mostly a software challenge in order to get the robot to function properly. The study started by creating the robot's environment in python, where we could simulate algorithms without having to re-charge batteries or having to replace broken parts. Algorithms were then created and tested in this environment. These algorithms tried to make the robot point towards the goal, and go behind the ball if in front of it. After this, the main algorithm was implemented into the robot (though the position estimation could not be tested as we do not have a field), and it was successfully able to track and go behind the ball, pushing it into the "goal" in front of it. While there is no quantitative data to analyze, this study shows the importance of software, and that it is possible to build a somewhat cheap robot that can be easily assembled. While better hardware could be used to make the robot better, this study proved that software can replace hardware in some areas. In conclusion, the robot meets Robocup Junior standards, and is able to function on the field.
Bibliography/Citations:No additional citations
Additional Project Information
- First, a computer environment will be created that simulates the robot's sensors, movements, and surrounding obstacles
- The robot in this simulation must be able to turn freely as well as move in any direction, as the real life robot does
- The robot's sensors in this simulation must be accurate if they are applied to real life eventually
- The simulation must have a function that returns a velocity vector of the robot, calculated from the various sensor inputs
- Solving the context awareness problem
- The context awareness problem for this project is finding some method of calculating a velocity vector and a turn rate of a robot with respect to its surroundings in real time.
- The robot must use this function every timestep to calculate where it is going, and how it is turning, in order to scoop up the ball and score.
- Testing robot in real life
- Finally, after a successful function is found, we will apply it in C to our robot's microcontroller, and test its accuracy in a somewhat noisy, but real environment.
- If the robot is successful in real life, the hypothesis has proved correct.
Questions and Answers
1. What was the major objective of your project and what was your plan to achieve it?
- Our goal was to create a robot that was able to understand its surroundings using context from a limited number of sensors. We planned to develop a simulation to increase the efficiency of algorithm generation, and once we had a successful algorithm, we would implement it into C for the robot's microprocessor.
a. Was that goal the result of any specific situation, experience, or problem you encountered?
- One of the biggest problems to many new roboticists is the price of components. If even one component burns out, it can be expensive to replace. By creating a robot that can make use of a limited amount of sensors, we can minimize the cost of our robot, while still having a capable robot. Our team is new to robotics, and we wanted a cheap, but strong robot that could be easily repaired.
b. Were you trying to solve a problem, answer a question, or test a hypothesis?
- We were trying to solve a problem. This study focused on the problem of giving a robot - with limited sensors compared to other competitive robots - context of its surroundings using software rather than extra hardware.
2. What were the major tasks you had to perform in order to complete your project?
a. For teams, describe what each member worked on.
- The major tasks were developing the simulation, implementing algorithms, and implementing onto the main robot.
- Will created the algorithms and C implementation on the robot microprocessor, and Ronik created the simulation in order to test said algorithms.
3. What is new or novel about your project?
a. Is there some aspect of your project's objective, or how you achieved it that you haven't done before?
- Our previous robot only drove straight into the ball, but code enables the robot to estimate it's position and move around the ball when placed in front of it.
b. Is your project's objective, or the way you implemented it, different from anything you have seen?
- Yes, many robots in the competitive seen use 16+ infrared sensors and complicated hardware like cameras.
- Our robot only utilizes 4 ultrasonic, 4 infrared, and 1 line sensor, and is still able to score consistently from many valid positions on the field.
c. If you believe your work to be unique in some way, what research have you done to confirm that it is?
- Looking at other robots and viewing posters from the RCJ competition, we can see that our sensor setup is somewhat unique. What makes our robot especially unique is the usage of analytical parametric derivatives of polar equations in order to determine the movement vector of the robot.
4. What was the most challenging part of completing your project?
a. What problems did you encounter, and how did you overcome them?
- The most complex problem was likely creating the algorithms. We had to create a mathematical model from scratch in order to mimic behavior that we wanted. For example, we sketched out what we wanted the robot to do in different situations, like being in front of the ball, and we made sure that the algorithms created would be successful in many cases.
b. What did you learn from overcoming these problems?
- We learned that trial and error is a very necessary step in the design process. If we hadn't tried out different things, we wouldn't have discovered the success of analytical derivatives and the use of polar equations. We came to the conclusion that a function based on angles would be better than one based on position, as the direction to the ball can be easily calculated using the infrared sensor data. We utilized trial and error, and improvement as we tried many different algorithms.
5. If you were going to do this project again, are there any things you would you do differently the next time?
- Next time, I would construct a better environment in real life. In theory, the robot would have functioned correctly, but since we did not have access to the RCJ standard arena, we could not test the position estimation part of the robot. However, the robot's movement pattern based on analytical derivatives was able to be implemented successfully.
6. Did working on this project give you any ideas for other projects?
- While it was fun trying to set limits for our project, it would be interesting to see how far we could get with advanced hardware like cameras. These algorithms would be more complicated, and hardware would be more expensive. However, this study is somewhat important, as it demonstrates the feasibility of creating a fully capable robot for a comparably low price.