https://github.com/pxlairobotics/ros2jazzydocker
🚀 A Docker container for ROS2 Jazzy on Ubuntu 24.04, featuring KasmVNC via HTTPS for remote desktop access and seamless simulation. 🤖
https://github.com/pxlairobotics/ros2jazzydocker
ai containerization docker gpu-acceleration headless-desktop kasmvnc opencv robot-operating-system robotics ros2 ros2-jazzy simulation ubuntu-2404 vnc
Last synced: 6 months ago
JSON representation
🚀 A Docker container for ROS2 Jazzy on Ubuntu 24.04, featuring KasmVNC via HTTPS for remote desktop access and seamless simulation. 🤖
- Host: GitHub
- URL: https://github.com/pxlairobotics/ros2jazzydocker
- Owner: PXLAIRobotics
- License: other
- Created: 2025-02-26T09:11:29.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-06-28T16:58:41.000Z (7 months ago)
- Last Synced: 2025-06-28T17:41:06.462Z (7 months ago)
- Topics: ai, containerization, docker, gpu-acceleration, headless-desktop, kasmvnc, opencv, robot-operating-system, robotics, ros2, ros2-jazzy, simulation, ubuntu-2404, vnc
- Language: Shell
- Homepage: https://github.com/PXLAIRobotics/ROS2JazzyDocker
- Size: 71.7 MB
- Stars: 6
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PXL ROS2 Jazzy Docker Image with KasmVNC
This repository provides a Docker container for ROS2 Jazzy that includes **KasmVNC**, allowing users to access the Xfce desktop environment via HTTPS for running simulations and other ROS2 applications.
## Features
- **Ubuntu 24.04 Docker container** with **ROS2 Jazzy** pre-installed.
- **KasmVNC** for desktop access within the container.
- **Xfce Desktop** accessible via port **6901**. ([https://localhost:6901](https://localhost:6901) user: ``kasm_user`` password: ``password``.)
- Scripts to build, run, attach, stop, and remove the container and image.
## Requirements
- **Docker** installed on your system ([Install Docker](https://docs.docker.com/get-docker/)).
- Recommended: **NVIDIA GPU** with drivers and NVIDIA Container Toolkit for hardware acceleration (optional).
## Files in Repository
| File | Description |
|--------------------------------------------------|--------------------------------------------------|
| `pxl_ros2_jazzy_image` | Directory containing Docker image files. |
| `001_build_pxl_ros2_jazzy_image.sh` | Builds the Docker image. |
| `002_run_pxl_ros2_jazzy_container.sh` | Runs the container from the built image. |
| `003_attach_bash_to_pxl_ros2_jazzy_container.sh` | Opens a Bash shell inside the running container. |
| `997_stop_pxl_ros2_jazzy_container.sh` | Stops the running container. |
| `998_remove_pxl_ros2_jazzy_container.sh` | Removes the stopped container. |
| `999_remove_pxl_ros2_jazzy_image.sh` | Removes the built Docker image. |
## Installation & Usage
### 1. Clone the Repository
```sh
git clone https://github.com/PXLAIRobotics/ROS2JazzyDocker.git
cd ROS2JazzyDocker
```
### 2. Build the Docker Image
```sh
./001_build_pxl_ros2_jazzy_image.sh
```
### 3. Run the Docker Container
```sh
./002_run_pxl_ros2_jazzy_container.sh
```
### 4. Access the Container via Bash
```sh
./003_attach_bash_to_pxl_ros2_jazzy_container.sh
```
### 5. Stop the Container
```sh
./997_stop_pxl_ros2_jazzy_container.sh
```
### 6. Remove the Container
```sh
./998_remove_pxl_ros2_jazzy_container.sh
```
### 7. Remove the Docker Image
```sh
./999_remove_pxl_ros2_jazzy_image.sh
```
## Accessing the Desktop Environment
After running the container, you can access the **KasmVNC** desktop by opening a web browser and navigating to:
```
https://localhost:6901
```
Default login credentials:
- **Username:** `kasm_user`
- **Password:** `password`
### Testing ROS2
To verify that ROS2 Jazzy is running correctly, follow these steps:
Open a terminal by clicking the ``Applications`` menu in the **top left corner** and selecting ``Terminal Emulator``.
Run the following command to start an example ROS 2 node:
```
ros2 run example_package example_node
```
If everything is set up correctly, you should see output similar to:
```
Hi from example_package.
```
This confirms that ROS 2 is properly installed and functional within the container.
## Showcase
Below are screenshots showcasing the usage of this ROS 2 Jazzy Docker container:
### Ubuntu Desktop
### Running ROS 2 Simulation
### OpenCV Example
## Customization
- Modify the `Dockerfile` in `pxl_ros2_jazzy_image` to add additional dependencies.
- Update the scripts to configure network settings, volumes, or GPU access.
## Contributing
Feel free to fork this repository and submit pull requests for improvements or additional features.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Third-Party Code Attribution
This project includes code from third-party sources:
- **Kasm Technologies**
- The `src/` directory in `pxl_ros2_jazzy_image/` is a direct copy from Kasm Technologies' repository.
- Portions of Kasm Technologies' code are also used in the `Dockerfile` with modifications.
- Their original MIT license is retained in `pxl_ros2_jazzy_image/src/LICENSE`.
All third-party code follows their respective licenses.
## Author
Maintained by **Tim Dupont** ([GitHub Profile](https://github.com/TimDupontPXL)).
## Acknowledgments
Special thanks to:
- **Kasm Technologies** for developing **KasmVNC**, enabling seamless remote desktop access.
- **Open Source Robotics Foundation (OSRF)** for their continued work on **ROS2**.
- **Intel**, **Willow Garage**, **Itseez**, and the OpenCV community for developing and maintaining OpenCV, a powerful computer vision library widely used in robotics and AI.
- **Canonical** for maintaining **Ubuntu**, the foundation of this Docker container.
- The broader **open-source communities** that contribute to these technologies and make innovation possible.