Jumbo Shrimp v1.0
Jumbo Shrimp v1.0 is our new experimental robot. It uses an omni-directional drive that allows it to move in any direction while maintaining the same orientation/heading. Jonah took the lead on this and used cardboard prototypes to test the robot's feasibility until eventually settling on the final design for the chassis. Read more out Jumbo Shrimp's development here.
The motivation behind the development of JumboShrimp was to create a 3 wheeled-omni directional robot with the ability to navigate with great precision and flexibility.
JumboShrimp has 3 wheels, each powered by a gear-motor. A servo motor drives a pulley and belt system mounted in the middle layer to change the orientation of the wheels about their vertical axis. The main feature of JumboShrimp is this ability to turn its wheels in the vertical axis which enables it to go in any direction without having to turn its entire body. The initial prototype was powered by 6 servos, 2 for each wheel: a continuous servo turned the wheel about its horizontal axis while a non-continuous servo turned the wheel about its vertical axis. After some initial testing, we realized that it would be less economical and efficient to use 6 servos. As a result, we replaced continuous servos with gearmotors and the non-continuous with a centralized servo and pulley system.
The machining of the whole chassis took about 3 weeks and it was done at the Tufts Machine Shop. Some of the challenges that were encountered include, wrong belt lengths, press fitting bearings to the aluminum shafts, and continuously drifting orientation. Originally, the belt size had been obtained from Solidworks? belt feature as 14.83?. However, this size came out to be too big so we ended up using a 14.2? double-sided belt. The bore size and the shaft size resulted in a clearance fit so the aluminum was deformed using a vice to ensure a press fit. After machining the robot, we connected up the electronics and started testing.
- In the Omnidirectional mode, the orientation of the robot drifted a lot. Partly this is because there were no encoders to enable us to control the speed of each wheel.
- In addition, it turned in a choppy fashion because the wheels did not align perfectly.
Because these challenges were realized a few days before the Trinity firefighting competitions, we implemented a temporary solution - we replaced the front wheel with an omni-wheel which reduced sideway friction. The pulley system and the direction servo were then rendered useless.
Although JumboShrimp was not able to put out the flames in all the three trials, its wall-following and room detection abilities were excellent. In the future iteration, we hope to work on the candle detection and fire-extinguishing algorithms.
Jonah Kadoko - Team Leader
Constantin Berzan - Lead Programmer
Will Langford - Manager/Organizer
Jeff Arena - Alternate
It came down to the wire but we were ultimately really happy with the robots' performance at the competition. The Precipitating Pachyderm managed to extinguish flames on two out of three trials (and would've taken out the first one too if we hadn't made a silly last minute coding error). Jumbo Shrimp came very close to putting out a candle but ultimately we just didn't have enough time to perfect it's code. This was in large part because the Friday before the competition we realized how difficult programming him in his current omni-directional drive state would be; for this reason, we converted him from a swerve drive (or omni-drive) to a standard differential drive by replacing one of the wheels with an omni wheel. With such a major last minute design change, we had to start coding again from scratch.
Along with the standard firefighting competition they also offered a written exam competition for the teams themselves. The Olympiad exam was an hour long and tested critical thinking in the context of engineering principles (ie. gear-trains, robot navigation + path optimization, sensors, etc...). We came in first and got a nice plaque we can now show-off in the Botlab (I think we also got some prize money but I'm not sure how much yet...).
- It's always a good idea to reflect on what we learned from the competition soon after finishing it. Here are some things we learned, things we want to try, and some general ideas for next year...
- Choose the algorithm first and then design the robot around it.
- Do thorough design reviews early to catch critical flaws before it's too late.
- Code early and design tests to validate performance.
- Path planning with encoders is something we'd like to perfect and use more in our code.
- Mapping (SLAM)
- Dual processors (have an Arduino that acts as a realtime controller responsible for low level motion commands like PID and another Arduino that does higher-level navigation and decision making or serial communication back to the computer)
use Xbee's early on for wireless sensor feedback (figure out how to upload code remotely) - this should very much improve the testing and coding process