Composed of a set of ROS nodes that facilitate the user interaction with a robot, the CoWriter project is designed for children to teach a social robot handwriting. The intuition behind this interaction is "learning by teaching" where children can have the acquisiton of handwriting by teaching a robot to write better. Nao is an autonomous, programmable humanoid robot and has been used for demonstration purposes for this project.
Last semester, three different teams from the Software Project subject (COMP90082) took over this project with goals to:
- update the CoWriter project from Python2 to Python3 ;
- integrate ChatGPT to enable NAO robot to have conversations with children.
Currently, these projects are each deployed in different versions and environments and have achieved slightly different outcomes.
This semester, our team aims to:
- merge the previous projects in one unified environment ;
- update the CoWriter learning algorithm and UI ;
- enhance NAO's conversation capabilities using ChatGPT.
Name | Role | Contact |
---|---|---|
Wafa Johal | Client | [email protected] |
Sebastian Bobadilla | Project Supervisor | [email protected] |
Eunji Kim (Rachel) | Product Owner, Dev Member | [email protected] |
Difan Wu | Scrum Master, Dev Member | [email protected] |
Aurélien Plaire | Tech Lead | [email protected] |
Chien-Pu Lin (Jeff) | Test Lead | [email protected] |
Yangchen Shen | Quality Lead | [email protected] |
├── .github/workflows/ # Implementation of the GitHub Actions
├── docker/ # Docker resources
├── docs/ # Documentation files
├── src/
├── .gitignore
├── CHANGELOG.md
├── docker-compose.development.yml # Docker compose file for development
├── docker-compose.production.yml # Docker compose file for production
├── CHANGELOG.md
├── Makefile # Commands to launch the project
├── README.md
└── requirements.txt # Python dependencies
The Git branching model used for this project will be Gitflow Workflow.
The general idea of this workflow is to work with 2 principal branches:
- main which will host the tested and finalised source code ;
- develop which will serve as a feature integration branch to test new releases before merging them on main.
More information about this workflow is available here.
Most of our code development will be Python, so the coding standards used for this language will be the following:
- PEP8 for all the coding conventions (ex: syntax checking, best practices) ;
- Black for code formatting automation (ex: maximum character number per line).
To ensure that the code pushed is consistent with the chosen Python standards, a GitHub Action has been set on the repository (see the .github/workflows
folder).
At each commit, a pipeline will be triggered. It will execute a command (module Flake8) to check if each specified Python file complies with PEP8’s rules.
If the pipeline should fail, it would mean some changes have to be made to ensure the consistency of the source code.
The demo video presenting the features developed during Sprint 2 is available here.
The demo video presenting the features developed during Sprint 3 is available here.
The final video of our poduct is available here.