In order to engage the audience, we decided to give them the task of programming the Rover using PicoBlocks, and have the Rover run through the martian terrain, past the hill, picking up rock samples along the way.
When we first started brainstorming for the project, we researched some background information about Mars and the Rover. According to the information that several generations of Rovers have obtained, Mars has a rough terrain, with a lot of rocks and hills. In addition, the Rovers have a camera (or multiple cameras) and a robotic arm that collects samples and breaks rocks. In order to incorporate these things into our Rover, we wanted to make a cell-phone stand on the Rover to take pictures and stream videos. For the robotic arm, we wanted to make a claw that would pick up the object upon sensing it through the light sensor.
We decided to make the Mars terrain out of Styrofoam and glue on Styrofoam rocks to mimic the actual Martian terrain. We also made a hill, but we needed to adjust the height of the hill several times until we found the height that the Rover can actually drive over.
One of the first challenges that we faced was making the flexible front wheels. Since the Rover needed to climb up and down the hill, it was important that the front wheels could move up and down according to the angle of the terrain. Our original plan was to make 6 wheels, with 2 flexible front wheels, and 2 middle wheels that are powered by two motors.
Later on, when we added the claw, it was very difficult to find a way to keep all 6 wheels and the claw at the same time. So we decided to get rid of the flexible wheels and make the Rover as compact as possible. We also decided to use bigger wheels for greater torque.
The claw gave us the most trouble, because we experienced difficulty trying to have it grab the object without getting caught on the hill.
We went through many iterations, and changed the claw so frequently that it was hard to document all the iterations. At first, we only had the upper part of the claw connected to the motor. We soon realized that it might be better to have both sides of the claw moving, so we used gears to move both sides of the claw.
We experienced a lot of problems having the claw so close to the ground because it could get caught when the Rover was going over the hill. We changed the positioning of the claw so it is closer to the center of the Rover, and we also tried to put magnets on the claw and put a paper clip on the object.
After many many trials, we found that the only way to get the claw to work was to change the claw so that only the top part moves. Also, instead of making the claw out of delrin, we used foam core so it could be more flexible. Also, instead of using Styrofoam as the object, we covered plastic balls with paper.
Our original plan was to mount a phone on the Rover and use Google hangout to stream video to a laptop, but we found out that the Rover could not support the weight of the phone and the delrin that was used to hold the phone in place.
We tried making compact versions of the phone stand, but the Rover would not go over the hill. We decided that the only way to have a functioning Rover is to get rid of the phone.
Before the exhibition, we made custom blocks on PicoBlocks so the users wouldn't be overwhelmed with the amount of programming that they would have to do.
During testing, we found out that the light sensor could not sense the object (martian rocks) fast enough if the Rover is moving too fast. At the same time, the Rover would not be able to go past the hill if we lowered the power altogether. Therefore, we made two types of forward commands, one with power set at 100 and another with power set at 80.
The participants were informed about the project and the NASA Rover, and were asked to program the Rover using PicoBlocks. To get started, the participants tested different command blocks. For example, they tested the FWD (forward) block to determine the approximate distance that the Rover travels. Then, they tested the RdSens (read sensor) block so they could see the different sensor readings for the terrain and the object.
We allowed the participants to program a code that would make the Rover successfully go past the hill and grab the object.
Here are some examples of the codes that our participants constructed.
Initially, about 2-3 FWD(power=100) blocks were used because the Rover needed to go over the hill. Afterwards, the if-then block tells the Rover to stop for 2 seconds and close the claw when the sensor detects an object, and keep going forward slowly (power=80) if it doesn't detect an object.
We assisted the participants and led them to the right direction when they were having trouble programming. Overall, the participants were very engaged and seemed determined to get the Rover to work. It was very interactive, so we could not accommodate as many participants, but I really enjoyed the experience.
While doing research for the poster, we found out that the Rover that we modeled after was from the Mars Exploration mission from 2003, and the most recent Curiosity Rover uses very advanced technology. For example, instead of solar power, the Curiosity Rover uses radioisotope thermoelectric generator that generates electricity from radioactive decay. Also, the Curiosity was gently lowered to the ground by a 'sky crane' rather than being inside an airbag as it fell from the sky.
Video of working claw:
It would have been nice if we could include the camera on the Rover, so I would have liked to spend more time in trying to get it to work. Also, I'd like to perfect the claw so it can grab objects with more ease.