Welcome to the Xplore ROS Humble Stack assignment! This assignment is designed to help you get acquainted with ROS (Robot Operating System) using Docker, while building foundational skills that are crucial for developing a rover. This assignment is divided into three levels, each with specific objectives and tasks.
We are looking for motivated people, we will not judge you on the quality of the work. We only want to see your motivation and autonomy. There is no mandatory level required, go as far as you can!
In this assignment, you will:
- Set up your environment with Docker and ROS Humble (and understand what the hell they are?!).
- Create ROS packages and understand the basics of publisher-subscriber communication.
- Develop a custom ROS service and integrate it with a subscriber.
These tasks are designed to simulate real-world challenges you might face while working on the Xplore rover project. By the end of this assignment, you should have a solid understanding of ROS basics and be well-prepared to contribute to our team.
Note
Though you might not directly work on ROS (for example if you do Machine Learning), these knowledge will be extremely useful to integrate your code in the pipeline.
Objectives:
- Install Docker.
- Install ROS Humble using Docker.
- Test a built-in ROS command.
- Understand the concept of ROS and its advantages.
Detailed instructions for Level 1 can be found in the Level 1 file.
Objectives:
- Create a ROS package inside the Docker image.
- Implement a simple publisher and subscriber.
Detailed instructions for Level 2 can be found in the Level 2 file.
Objectives:
- Create a custom ROS service that triggers a console print and returns a result.
- Integrate the service with a subscriber.
Detailed instructions for Level 3 can be found in the Level 3 file.
You will need to fork the repository, and install Docker. Follow the procedure for your system:
If you have any trouble or problem with the assignement, do not hesitate to ask questions. Post a new question on the Issue tab of the GitHub repository.
Here are some resources to help you throughout the assignment:
We have compiled a list of useful Linux, Docker, and ROS commands to assist you with the assignment. These can be found in the UsefulCommands.md
. file.
Good luck, and we look forward to meeting you and seeing your progress during the interview!