diff --git a/dockerfiles/devenv.Dockerfile b/dockerfiles/devenv.Dockerfile index 3ae4b0faaf9d11ebb871707b8eabe3f043ca6168..e48dd3c49bd30e52d52094016fff7e3291b4cc9a 100644 --- a/dockerfiles/devenv.Dockerfile +++ b/dockerfiles/devenv.Dockerfile @@ -50,6 +50,17 @@ RUN apt-get update && \ wget \ xterm +# Install pip3 and packages +RUN apt-get install -y \ + python3-pip \ + && pip3 install sqlite_utils \ + && pip3 install conan==1.59 \ + && pip3 install transforms3d \ + && conan config set general.revisions_enabled=1 \ + && conan profile new default --detect > /dev/null \ + && conan profile update settings.compiler=gcc default + +# Install zsh if requested RUN if [ "$EXT_SHELL" = "zsh" ]; \ then \ apt-get -y install zsh; \ @@ -76,49 +87,6 @@ RUN sh -c "echo 'yaml https://git.code.tecnalia.com/tecnalia_robotics-public/git # containerd.io \ # docker-compose-plugin -# Install python - python3 packages based on ubuntu version -RUN if [ "${ROS_DISTRO}" = "melodic" ]; \ - then \ - apt-get update && \ - apt-get -y install \ - ipython \ - python-catkin-tools \ - python-pip \ - python-osrf-pycommon\ - python-vcstool; \ - else\ - if [ "${ROS_DISTRO}" = "noetic" ]; \ - then \ - apt-get update && \ - apt-get -y install \ - ipython3 \ - python-is-python3 \ - python3-click \ - python3-numpy \ - python3-osrf-pycommon \ - python3-vcstool \ - python3-pip \ - # clang - clangd liblldb-dev libllvm-ocaml-dev python3-clang; \ - fi \ - fi - -# Install ROS 1 tools -RUN if [ "${ROS_DISTRO}" != "humble" ]; \ - then \ - apt-get update && \ - apt-get -y install \ - ros-${ROS_DISTRO}-catkin \ - ros-${ROS_DISTRO}-plotjuggler \ - ros-${ROS_DISTRO}-plotjuggler-ros \ - ros-${ROS_DISTRO}-rosmon \ - ros-${ROS_DISTRO}-rqt-controller-manager \ - ros-${ROS_DISTRO}-rqt-joint-trajectory-controller; \ - else \ - apt-get update && \ - apt-get -y install python3-colcon-common-extensions; \ - fi - # Copy the requirements.txt file into the container WORKDIR /tmp/dependencies/ COPY /ws_dependencies/* ./ @@ -126,9 +94,18 @@ COPY /ws_dependencies/* ./ # Install the packages listed in ${ROS_DISTRO}_requirements.txt RUN if [ -f "${ROS_DISTRO}_requirements.txt" ]; \ then \ + # apt-get update && \ + # grep -v '^#' ${ROS_DISTRO}_requirements.txt | xargs apt-get install -y && \ + # apt-get clean;\ apt-get update && \ - grep -v '^#' ${ROS_DISTRO}_requirements.txt | xargs apt-get install -y && \ - apt-get clean;\ + awk '/^# APT-GET PACKAGES/,/^# PIP PACKAGES/' ${ROS_DISTRO}_requirements.txt | grep -v '^#' | xargs apt-get install -y && \ + apt-get clean; \ + fi + +# Install pip packages +RUN if [ -f "${ROS_DISTRO}_requirements.txt" ]; \ + then \ + awk '/^# PIP PACKAGES/,0' ${ROS_DISTRO}_requirements.txt | grep -v '^#' | xargs -n1 pip install ;\ fi RUN rm -rf * @@ -149,29 +126,11 @@ RUN if [ -f "${ROS_DISTRO}_libs.txt" ]; \ grep -v '^#' ${ROS_DISTRO}_libs.txt | xargs dpkg -i ;\ fi -# Read the plugin list and copy the plugins to their destinations -RUN if [ -f "${ROS_DISTRO}_plugins.txt" ]; \ - then \ - while IFS= read -r line; \ - do \ - echo "Processing line: $line"; \ - if [[ "$line" == \#* ]]; \ - then \ - echo "Skipping ${line}"; \ - else \ - plugin_name=$(echo "$line" | awk '{print $1}'); \ - destination=$(echo "$line" | awk '{print $2}'); \ - echo "Coping ${plugin_name} into ${destination}"; \ - mkdir -p "$destination" && cp -r "$plugin_name" "$destination/"; \ - fi; \ - done < ${ROS_DISTRO}_plugins.txt ; \ - fi - RUN rm -rf * RUN apt-get --reinstall install -y libnotify-bin notify-osd # Update this date to re-run the image final update -LABEL image.date=25-10-2023 +LABEL image.date=31-10-2023 # Update final image RUN apt-get update \ diff --git a/dockerfiles/extra_libs/humble_plugins.txt b/dockerfiles/extra_libs/humble_plugins.txt index 3cb37c3ba79c2223d9155028ff92db10a0c16e43..7ec7e1d8f9a6db4d6312380a670bd676b0d8045c 100644 --- a/dockerfiles/extra_libs/humble_plugins.txt +++ b/dockerfiles/extra_libs/humble_plugins.txt @@ -1,2 +1,20 @@ +# Read the plugin list and copy the plugins to their destinations +# RUN if [ -f "${ROS_DISTRO}_plugins.txt" ]; \ +# then \ +# while IFS= read -r line; \ +# do \ +# echo "Processing line: $line"; \ +# if [[ "$line" == \#* ]]; \ +# then \ +# echo "Skipping ${line}"; \ +# else \ +# plugin_name=$(echo "$line" | awk '{print $1}'); \ +# destination=$(echo "$line" | awk '{print $2}'); \ +# echo "Coping ${plugin_name} into ${destination}"; \ +# mkdir -p "$destination" && cp -r "$plugin_name" "$destination/"; \ +# fi; \ +# done < ${ROS_DISTRO}_plugins.txt ; \ +# fi +# # list of files and destination folders librealsense_gazebo_plugin.so /usr/lib/x86_64-linux-gnu/gazebo-11/plugins diff --git a/dockerfiles/ws_dependencies/humble_requirements.txt b/dockerfiles/ws_dependencies/humble_requirements.txt index dfd061731c2c5e4024a7e044c1322fdd1cbe639f..8c85a9e19f65f324f9f786c5ecca0b7c477e9bd7 100644 --- a/dockerfiles/ws_dependencies/humble_requirements.txt +++ b/dockerfiles/ws_dependencies/humble_requirements.txt @@ -1,4 +1,9 @@ +# APT-GET PACKAGES +# Base +python3-colcon-common-extensions +# Nav2 fix libunwind-dev +# Mairon ros-humble-aws-robomaker-small-warehouse-world ros-humble-joint-state-publisher ros-humble-gazebo-ros @@ -39,4 +44,8 @@ ros-humble-moveit-setup-assistant ros-humble-navigation2 ros-humble-slam-toolbox ros-humble-moveit-core -ros-humble-gazebo-ros2-control \ No newline at end of file +ros-humble-gazebo-ros2-control +ros-humble-tf-transformations +# PIP PACKAGES +transform3d +# EOF \ No newline at end of file diff --git a/dockerfiles/ws_dependencies/melodic_requirements.txt b/dockerfiles/ws_dependencies/melodic_requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..fb7dc0700fbdbd756f5d5f1a0dee2f5b3ff57098 --- /dev/null +++ b/dockerfiles/ws_dependencies/melodic_requirements.txt @@ -0,0 +1,13 @@ +# Base +ipython +python-catkin-tools +python-pip +python-osrf-pycommon +python-vcstool +ros-melodic-catkin +ros-melodic-plotjuggler +ros-melodic-plotjuggler-ros +ros-melodic-rosmon +ros-melodic-rqt-controller-manager +ros-melodic-rqt-joint-trajectory-controller +# EOF diff --git a/dockerfiles/ws_dependencies/noetic_requirements.txt b/dockerfiles/ws_dependencies/noetic_requirements.txt index fceabe9c7f8acd71056a2772561ee99637be17c1..db67d8333443a2235f614ec209cbba7d67859afa 100644 --- a/dockerfiles/ws_dependencies/noetic_requirements.txt +++ b/dockerfiles/ws_dependencies/noetic_requirements.txt @@ -1,4 +1,22 @@ +# 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 +python3-clang +ros-noetic-catkin +ros-noetic-plotjuggler +ros-noetic-plotjuggler-ros +ros-noetic-rosmon +ros-noetic-rqt-controller-manager +ros-noetic-rqt-joint-trajectory-controller # Neurondones ros-noetic-libpcan ros-noetic-moveit-ros-move-group @@ -15,6 +33,7 @@ ros-noetic-moveit-planners ros-noetic-moveit-simple-controller-manager ros-noetic-moveit-ros-control-interface ros-noetic-moveit-msgs +ros-noetic-ros-control-boilerplate # Smart3D ros-noetic-moveit-ros-benchmarks ros-noetic-warehouse-ros-mongo @@ -39,4 +58,7 @@ ros-noetic-twist-controller lcov iwyu cppcheck -ros-noetic-rviz-visual-tools \ No newline at end of file +ros-noetic-rviz-visual-tools +# ros control boilerplate +libgflags-dev +# EOF \ No newline at end of file