These Python Jupyter notebooks are designed for academic teaching laboratories in robotics, using Gazebo for simulation up to physical deployment on robotic platforms. The students are not expected to install or deploy the required ROS workspace on their personal computer, but rather use lab resources at the university. The laboratories were originally designed at École de technologie supérieure, in Montréal, Canada, and have been heavily adapted for the University of Canberra. Robotic platforms are available for the students to test their algorithms along with shared laptop stations.
The notebooks are designed to be used with a ROS workspace that contains the following packages:
- Sphero RVR ROS - ROS packages for the Sphero RVR
- Part I 2-5: Foundations - Primers on Python, the terminal, and ROS, Feedback & Robotic algorithm fundamentals
- Part II 6-8: Mobile Robots - Localization, Navigation & Mapping
- Part III 10-12: Robot Manipulation - Kinematics for a Robot Manipulator
The software requires ROS to be installed to use the rclpy libraries. Follow the instructions for ROS jazzy on the official website.
Setting up a python virtual environment for can be useful in some development situations. Run the following command in a terminal at the top level of this git repository.
# create virtual environment
python3 -m venv .venv
# linux
source .venv/bin/activate
pip install -r requirements.txtThe code is provided as Jupyter notebooks. In a terminal at the top level of this git repository, run the following.
source .venv/bin/activate
# start a jupyter notebook server
jupyter lab --ip=0.0.0.0 --port=8888
# open a web browser to the address provided in the terminal
# for example: http://localhost:8888/lab?token=...A Dockerfile is provided to run the notebooks in a container. To build the container, run the following command in a terminal at the top level of this git repository.
# build the docker container
docker build -t frlab -f .binder/Dockerfile .
# run the docker container
docker run -p 8888:8888 frlab jupyter lab --ip=0.0.0.0 --port=8888
# for graphical applications, run the following command instead
docker run --rm --network host --device /dev/dri -v /tmp/.X11-unix:/tmp/.X11-unix frlabContributions are welcome. Please read the contributing guidelines for more information.
Fork the repository, make a pull request or open an issue. Contributions are welcome.
The contents of this source is provided in an experimental state and does not guarantee safe or correct operation.
The contents of this source is subject to change, without prior notice. Any available APIs are to be considered unstable and are not guaranteed to be complete and / or functional.
