.. _install_from_source_via_docker: Installation from Source with Docker (Containerized ROS 2) =========================================================== This guide explains how to install **Ufil** using Docker with a containerized ROS 2 environment. This approach avoids modifying your host ROS installation and keeps all dependencies isolated. Prerequisites ------------- Before installing Ufil, ensure Docker is installed on your system. Follow the official installation guide for your platform: - `Docker Installation Guide `_ After installation, verify Docker is working: .. code-block:: bash docker --version Building Ufil from Source -------------------------- 1. Clone the Ufil Workspace ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Clone the Ufil workspace repository: .. code-block:: bash git clone ufil_ws cd ufil_ws 2. Build the Docker Image ~~~~~~~~~~~~~~~~~~~~~~~~~~ The repository provides a development Docker image. You can either use the VS Code Dev Container integration or build the image manually: .. code-block:: bash ./docker/create_image.bash 3. Build the Ufil Workspace ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Build the workspace inside the container: .. code-block:: bash ./docker/build_workspace.bash 4. Verify the Installation ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Start a container shell and verify that the Ufil packages are available: .. code-block:: bash ./docker/run_terminal.bash source install/setup.bash ros2 pkg list | grep ufil If Ufil packages are listed, the installation was successful. You're Done ----------- Your containerized development environment is now ready. You can start developing new features, running simulations, or contributing to the Ufil ecosystem. If you encounter issues, refer to the :ref:`Troubleshooting Guide `. Helpful Commands ----------------- Debug Build ~~~~~~~~~~~ To build Ufil in debug mode (useful for development or troubleshooting), clean the workspace first: .. code-block:: bash make clean make debug Build Specific Components ~~~~~~~~~~~~~~~~~~~~~~~~~ You can build specific parts of Ufil: - **Core functionality** .. code-block:: bash make core - **Inroad sensing** .. code-block:: bash make ssl Clean the Workspace ~~~~~~~~~~~~~~~~~~~ To remove build artifacts: .. code-block:: bash make clean