Introduction: Autonomous Construction Zone - a Robot to Create Floor Plans

My name is Matthew Lomax, and under the direction and supervision of my STEM teacher Mr.Scott Kutz (Westlake High School, OH.), I helped him create this Project Based Instructable to utilize and co-teach in our engineering honors class.

Students will learn to reverse engineer software and build hardware for use with said software, this lesson includes 3 sections: reverse engineering, designing and building, calibration, and tuning. Each section builds upon the previous section. All sections have included tests, a reference design is included.

Groups of four students will use their knowledge of Python and robotics to reverse engineer the software that controls a robot. Students will not be given any information about the intended functionality of the robot, they will have to determine what the software does, how it expects to interact with its environment, and how to build a robot that the software can control.

In the first phase of the lesson, students will be given access to the main board of the robot and the Thonny Python IDE. Students will connect the board to the IDE and begin to take notes on how they think the software works and what they believe each part of the code does.

In the second phase, students will begin the designing and building phase.

Students will be given access to all of the hardware that they will need to build a working robot, with the exception of chassis pieces and wheels.

Students will use fusion360 to design and build a robot from scratch.

In the third and final phase, students will test, tune, and calibrate their robot using any means that they wish. Students will test their robots with paths provided on the included GitHub and when they are satisfied with its performance, they will present their robot to the class with a demo showing the robot in action.

Supplies

materials:

1x chassis

1x suspension

2x wheel

1x markerActuator

1x markerClamp

1x boardHolder

2x nema17 pancake stepper motors

2x servo42c stepper motor driver kits

8x m3x25 bolts

8x m3x5 bolts

4x m4x10 bolts

4x m4 nuts

1x 9g metal gear servo

1x pen spring

1x esp32 devboard

1x generic push switch

1x passive buzzer

1x ssd1306 oled

1x 5v regulator

2x 6 pin header (m)

1x 3 pin header (m)

1x 2 pin header (m)

1x 4 pin header (f)

1x 2 pin header (f)

1x expo dry-erase marker (chiseled tip)

1x 3s 2200mah LiPo batery

1x lipo charger (don't get a cheep one)

1x xt60 male connector

tools:

3d printer

laptop/computer

soldering iron

screwdriver kit

software:

Autodesk fusion360 or similar 3d cad software

Thonny

Step 1: Ohio Technology Standards

Ohio Standards Connection

Content Area/Discipline: technology

Standard: Define and describe technology, including its core concepts of systems, resources, requirements, processes, controls, optimization and trade-offs.

Benchmark: 9-12.DT.1.b. Discuss how a design process builds on the core concepts of technology, including the relationship between systems.

Indicator: Reverse engineer and describe the systems used in a product. Having an innovative and inventive mindset is vital to a design process.

Content Area/Discipline: technology

Standard: Identify a problem and use an engineering design process to solve the problem

Benchmark: 9-12.DT.2.b. Implement, document and present a design process as applied to a particular product, process or problem.

Indicator: Present a design solution to a chosen audience structured by the design process used to develop that solution. Use documentation of this design process as a resource A design process, including alternative solutions, needs to be documented to provide an ongoing record that tracks the progression of a solution from its initial to final stages.

Step 2: Lesson Prep

Build 1 main board per group, have the rest of the hardware ready for day 8, and optionally build the reference robot. bill of materials, main board schematic, and reference design for the robot are all provided in referenceBuildInstructions.pdf.


All files can be found here: https://github.com/Matt2D3/floorPlanRobot

Step 3: Day 1: Introduction

Students will split into groups of 4. Students will then be informed that they are starting

a new project where they will be reverse engineering software and building a robot

based on it.

After this, they will be given a pre-test to be taken as a team.

Step 4: Day Two: the Basics

Based on the results of the test, students may need to be taught about Python and/or how stepper motors and stepper motor drivers work (this will not be covered in this lesson plan).

Step 5: Day 3: Python Basics

Students will be introduced to the Python IDE Thonny, they will be tasked with creating several basic programs to demonstrate their knowledge of python.

Step 6: Day Four: the Fun Begins

Students will be given the main board for their robot.

The main board should be built as specified in referenceBuildInstructions.pdf

they will be instructed on how to connect it to Thonny.

Students will begin reverse engineering the software and take notes in a

separate document as they learn about the robot software.

Step 7: Day Five Through Seven: Reverse Engineering

students will continue to learn about the software on the robot.

Step 8: Day Eight: Start Designing

Students will be given the motors, batteries, caster bearings, and other supporting hardware (as stated in the reference build instructions). Students will begin modeling the provided parts in Autodesk Fusion360.

Step 9: Day Nine: Figuring Out Where Things Go

Students will arrange the parts that they have modeled into a configuration that they believe will be best for the robot given the knowledge that they have acquired about the software to this point.

Step 10: Day Ten Through 13: Designing the Robot

Students will model the parts that they will need to construct their robotics.

Step 11: Day 14 – 16: I Hope You Have a Lot of 3d Printers

Students will print the parts that they have designed and build the robots.

Step 12: Day 17 – 22: the Fun Stops

Students will calibrate, tune, and test their robot in preparation for the test.

They will do this with four paths provided on GitHub and the software provided on the robot.

Step 13: Day 23-27: Testing Begins

The students are to have the robot run 5 different paths, each path will be graded separately, each path will be scored with the following criteria

accuracy: how recognizable is the final drawing, (1 out of 10)

position error: how close is the robot to the expected end point (1 out of 5)

speed: how fast is the robot compared to the reference design (1 out of 5)

bonus points: did the students find and fix any bugs in the robot software (1 point each)

Step 14: Day 28: Post-test

Students will take the post-test as individuals to show that they have learned about robotics, 3d design, and Python.

Step 15: Day 29: What Went Wrong

Have all groups talk to each other about what they have learned about the robot, its software, the best way to design a robot, and how the robots could be better tuned.

Step 16: Ideas for Above or Below Average Studetns

Instruction is differentiated according to learner needs, to help all learners either meet the intent of the specified indicator(s) or, if the indicator is already met, to advance beyond the specified indicator(s).


  • if you believe that you have students who may be incapable of completing the full lesson, have said students calibrate the reference design instead of reverse engineering and constructing their own robot.
  • If you believe that you have students that are more advanced, have them implement a method of tracking the robot and using that data to increase the accuracy of the robot.


Step 17: Extension

this lesson is meant to teach about autonomous robots. The robot that this lesson is based on is a floor plan drawing robot used in construction to indicate exactly where walls should be built in a building.

Have students research this floor plan robot to come up with ways of making the robot more accurate (these plans do not have to be added to the robot)

https://www.engineering.com/story/meet-dusty-the-robot-that-draws-floor-plans-on-the-floor

if your students are advanced enough, have them come up with a better floor plan robot.


Step 18: Vocab

Vocabulary:

  • Stepper motor: a type of motor that moves in discrete steps, commonly used where precision is a necessity
  • List: a python data type that stores more than one value
  • Import: the keyword used to run the contents of the specified script
  • Function: a block of code that once defined, can be called from any point in the program
  • While loop: repeatedly runs the code that it contains until its condition is no longer met
  • If statement: runs the code that it contains once if its condition is met
  • For loop: repeatedly runs code that it contains for each item in the specified list
  • pin.value(): used to set a pin high or low or check if a pin is high or low
  • Caster wheel: a type of wheel consisting of a wheel on a pivot, can move in any direction
  • Caster bearing: a type of wheel that can move in any direction without having to pivot first

Step 19: Homework

Homework and/or Home Connections:

  • Students should be encouraged to work on their robot at home.
  • Allow students access to the code at home
  • Allow students to work on the 3D model at homework

Step 20: A Note on LiPo Safety

If you use lithium batteries, use a smoke stopper when connecting the battery to guard against short circuits. Lithium batteries are only a hazard if you use them incorrectly. Charge batteries after each class, do NOT use a depleted battery to power a robot, the reference design does NOT have over-discharge protection.