A set of configuration files to generate docker images for development in ROS. The aim of this project is to provide a development environment that can be used in any ROS distribution, sharing your home directory with the container.
## Installation
To use these configuration files some prerequisites must be met.
[**rocker**](https://github.com/osrf/rocker) is a tool to run docker images with customized local support injected for things like nvidia video cards support.
#### rocker installation
```bash
sudo apt-get install python3-rocker
```
#### OYR (off-your-rocker) pluging for rocker
[**OYR**](https://github.com/sloretz/off-your-rocker) is a plugin for rocker that allows to run docker images with extra parameteers and configurations.
In this project OYR is used to launch a docker container with a named volume, not supported by rocker.
The dockerfile allows the installation of package dependencies for the workspace these could be ROS packages or python packages, installed with apt-get or pip. Packages are defined in a requirements.txt file at ws_dependencies folder, the file name is defined by the ROS_DISTRO (e.g. ./ws_dependencies/melodic_requirements.txt).
Requirements.txt file example:
```bash
# APT-GET PACKAGES
# Base
python3-catkin-tools
ipython3
python-is-python3
python3-click
python3-numpy
python3-osrf-pycommon
python3-vcstool
python3-pip
clangd
liblldb-dev
libllvm-ocaml-dev
# Neurondones
ros-noetic-libpcan
ros-noetic-moveit-ros-move-group
ros-noetic-moveit-fake-controller-manager
ros-noetic-moveit-kinematics
ros-noetic-moveit-planners-ompl
ros-noetic-moveit-ros-visualization
ros-noetic-moveit-setup-assistant
ros-noetic-ros-control
ros-noetic-ros-controllers
# PIP PACKAGES
pyk4a
# EOF
```
**TIP** To obtain the dependencies list for you workspace you can use the command `rosdep check --from-paths src --ignore-src`
If some extra libs are needed, they can be added in extra_libs folder, where a common_libs.txt file is located jointly with ROS_DISTRO_libs.txt files. These libs are packages downloaded and installed in the docker image during the build process. Therefore, files containing urls with links to the sources of the libs.
Example of common_libs.txt file:
```bash
# List with links to additional libraries to install in devenv image
If you have any feedback or suggestions about this project, please reach out to me by teams at or open an [issue](https://git.code.tecnalia.com/andres.montano/development_environment/-/issues) at the project repository.