SwayForm/Learning Hub
Learning Hub/Student Projects

Student Projects

Instead of hand-building a ROS 2 package structure from scratch, students create a named project using the SwayForm project-creation tool, which generates the right folders and starter files automatically.

Creating a project

The command-line tool asks a short set of questions:

  • Project name
  • Student or team identifier
  • Optional project password
  • Selected lab or starter template
bash — example session
$ swayform-new-project
Project name: gesture-club-team3
Student or team ID: team3
Optional project password: ********
Starter template (blank / lab-01 / lab-03 / demo-wave): lab-03

Created ~/ros2_ws/src/gesture-club-team3/
  ├── package.xml
  ├── setup.py
  ├── gesture_club_team3/
  │   └── main.py
  └── PROJECT_INFO.txt

What gets generated

  • A standard ROS 2 package structure
  • Starter Python files, matching the chosen template
  • Partially completed exercises, comments, and instructions where the template is a lab
  • Required configuration (package.xml, setup.py)
  • Submission metadata used later by the validation queue
About project passwords

An optional project password is a SwayForm classroom-organization feature that helps a student or team find and protect their own project and discourages accidental changes by someone else. ROS 2 itself has no concept of password-protected packages, and because every project lives on one shared Linux account, a password here is not a real security boundary — see SSH & Student Accounts.

Working in your project

Open your generated folder in VS Code, edit main.py (or the files listed in PROJECT_INFO.txt), and test locally before submitting. When ready, submit through the queue rather than running against the physical robot directly — see Validation & Queue.