Materials required
- Autonomous exploration slides
- Otto Starter robot
- Computers with internet and/or Bluetooth connection
Optional materials
- Autonomous exploration worksheet
Learning Objectives
- Identify the key components of a robot and explain their functions.
- Describe the difference between sensors and actuators and how they interact in a robot.
- Recognize robotic systems in everyday life and be able to reason about how they help.
- Know that robots use algorithms to perform tasks.
- Write and upload programs that control the robot.
- Understand key concepts of programming (loops, conditionals, variables, and functions) and apply them to write effective programs for the Otto robot.
- Identify the problem to be solved and develop a plan to address it using the Otto robot components.
- Use an iterative design process to improve the robot’s performance.
- Create a project that combines robotics with another creative discipline.
Autonomous Exploration: What is it and how could Otto do it?
Start the lesson by asking students if they know what autonomous exploration is. Once the group gets the general idea about it, brainstorm ideas about how could Otto perform an autonomous exploration.
On slide 2, there’s a reference about how algorithms are useful to navigate a maze with a specific path. In the theoretical lesson: Algorithms, it explains how students can write algorithms to make Otto move around a maze.
Slide 3 answers the question about how Otto could perform autonomous exploration. It introduces the basic ideas of moving, reading the distance of an object in front with the ultrasonic sensor and then moving again. On slide 4 there is a basic algorithm (in text) that could help Otto to move autonomously around an area.
Activity: time to explore
Challenge students to build an algorithm into their Otto to move autonomously around the classroom without crashing into anything. On slide 5, there are block suggestions for students to use:
A possible way to combine these blocks for autonomous exploration is with a simple program that keeps moving forward and changes direction when it detects an obstacle.
Non-optimized version
This version simply connects the minimum number of blocks necessary for Otto to move without “crashing” into obstacles. Due to speed, short detection distance, and other factors, it may sometimes fail when trying to avoid them. But overall, it is the first functional algorithm for autonomous exploration.
15-1_basic-avoidance.otto
Activity expansion
Once students have their Otto moving autonomously around the classroom, a possible way to expand the activity could be through encouraging students to find out the limitans of their code. In which situations does the robot fail on its mission to explore autonomously?
Some possible failure scenarios are:
- When an object gets in front too fast and too close, the robot has no time to react. Is there any possible way to solve this?
- If every time the robot finds an obstacle in front of itself, it moves in the same direction (for example: always moving to the right), it could take the robot into an endless loop (moving back and forward all the time to the same spots). How could we solve that?
The basic program we saw in the activity can be slightly optimized by choosing a safer detection distance (which may vary depending on the environment we are exploring), using a slower speed, and introducing a randomness component to decide where the robot should move.
Optimized version
Additionally, we can include other components such as light and sound to add interactivity and decoration.
15-2_optimized-avoidance.otto
Lesson Evaluation
- Brainstormed ideas with students about how Otto could perform autonomous exploration based on their understanding.
- Students can write code to make Otto move autonomously around the classroom without collisions.
- Evaluated student-written codes for autonomous exploration to determine comprehension and effectiveness.