How'd We Do?
With the passing of the LEGO Mindstorms kits, we didn't have any competitors this year. But viewing footage from past challenges, here's how we compare:
- Our line-based error correction was accurate enough to usually avoid serious accumulated error.
- Successfully completed an easy, medium, and two hard boards (before the battery died).
- Passed all test cases (including the hardest level) in the algorithm tests. Also demonstrated more sophisticated reasoning such as considering distance and the new information NanoBot could learn when selecting the next square to move to.
- We only shoot the Wumpus when we have to (Peace Firstâ„¢)
- Our algorithm was lightweight and quick. It executed with no delay and used small storage to fit on the Arduino Nano's drives.
- It should be possible to maintain that level of error correction and do so without as many pauses and readjustments.
- Turning should be able to happen faster rather than correcting for so long. Note: in the past, Mindstorms' software handled all of the behind-the-scenes work with encoder feedback loops to get the motors to their proper positions. We attempted to recreate this in our limited time, which is why our feedback loops are not as advanced.
- When pathfinding, prefer to continue in the same direction. This will minimize error caused by turning.
- Complete all of the boards in fewer attempts.
Related to Class
Intelligence
As we learned in our group presentations, intelligence is multifaceted. NanoBot displays spacial intelligence as it is able to keep track of its position and orientation and use features of its environment to correct its understanding. Demonstrating spacial intelligence, it can usually move to its intended destination. NanoBot also displays logical intelligence as it is able to make deductions about the board, and navigate it in nontrivial ways. For example, NanoBot is able to able to determine where particular scents come from by comparing scents received at all nearby squares. It does not display other kinds of intelligences, so we consider NanoBot to be a weak intelligent agent. It takes in informational input (scents via Bluetooth and black/white detection via IR sensors) and processes that information to interact safely with its environment and achieve its goal of retrieving the gold.
Consciousness
We do not believe NanoBot is conscious; it does not demonstrate self-awareness, have emotions, or express thoughts and desires. Although it has pretty high computational speed, NanoBot is merely executing a series of instructions and its logic is deterministic. That is, given the same board, it will always make identical moves. We have no reason to think that it has conscious experiences.
Minds
Similarly, we do not think that NanoBot has a mind. It demonstrates some kinds of intelligence, but lacks memory, learning, motives, and awareness. And it does not seem to think or make choices of its own.
Embedded Cognition
Humans use their environment to help them think. For instance, we use calculators to enable us to tackle more complex math problems and writing to aid our memory. NanoBot uses the Arduino Nano's RAM to offload the scents that it receives, to aid its logical ability, and it uses the board markings to improve its understanding of its position and orientation on the map.
Artificial Intelligence
This project doesn't change our view on Artificial Intelligence (AI). Every AI we've seen thus far is an algorithm that maps inputs to outputs. AI seems intelligent because it will give similar outputs as humans do, but the AI is not actually thinking. This project is a great example of how an algorithm can seem intelligent, because our algorithm can make all of the deductions a human can about a board, and even much faster than a human can, but has no general intelligence.
A common shortcoming of AI is that it is often limited to particular task or environment which is was trained for. A human can learn and complete a variety of tasks in a variety of environments, but our algorithm will not work when it's applied to anything other than the Wumpus World Challenge. Even modifying the world so that there can be more than one Wumpus would cause our algorithm to fail. Historically, we've seen the same trend. We've made AIs that play chess or Go, but they can't play any other games. Even the more "sophisticated" AIs that learn language have the same problem, such as when IBM launched project Watson, attempting to repurpose the Jeopardy AI to be a digital assistant but falling short of having general human level intelligence.
This project did help us appreciate the value of adaptability in robotics. By using iterative line crossing corrections, NanoBot was able to orient itself in the correct direction more reliably than if we tried to make the rotations precisely perfect. We think that robots in the future will also benefit from adaptability to their environments.