Although this year's them involved yet another projectile; the robot that would get into the launching zone and launch the projectiles through the hoops (shown above) would have to be fully autonomous! There would be another robot that would transfer these projectiles from the loading zone and this robot could be manual.
I was the team lead this year, and we determined that the task of coming up with a good launcher with high precision and recall and having a robot that could accurately position itself were the walls that we would have to break through to have any chance of competing. The manual robot's tasks were fairly straightforward.
How did we do it?
Skip to the 4 minute video below if needed, it covers a lot of what is written below.
I will be focusing largely on the autonomous projectile-launching robot in this section, as we were able to make the manual projectile-loading robot in a very small amount of time and it did its job well.
We had a team of almost 30 members, and the sub-teams were Mechanical, Electrical / Electronics, Software (the line between Electronics and Software was blurry and we can call this team the Embedded Software team) and the Marketing team.
We first decided that to achieve our tasks with precision, we needed an arena (or at least parts of the arena) which had to be almost identical to the actual arena. We got flooring that was similar to the actual arena to provide the right amount of tractive friction for the robots. We had the poles manufactured almost identical to the actual ones, making them sturdy and with the same exact color coding.
The mechanical and electronics team both worked together to experiment with projectile launchers - both the source of motion (electrical / pneumatic) and the sensors needed to launch the projectile accurately as per the trajectory requirements.
Simultaneously, a section of the team (Jameel, Wael, Riyaz) worked on the locomotion of the robot, writing logic to accurately position the robot in the loading zones and the launching zones, so that the computed trajectory was executed successfully.
Further, one of our team members - Ibrahim also worked on Computer Vision techniques to receive feedback on whether the projectile made it through those hoops.
We finally ended up with a robot, that used a pneumatic actuator to hold the projectile, a motor to provide the initial velocity to the projectile and a hall-sensor (in conjunction with a magnet) to launch the projectile at the "correct" launch angle. We used omni wheels and lR sensors (using a PID controller to correct the motion using the detected lines) and a perpendicular set of IR sensors to detect the launching zones.
Ibrahim was able to use color detection to detect what color projectile the robot was holding to send the robot to the correct launching zone. So, the manual robot operator - Muqeeth did not need to worry about which projectiles were being transferred to the autonomous robot.
Text can be boring. Watch this video which encapsulates our journey in a less boring way!
Results
The competition organizers provide practice arenas and our robot performed very well on those as seen below. Launching the projectile through the loop on the taller pole gave more points. And if the projectile went through it and landed on the cup in front of it, we get even more points.
But, in the actual arena, our robot failed. We get two 3 minute games to get enough points to get into the tournament. We fell short of those. Here are the reasons :
- In the first game, the the arena was so shiny that the camera (in the robot) tasked to detect the projectile saw a golden-ish color (and identified it as one of the golden projectiles) and malfunctioned repeatedly.
- The practice video shown above is right before the 2nd game. We were confident we would make enough points to make it through the second video. We had a circular nylon strip on which we mounted the hall sensors. These hall sensors were mounted according to the two trajectories that had to be executed, one fired off the projectile for one pole and the second one for the other.
- Just before the game, the robot's dimensions are checked. The sensor on the strip protruded a few millimeters on top of the script radially, enough to exceed the robot's height by a few millimeters >.<
- Seeing this, one of our team members adjusted the sensor a bit. This ended up being disastrous. However, we can't really blame the team member as we had no other choice in those few minutes before the game!
- Suffice to say, these 2 issues arise from the robot being not tested for more amount of time and not tested under more varied conditions. For this, as captain of the team, I take full responsibility.
My role
I will break this down into 2 categories - technical and managerial.
Technical
- I assisted in the design of the manual projectile loading robot.
- I helped design the launcher; specifically coming up with an idea to use the fact that the pneumatic cylinder's piston has a bearing well-suited to provide rotary motion (even though this may not have been the design intent of the cylinder's manufacturer), to make the cylinder coaxial with the driven axis. I designed the frames - one driven and the other was attached to the cylinder, both pressed against each other. I designed a fitting at the end to hold the projectile when accelerating it before launch.
- Mojiz, the mechanical team lead improved upon this design to design those frames to hold up against the stresses induced by the pneumatic cylinder.
Managerial
- I made sure all teams were synced-specifically the mechanical and electronics teams.
- I managed the budget, making sure we had enough. We didn't have enough in the beginning as the budget wasn't released yet, so we organized a few workshops to get what we needed. This was actually one of the more enjoyable moments where I had fun teaching students Solidworks!
- I managed the timeline of our development, making sure we had enough time for practicing (equivalent to beta-testing).
- I routinely made sure all the pockets of the team working independently on different problems were aligned. This I did along with Abdul Aziz - the team's vice captain who managed the electronics team.