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
$ 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
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.