Create® 3 Robot in the Classroom:
Teaching ROS 2 to Undergraduates
Briana Bouchard & Kathryn Wujciak
Tufts University
School of EngineeringAbout Us

Briana Bouchard, PhD
Assistant Teaching Professor
Mechanical Engineering

Kathryn Wujciak
Master's Student
Mechanical Engineering

Agenda
1. State of ROS 2 in Undergraduate Classrooms
2. Making ROS 2 Classroom-Friendly Using Create® 3 Robot
3. What We’ve Learned

State of ROS 2 inUndergraduate Classrooms

Why should ROS 2 be introduced in theclassroom?

Not widely integrated into
undergraduate curricula

Important to prepare students forindustry positions

What's keeping ROS 2 out of the undergraduate
classroom?
Requires some knowledge of intermediate computer science
concepts
Limited availability of educational resources for teaching ROS 2

Configuration challenges within university infrastructureMaking ROS 2 Accessible:
Classroom-Friendly
Configurations

Using theCreate® 3
Robot toTeach ROS 2

Opportunity to start in Python
and advance to ROS 2

Learn and apply ROS 2 concepts
using various functionalities of
the robot
Hands-on activities allow for
integration of multiple
engineering disciplines

Classroom-friendly Configurations

VirtualMachine

JupyterLabServer

Raspberry Pi

Classroom-friendly Configurations

VirtualMachine

JupyterLabServer

Raspberry Pi

JupyterLab ServerStudent’s Computer

Wi-Fi

ServerProsCons• Works on anycomputer• No Linux knowledge
required• Simplified interface• Server build out
with IT support• Instructor material
prep time

Wi-Fi

Create® 3 RobotJupyterLab ServerStudent’s Computer

Wi-Fi

ServerProsCons• Works on anycomputer• No Linux knowledge
required• Simplified interface• Server build out
with IT support• Instructor material
prep time

Wi-Fi

Create® 3 Robot

Recommended for FirstYear UndergraduatesRaspberry Pi

Student’s Computer
Pros• Reduce network traffic• More flexibility• Full access via
SSH/VNC• Add & control
additional sensors &actuators

Wi-Fi

Raspberry Pi
Cons• Uncontrolledenvironment• Instructor prep ofimage required

Eth over USB

Create® 3 Robot

Raspberry Pi

Student’s Computer
Pros• Reduce network traffic• More flexibility• Full access via
SSH/VNC• Add & control
additional sensors &actuators

Wi-Fi

Raspberry Pi

Eth over USB

Create® 3 RobotCons• Uncontrolledenvironment• Instructor prep ofimage requiredRecommended forUpper Level
UndergraduatesSample Curriculum – Undergraduate Robotics
Week

Week 1

Topic

Basics of Python &using Python withthe Create® 3robot

Week 2Intro to Linux &Raspberry Pi
Gears, linkages &actuators

ROS 2 Concept

Week

Week 7

Week 8Topic

Color sensor line
follower – PID
control & sensor
integration

E-stop and reset
position

ROS 2 Concept

Subscribers &Publishers

Services

Week 3

Week 4

Week 5

Week 6

Cloud-based
teleoperation
obstacle course

Invisible Springs- proportional
control

Intro to rclpy
Intro to ROS 2ROS 2 via terminal

Sensors andactuators on
Create® 3 robot

Nodes & Topics

Subscribers &Publishers

Subscribers &Publishers

Subscribers &Publishers

Week 9Week 10

Week 11

Week 12Square drive

Navigation Using
ObjectRecognition

Mapping & Nav2

Custominterfaces &packages

Actions

Subscribers,
Publishers &Actions

Parameters &Launch Files

Messages,
Services &Actions

What We've Learned

Challenges

Network connectivity & interfacing with campus IT

Fostering an environment where “experiencedcoders” and "non-experienced coders" feel equal

Facilitating students in understanding complexconcepts

Successes

Project-based learning through handson activities
Opportunity to combine multiple
engineering disciplines in projects
Collaborative environment

Key Takeaways

Acknowledgments

THANK YOU
Briana Bouchard
Briana.bouchard@tufts.edu
Kathryn Wujciak
Kathryn.wujciak@tufts.edu

20% off the iRobot® Create® 3 robot and its
accessories
code:
TUFTS-ROSCON-23
Offer code valid through November 3, 2023 on edu.irobot.com/shop and code must beentered at checkout. Cannot be applied to previous purchases or combined with any otheroffer. Not redeemable for cash or credit.