Skip to content
Snippets Groups Projects
Commit 34f17430 authored by Montaño Sarria, Andres Felipe's avatar Montaño Sarria, Andres Felipe
Browse files

Removed unneccesary files

parent e071116b
No related branches found
No related tags found
No related merge requests found
Showing
with 0 additions and 1766 deletions
FROM osrf/ros:melodic-desktop-full
ENV ROS_DISTRO melodic
# Avoid warnings by switching to noninteractive
ENV DEBIAN_FRONTEND=noninteractive
# Setup environment
RUN apt-get update && apt-get install -y \
locales \
&& sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
# Configure apt and install packages
RUN apt-get -y install --no-install-recommends \
apt-transport-https \
ca-certificates \
software-properties-common \
curl \
gnupg-agent \
apt-utils dialog 2>&1 \
git \
git-lfs \
nano \
less \
iproute2 \
procps \
lsb-release \
curl \
cmake \
openssh-client \
python-catkin-tools \
python-osrf-pycommon \
ros-${ROS_DISTRO}-rosmon \
xterm \
&& rm -rf /var/lib/apt/lists/*
# Install docker-ce
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
RUN add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
RUN apt-get update && apt-get -y install --no-install-recommends \
docker-ce-cli \
&& rm -rf /var/lib/apt/lists/*
# Configure system to look for debian packages in the Artifactory repository
ARG USER_API_KEY_ARTIFACTS_TECNALIA
RUN sh -c "echo \
'deb https://${USER_API_KEY_ARTIFACTS_TECNALIA}@artifact.tecnalia.com/artifactory/tecnalia-robotics-debian xenial main' \
>> /etc/apt/sources.list.d/tecnalia.list"
# Import the key in order to be able to use the packages from the repository
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 7E72C5B4111A50084C63C9489E7A9B1D990CF897
# Configure rosdep
RUN sh -c "echo 'yaml https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/rosdistro/rosdep_tecnalia.yaml' \
>> /etc/ros/rosdep/sources.list.d/20-default.list"
# Packages installed as dependecies of kawada_lab_aplication
RUN apt-get update && apt-get install -y \
ros-melodic-ros-control-boilerplate \
ros-melodic-ur-msgs \
ros-melodic-eigen-stl-containers \
ros-melodic-industrial-robot-simulator \
ros-melodic-srdfdom \
ros-melodic-joint-state-publisher-gui \
python-pyside \
python-lxml \
python-qt4 \
python-qt4-dev \
libshiboken-dev \
shiboken \
libpyside-dev \
libcomedi-dev \
libmodbus-dev \
libcanberra-gtk-module \
libcanberra-gtk0 \
cmake
# Packages installed as dependecies of sherlock-ui
RUN apt-get install -y \
ros-melodic-rosbridge-server \
ros-melodic-moveit \
ros-melodic-hector-mapping \
ros-melodic-hector-gazebo-plugins \
ros-melodic-amcl \
ros-melodic-gmapping \
ros-melodic-twist-mux \
ros-melodic-map-server \
ros-melodic-joy \
ros-melodic-teb-local-planner \
ros-melodic-move-base \
ros-melodic-velocity-controllers \
ros-melodic-ackermann-msgs \
ros-melodic-robot-localization \
ros-melodic-imu-complementary-filter \
ros-melodic-mavros-msgs \
ros-melodic-joint-trajectory-controller \
python-sqlalchemy
# Packages installed as dependecies of botarobota
RUN apt-get install -y \
ros-melodic-ar-track-alvar-msgs \
ros-melodic-navigation
RUN apt-get install -y \
ros-melodic-ar-track-alvar \
libceres-dev \
libglfw3-dev \
sqlite3
# Update final image
RUN apt-get update && apt-get -y upgrade
RUN apt-get clean
# Set entrypoint
COPY ./ros_entrypoint.sh /
RUN chmod a+x /ros_entrypoint.sh
ENTRYPOINT ["/ros_entrypoint.sh"]
CMD ["bash"]
# Switch back to dialog for any ad-hoc use of apt-get
ENV DEBIAN_FRONTEND=
\ No newline at end of file
# syntax = docker/dockerfile:experimental
ARG BASE_IMAGE
FROM $BASE_IMAGE
ARG PROJECT_NAME
ARG PYTHON_VERSION
ARG ROS_DISTRO
ARG USERNAME
ARG UID
ARG GID
ARG ENTRY_COMMAND="bash"
# install basic packages
RUN apt-get update && apt-get install -q -y --no-install-recommends \
dirmngr \
gnupg2 \
lsb-release \
sudo \
ocl-icd-libopencl1 \
clinfo \
curl \
build-essential \
cmake \
&& rm -rf /var/lib/apt/lists/*
# Setup sources.list
RUN sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' \
&& apt-get -y install --no-install-recommends curl \
&& curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - \
&& apt-get update && apt-get install -y -qq --no-install-recommends \
ros-kinetic-ros-base "$PYTHON_VERSION"-wstool \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
/var/cache/apt/archives/*.deb
COPY . /tmpws/src/$PROJECT_NAME/
RUN --mount=type=secret,id=ssh_key --mount=type=secret,id=ssh_hostkeys --mount=type=secret,id=git_credentials \
if [ -f /tmpws/src/$PROJECT_NAME/.rosinstall ]; then \
which ssh \
|| apt-get update -qq \
&& apt-get install -y -qq --no-install-recommends openssh-client \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
/var/cache/apt/archives/*.deb; \
if [ -f /run/secrets/ssh_key ]; then \
export GIT_SSH_COMMAND="${GIT_SSH_COMMAND:-ssh} -o IdentityFile=/run/secrets/ssh_key"; \
if [ -f /run/secrets/ssh_hostkeys ]; then \
export GIT_SSH_COMMAND="${GIT_SSH_COMMAND:-ssh} -o UserKnownHostsFile=/run/secrets/ssh_hostkeys"; \
fi \
fi; \
which git \
|| apt-get update -qq \
&& apt-get install -y -qq --no-install-recommends git \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
/var/cache/apt/archives/*.deb; \
if [ -f /run/secrets/git_credentials ]; then \
git config --global credential.helper 'store --file=/run/secrets/git_credentials'; \
fi; \
wstool init /tmpws/src /tmpws/src/$PROJECT_NAME/.rosinstall; \
if [ -n "$(find /tmpws/src -name '.lfsconfig')" ]; then \
which curl \
|| apt-get update -qq \
&& apt-get install -y -qq --no-install-recommends curl; \
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash; \
apt-get install -y -qq --no-install-recommends git-lfs; \
apt-get clean; \
rm -rf /var/lib/apt/lists/* \
/var/cache/apt/archives/*.deb; \
find . -type f -name '.lfsconfig' -execdir git lfs pull \; ; \
fi; \
fi
RUN rosdep init || true
RUN --mount=type=secret,id=additional_rosdeps --mount=type=secret,id=additional_apt_sources --mount=type=secret,id=additional_apt_keys \
if [ -f /run/secrets/additional_rosdeps ]; then \
cp /run/secrets/additional_rosdeps /etc/ros/rosdep/sources.list.d/10-additional-rosdeps.list; \
fi \
&& if [ -f /run/secrets/additional_apt_sources ]; then \
apt-get update -qq \
&& apt-get install -y -qq --no-install-recommends apt-transport-https \
&& rm -rf /var/lib/apt/lists/* \
/var/cache/apt/archives/*.deb; \
if [ -f /run/secrets/additional_apt_keys ]; then \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$(cat /run/secrets/additional_apt_keys)"; \
fi; \
cp /run/secrets/additional_apt_sources /etc/apt/sources.list.d/additional_apt_sources.list; \
fi \
&& apt-get update -qq \
&& apt-get install -y -qq --no-install-recommends "$PYTHON_VERSION"-catkin-tools \
&& rosdep update --include-eol-distros \
&& rosdep install -iy --from-paths /tmpws/src --rosdistro $ROS_DISTRO \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
/var/cache/apt/archives/*.deb \
&& catkin config -w /tmpws --extend /opt/ros/"$ROS_DISTRO" --install --install-space /opt/ros/"$ROS_DISTRO"-extra --cmake-args -DCMAKE_BUILD_TYPE=Release \
&& catkin build -w /tmpws \
&& rm -rf /tmpws \
/etc/apt/sources.list.d/additional-apt-sources.list \
/etc/ros/rosdep/sources.list.d/10-additional-rosdeps.list
COPY deploy_config/ros_entrypoint.sh /ros_entrypoint.sh
ENV ROS_DISTRO=$ROS_DISTRO
ENTRYPOINT ["/ros_entrypoint.sh"]
ENV ENTRY_COMMAND=${ENTRY_COMMAND}
CMD ${ENTRY_COMMAND}
ARG DISTRO
FROM ubuntu:${DISTRO}
# Avoid warnings by switching to noninteractive
ENV DEBIAN_FRONTEND=noninteractive
# Setup environment
RUN apt-get update && apt-get install -y apt-utils
RUN apt-get install -y \
locales \
&& sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
# Configure apt and install base packages
RUN apt-get update && apt-get -y install --no-install-recommends \
apt-transport-https \
build-essential \
ca-certificates \
curl \
gnupg-agent \
software-properties-common \
dialog 2>&1 \
checkinstall \
# clang
clang-format clang-tidy clang-tools clang \
clangd libc++-dev libc++1 libc++abi-dev \
libc++abi1 libclang-dev libclang1 liblldb-dev \
libllvm-ocaml-dev libomp-dev libomp5 lld lldb \
llvm-dev llvm-runtime llvm python3-clang \
# ccmake
cmake-curses-gui \
# AppimageTool
binutils coreutils desktop-file-utils fakeroot fuse libgdk-pixbuf2.0-dev patchelf python3-pip python3-setuptools squashfs-tools strace util-linux zsync \
gdb \
git \
git-lfs \
less \
make \
nano \
libnotify-bin notify-osd \
openssh-client \
pkg-config \
terminator \
trash-cli \
valgrind \
xterm \
wget \
zsh
# Update this date to re-run the image final update
LABEL image.date=21-12-2022
# Update final image
RUN apt-get update \
&& apt-get -y upgrade
# PDF-MIX-TOOL
RUN apt-get update && apt-get -y install \
qtbase5-dev qtbase5-dev-tools qttools5-dev qttools5-dev-tools \
libqt5svg5 libqt5svg5-dev \
qpdf libqpdf-dev\
imagemagick \
libmagick++-dev
# WORKDIR /srcs
RUN wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool
RUN chmod +x /usr/local/bin/appimagetool
RUN pip3 install appimage-builder
CMD ["zsh"]
ENV SHELL /usr/bin/zsh
ENV RUNNING_IN_DOCKER true
# Switch back to dialog for any ad-hoc use of apt-get
ENV DEBIAN_FRONTEND=
\ No newline at end of file
FROM osrf/ros:foxy-desktop-focal
ENV ROS_DISTRO foxy
ENV RUNNING_IN_DOCKER true
# Avoid warnings by switching to noninteractive
ENV DEBIAN_FRONTEND=noninteractive
# Setup environment
RUN apt-get update && apt-get install -y \
locales \
&& sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
# Configure apt and install packages
RUN apt-get -y install --no-install-recommends \
apt-transport-https \
ca-certificates \
software-properties-common \
curl \
gnupg-agent \
apt-utils dialog 2>&1 \
git \
git-lfs \
nano \
less \
xterm \
zsh \
&& rm -rf /var/lib/apt/lists/*
# Configure system to look for debian packages in the Artifactory repository
ARG USER_API_KEY_ARTIFACTS_TECNALIA
RUN sh -c "echo \
'deb https://${USER_API_KEY_ARTIFACTS_TECNALIA}@artifact.tecnalia.com/artifactory/tecnalia-robotics-debian xenial main' \
>> /etc/apt/sources.list.d/tecnalia.list"
# Import the key in order to be able to use the packages from the repository
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 7E72C5B4111A50084C63C9489E7A9B1D990CF897
# Configure rosdep
RUN sh -c "echo 'yaml https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/rosdistro/rosdep_tecnalia.yaml' \
>> /etc/ros/rosdep/sources.list.d/20-default.list"
RUN add-apt-repository ppa:ros-industrial/ppa
RUN apt-get update && apt-get install -y \
taskflow
RUN apt-get update \
&& apt-get upgrade ca-certificates -y
# Update final image
RUN apt-get update && apt-get -y upgrade && apt-get -y autoremove
RUN apt-get clean
# Set entrypoint
COPY ./ros_entrypoint.sh /
RUN chmod a+x /ros_entrypoint.sh
ENTRYPOINT ["/ros_entrypoint.sh"]
CMD ["zsh"]
ENV SHELL /usr/bin/zsh
# Switch back to dialog for any ad-hoc use of apt-get
ENV DEBIAN_FRONTEND=
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
NhAAAAAwEAAQAAAQEAwZWlebIhINUGIgcjBg38QMfjMOue8odSi8t+6Z+K1G2NCVhvboQb
doEzyywA68CfxbQhLvx+trHMHXBJsfl/q92CtgLrrMqC766cHQtpJtK4jxb4i8mW6T+T7D
ezqIKyCq5pbEC2q0fE3pYLbKrF4fLi8cB5j2Qcvo9SbAGTjx9zbCNdNhsTxvFMZXzKcZfv
/qnw0wdYexFwWU4GGqEs3XR9OesZW1jtT8Mydc8j2gJC5UAxr3TlxzbEr1u+3jRqBmodsn
dqrpnkjTCUEPHPN1qzus1gqxHwBCdrGzEnJe5iOn3MxKRNpYXHDnf5g5TIkftwsYIsqKmL
JrO4MMcapQAAA8C839mMvN/ZjAAAAAdzc2gtcnNhAAABAQDBlaV5siEg1QYiByMGDfxAx+
Mw657yh1KLy37pn4rUbY0JWG9uhBt2gTPLLADrwJ/FtCEu/H62scwdcEmx+X+r3YK2Auus
yoLvrpwdC2km0riPFviLyZbpP5PsN7OogrIKrmlsQLarR8TelgtsqsXh8uLxwHmPZBy+j1
JsAZOPH3NsI102GxPG8UxlfMpxl+/+qfDTB1h7EXBZTgYaoSzddH056xlbWO1PwzJ1zyPa
AkLlQDGvdOXHNsSvW77eNGoGah2yd2qumeSNMJQQ8c83WrO6zWCrEfAEJ2sbMScl7mI6fc
zEpE2lhccOd/mDlMiR+3CxgiyoqYsms7gwxxqlAAAAAwEAAQAAAQEAuoBUyvjdR8dTwEbF
7Fhe9X5eGEx4dsn+seXcoHFvjBb7MMy9lmi6GKKDZrM/M+IBS7St35ms7pA+yQHcThXEda
zT+Ey6B1+XZBkCGE1dAeUzn8+OpwYRWShCd+p2MNuxce70bDGwizV6qsM9wHSKbpPVJvm7
Y3Uc6E4mJx4hrlj+kYZBSA7PwzjjBq1UAVjTJcTnoZkvB/OT2iC6h2Nhi58AZ0WY2G1am5
PBFl5fQKA5rTPlarCpKllKr+oJ/z+VsRdKZTFwWFG+Cll2lxCro6mLEMWJT1evqkot6tqm
/D7a3KtDvDKibd1YuI788k9AVFael5hqvIjKHa/H13g/hQAAAIB1Ws5ZjKA4uofcWCZ7X5
Ppesp58Ie8UqiTGqgJhKqmZbZDswqCNYaak1EAfX6CQDitokqgZoMmH5x/DkEXBA172az8
OmeqYDcTVdPztaIfKFxwiV+iiMBE3jXjuuk+OtIxxU6YSw7xGyRnv+AHvjAq2+Dttv3NNw
kNz7cDxVv8HAAAAIEA4txAIsk+RI6+h7GAbG3hlkA787h3w4JcS7rzj0vbjm6WU1vKeS1m
QdZsqxVnCLKNWTclqGppi714B1JNJarEDnPsXpp7ix9Y2GhvVhQAYzzd3UlrPN2lLD9nHG
vUSqbIV7kQvKs4A9X1uQEF17Mk4y2JUOhnd3A3rAR8W/lq/rMAAACBANpzM9EyQwVv0OHs
AYvS9xZmRXx3mOSFawwIckL5UhrpZN0T2Ju+Y+zh16vpXxYT7ZU/GZru2CjbO8ghrN0sms
jjXxFauwGnvkIrhyguOZoeK8SjW3UnQeVeYfUND51gO7uAKAx/Oy1XgBoYTAaBcQp5DRwG
sFTbNVjFrPr/1y1HAAAACFVidW50dTIwAQI=
-----END OPENSSH PRIVATE KEY-----
FROM osrf/ros:kinetic-desktop-full
ENV ROS_DISTRO kinetic
# Avoid warnings by switching to noninteractive
ENV DEBIAN_FRONTEND=noninteractive
# Setup environment
RUN apt-get update && apt-get install -y \
locales \
&& sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
# Configure apt and install packages
RUN apt-get -y install --no-install-recommends \
apt-transport-https \
ca-certificates \
software-properties-common \
curl \
gnupg-agent \
apt-utils dialog 2>&1 \
git \
#git-lfs \
nano \
less \
iproute2 \
procps \
lsb-release \
curl \
cmake \
openssh-client \
python-catkin-tools \
python-osrf-pycommon \
python-rosdep \
ros-${ROS_DISTRO}-rosmon \
xterm \
&& rm -rf /var/lib/apt/lists/*
# Install docker-ce
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
RUN add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
RUN apt-get update && apt-get -y install --no-install-recommends \
docker-ce-cli \
&& rm -rf /var/lib/apt/lists/*
# Configure system to look for debian packages in the Artifactory repository
ARG USER_API_KEY_ARTIFACTS_TECNALIA
RUN sh -c "echo \
'deb https://${USER_API_KEY_ARTIFACTS_TECNALIA}@artifact.tecnalia.com/artifactory/tecnalia-robotics-debian xenial main' \
>> /etc/apt/sources.list.d/tecnalia.list"
# Import the key in order to be able to use the packages from the repository
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 7E72C5B4111A50084C63C9489E7A9B1D990CF897
# Configure rosdep
RUN sh -c "echo 'yaml https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/rosdistro/rosdep_tecnalia.yaml' \
>> /etc/ros/rosdep/sources.list.d/20-default.list"
# Packages installed as dependecies of kawada_lab_aplication
RUN apt-get update && apt-get install -y \
cmake \
ros-kinetic-moveit-planners-ompl \
ros-kinetic-moveit-ros-planning \
ros-kinetic-ompl \
ros-kinetic-moveit-kinematics \
ros-kinetic-moveit-ros-planning-interface \
ros-kinetic-moveit-ros-visualization \
ros-kinetic-catkin-virtualenv \
ros-kinetic-zivid-camera \
ros-kinetic-abb-driver \
ros-kinetic-industrial-robot-simulator \
ros-kinetic-moveit-ros-move-group \
ros-kinetic-moveit-core \
ros-kinetic-srdfdom \
ros-kinetic-urdfdom-py \
ros-kinetic-moveit-ros-manipulation \
ros-kinetic-moveit-simple-controller-manager \
ros-kinetic-moveit-fake-controller-manager \
ros-kinetic-moveit-setup-assistant \
ros-kinetic-trac-ik-kinematics-plugin \
ros-kinetic-swri-profiler \
ros-kinetic-fanuc-cr7ia-support \
ros-kinetic-fanuc-driver \
ros-kinetic-fanuc-resources \
libqd-dev \
python-zmq \
python3-catkin-pkg-modules \
zsh \
&& rm -rf /var/lib/apt/lists/*
# Update final image
RUN apt-get update && apt-get -y upgrade
# Install code
# SHELL ["/bin/bash", "-o", "pipefail", "-c"]
# RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg \
# && mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg \
# && sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
# RUN apt-get update && apt-get install -y --no-install-recommends \
# code \
# && rm -rf /var/lib/apt/lists/*
# RUN code --user-data-dir /root \
# --install-extension ms-iot.vscode-ros \
# --install-extension joaompinto.asciidoctor-vscode \
# --install-extension ms-python.python \
# --install-extension ms-vscode.cpptools \
# --install-extension ms-azuretools.vscode-docker \
# --install-extension twxs.cmake
# Set entrypoint
COPY ./ros_entrypoint.sh /
RUN chmod a+x /ros_entrypoint.sh
ENTRYPOINT ["/ros_entrypoint.sh"]
CMD ["bash"]
# Switch back to dialog for any ad-hoc use of apt-get
ENV DEBIAN_FRONTEND=
FROM osrf/ros:melodic-desktop-full
ENV ROS_DISTRO melodic
# Avoid warnings by switching to noninteractive
ENV DEBIAN_FRONTEND=noninteractive
# Setup environment
RUN apt-get update && apt-get install -y \
locales \
&& sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
# Configure apt and install packages
RUN apt-get update && apt-get -y install --no-install-recommends \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common \
apt-utils dialog 2>&1 \
# Verify if git, process tools, lsb-release (common in install instructions for CLIs) are installed
# Install the https transport support package for The Artifactory debian repository
git \
git-lfs \
nano \
less \
clang-format \
direnv \
xterm \
terminator \
zsh \
#
ipython \
python-catkin-tools \
python-numpy \
python-osrf-pycommon \
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
# Install docker-ce
# RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
# RUN add-apt-repository \
# "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# RUN apt-get update && apt-get -y install --no-install-recommends \
# docker-ce \
# docker-ce-cli \
# containerd.io \
# docker-compose-plugin
# && rm -rf /var/lib/apt/lists/*
# Configure system to look for debian packages in the Artifactory repository
# ARG USER_API_KEY_ARTIFACTS_TECNALIA
# RUN sh -c "echo \
# 'deb https://${USER_API_KEY_ARTIFACTS_TECNALIA}@artifact.tecnalia.com/artifactory/tecnalia-robotics-debian xenial main' \
# >> /etc/apt/sources.list.d/tecnalia.list"
COPY auth.conf /etc/apt/auth.conf.d/tecnalia.conf
# Import the key in order to be able to use the packages from the repository
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 7E72C5B4111A50084C63C9489E7A9B1D990CF897
# Configure rosdep
RUN sh -c "echo 'yaml https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/rosdistro/rosdep_tecnalia.yaml' \
>> /etc/ros/rosdep/sources.list.d/20-default.list"
# Ros WS dependencies
RUN apt-get update && apt-get install -y \
ros-${ROS_DISTRO}-abb-driver \
ros-${ROS_DISTRO}-ackermann-msgs \
ros-${ROS_DISTRO}-amcl \
ros-${ROS_DISTRO}-ar-track-alvar \
ros-${ROS_DISTRO}-ar-track-alvar-msgs \
ros-${ROS_DISTRO}-catkin-virtualenv \
ros-${ROS_DISTRO}-effort-controllers \
ros-${ROS_DISTRO}-eigen-conversions \
ros-${ROS_DISTRO}-eigen-stl-containers \
ros-${ROS_DISTRO}-executive-smach-visualization \
ros-${ROS_DISTRO}-force-torque-sensor-controller \
ros-${ROS_DISTRO}-gmapping \
ros-${ROS_DISTRO}-hector-gazebo-plugins \
ros-${ROS_DISTRO}-hector-mapping \
ros-${ROS_DISTRO}-image-view \
ros-${ROS_DISTRO}-imu-complementary-filter \
ros-${ROS_DISTRO}-imu-tools \
ros-${ROS_DISTRO}-industrial-core \
ros-${ROS_DISTRO}-industrial-robot-simulator \
ros-${ROS_DISTRO}-interactive-marker-twist-server \
ros-${ROS_DISTRO}-joint-state-publisher-gui \
ros-${ROS_DISTRO}-joint-trajectory-controller \
ros-${ROS_DISTRO}-joy \
ros-${ROS_DISTRO}-lms1xx \
ros-${ROS_DISTRO}-map-server \
ros-${ROS_DISTRO}-mavros-msgs \
ros-${ROS_DISTRO}-move-base \
ros-${ROS_DISTRO}-moveit \
ros-${ROS_DISTRO}-moveit-opw-kinematics-plugin \
ros-${ROS_DISTRO}-moveit-resources \
ros-${ROS_DISTRO}-moveit-visual-tools \
ros-${ROS_DISTRO}-navigation \
ros-${ROS_DISTRO}-realsense2-camera \
ros-${ROS_DISTRO}-robot-localization \
ros-${ROS_DISTRO}-ros-control \
ros-${ROS_DISTRO}-ros-control-boilerplate \
ros-${ROS_DISTRO}-ros-controllers \
ros-${ROS_DISTRO}-rosbridge-server \
ros-${ROS_DISTRO}-rqt-controller-manager \
ros-${ROS_DISTRO}-rqt-joint-trajectory-controller \
ros-${ROS_DISTRO}-rviz-visual-tools \
ros-${ROS_DISTRO}-serial \
ros-${ROS_DISTRO}-spacenav-node \
ros-${ROS_DISTRO}-srdfdom \
ros-${ROS_DISTRO}-swri-profiler \
ros-${ROS_DISTRO}-teb-local-planner \
ros-${ROS_DISTRO}-trac-ik-kinematics-plugin \
ros-${ROS_DISTRO}-twist-mux \
ros-${ROS_DISTRO}-ur-msgs \
ros-${ROS_DISTRO}-usb-cam \
ros-${ROS_DISTRO}-velocity-controllers \
#
python-funcsigs \
python-lxml \
python-mock \
python-pyside \
python-qt4 \
python-qt4-dev \
python-zmq \
#
libbluetooth-dev \
libcanberra-gtk-module \
libcanberra-gtk0 \
libcanberra-gtk3-module \
libceres-dev \
libcomedi-dev \
libcwiid-dev \
libdouble-conversion-dev \
libglfw3-dev \
libmodbus-dev \
libpyside-dev \
libqd-dev \
libshiboken-dev \
libspnav-dev \
#
gir1.2-gtk-3.0 \
graphviz \
shiboken \
spacenavd \
sqlite3 \
systemd \
xdot
# Install Zivid packages
#RUN wget https://www.zivid.com/hubfs/softwarefiles/releases/1.8.3+96f35dc6-1/u18/zivid-telicam-driver_3.0.1.1-1_amd64.deb \
# https://www.zivid.com/hubfs/softwarefiles/releases/1.8.3+96f35dc6-1/u18/zivid_1.8.3+96f35dc6-1_amd64.deb \
# https://www.zivid.com/hubfs/softwarefiles/releases/1.8.3+96f35dc6-1/u18/zivid-studio_1.8.3+96f35dc6-1_amd64.deb \
# https://www.zivid.com/hubfs/softwarefiles/releases/1.8.3+96f35dc6-1/u18/zivid-tools_1.8.3+96f35dc6-1_amd64.deb
#RUN dpkg -i zivid*.deb
# Fix errors
#RUN mv /usr/include/flann/ext/lz4.h /usr/include/flann/ext/lz4.h.bak
#RUN mv /usr/include/flann/ext/lz4hc.h /usr/include/flann/ext/lz4.h.bak
#RUN ln -s /usr/include/lz4.h /usr/include/flann/ext/lz4.h
#RUN ln -s /usr/include/lz4hc.h /usr/include/flann/ext/lz4hc.h
# Python 3
RUN apt-get update && apt-get install -y \
python3-catkin-pkg-modules \
python3-gi \
python3-gi-cairo \
python3-numpy \
python3-pip \
ipython3
RUN pip3 install sqlite-utils
# Install node for UIs
# RUN curl -fsSLk https://deb.nodesource.com/setup_14.x | bash - \
# && apt-get install -y -qq nodejs \
# && npm install -g yarn
RUN curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash \
&& apt-get install -y nodejs && npm -g install yarn
# Update final image
RUN apt-get update && apt-get -y upgrade && apt-get -y autoremove
RUN apt-get clean
# Set entrypoint
COPY ./ros_entrypoint.sh /
RUN chmod a+x /ros_entrypoint.sh
ENTRYPOINT ["/ros_entrypoint.sh"]
CMD ["zsh"]
ENV SHELL /usr/bin/zsh
ENV RUNNING_IN_DOCKER true
# Switch back to dialog for any ad-hoc use of apt-get
ENV DEBIAN_FRONTEND=
FROM osrf/ros:noetic-desktop-full
ENV ROS_DISTRO noetic
# Avoid warnings by switching to noninteractive
ENV DEBIAN_FRONTEND=noninteractive
# Setup environment
RUN apt-get update && apt-get install -y \
locales \
&& sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
# Configure apt and install packages
RUN apt-get update && apt-get -y install --no-install-recommends \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common \
apt-utils dialog 2>&1 \
# Verify if git, process tools, lsb-release (common in install instructions for CLIs) are installed
# Install the https transport support package for The Artifactory debian repository
git \
git-lfs \
less \
nano \
clang-format \
direnv \
xterm \
terminator \
zsh \
#
ipython3 \
python-is-python3 \
python3-catkin-tools \
python3-click \
python3-numpy \
python3-osrf-pycommon \
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
# Install docker-ce
# RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
# RUN add-apt-repository \
# "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# RUN apt-get update && apt-get -y install \
# docker-ce \
# docker-ce-cli \
# containerd.io \
# docker-compose-plugin
# Configure system to look for debian packages in the Artifactory repository
# ARG USER_API_KEY_ARTIFACTS_TECNALIA
# RUN sh -c "echo \
# 'deb https://${USER_API_KEY_ARTIFACTS_TECNALIA}@artifact.tecnalia.com/artifactory/tecnalia-robotics-debian xenial main' \
# >> /etc/apt/sources.list.d/tecnalia.list"
COPY auth.conf /etc/apt/auth.conf.d/tecnalia.conf
# Import the key in order to be able to use the packages from the repository
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 7E72C5B4111A50084C63C9489E7A9B1D990CF897
RUN curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | apt-key add -
# Configure rosdep
RUN sh -c "echo 'yaml https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/rosdistro/rosdep_tecnalia.yaml' \
>> /etc/ros/rosdep/sources.list.d/20-default.list"
# Ros WS dependencies
RUN apt-get update && apt-get install -y \
libceres-dev \
libcomedi-dev \
libglfw3-dev \
libmodbus-dev \
python-numpy \
ros-${ROS_DISTRO}-ackermann-msgs \
ros-${ROS_DISTRO}-amcl \
ros-${ROS_DISTRO}-cartesian-trajectory-controller \
ros-${ROS_DISTRO}-chomp-motion-planner \
ros-${ROS_DISTRO}-collada-urdf \
ros-${ROS_DISTRO}-effort-controllers \
ros-${ROS_DISTRO}-force-torque-sensor-controller \
ros-${ROS_DISTRO}-gmapping \
ros-${ROS_DISTRO}-hector-gazebo-plugins \
ros-${ROS_DISTRO}-hector-mapping \
ros-${ROS_DISTRO}-imu-complementary-filter \
ros-${ROS_DISTRO}-imu-tools \
ros-${ROS_DISTRO}-industrial-core \
ros-${ROS_DISTRO}-industrial-robot-simulator \
ros-${ROS_DISTRO}-industrial-robot-status-controller \
ros-${ROS_DISTRO}-industrial-robot-status-interface \
ros-${ROS_DISTRO}-interactive-marker-twist-server \
ros-${ROS_DISTRO}-joint-trajectory-controller \
ros-${ROS_DISTRO}-joy \
ros-${ROS_DISTRO}-lms1xx \
ros-${ROS_DISTRO}-map-server \
ros-${ROS_DISTRO}-mavros-msgs \
ros-${ROS_DISTRO}-move-base \
ros-${ROS_DISTRO}-moveit-commander \
ros-${ROS_DISTRO}-moveit-fake-controller-manager \
ros-${ROS_DISTRO}-moveit-planners-chomp \
ros-${ROS_DISTRO}-moveit-planners-ompl \
ros-${ROS_DISTRO}-moveit-resources \
ros-${ROS_DISTRO}-moveit-ros-benchmarks \
ros-${ROS_DISTRO}-moveit-ros-move-group \
ros-${ROS_DISTRO}-moveit-ros-planning-interface \
ros-${ROS_DISTRO}-moveit-ros-visualization \
ros-${ROS_DISTRO}-moveit-ros-warehouse \
ros-${ROS_DISTRO}-moveit-setup-assistant\
ros-${ROS_DISTRO}-moveit-simple-controller-manager \
ros-${ROS_DISTRO}-moveit-visual-tools \
ros-${ROS_DISTRO}-navigation \
ros-${ROS_DISTRO}-pass-through-controllers \
ros-${ROS_DISTRO}-pilz-industrial-motion \
ros-${ROS_DISTRO}-realsense2-camera \
ros-${ROS_DISTRO}-robot-localization \
ros-${ROS_DISTRO}-ros-control \
ros-${ROS_DISTRO}-ros-control-boilerplate \
ros-${ROS_DISTRO}-ros-controllers \
ros-${ROS_DISTRO}-rosbridge-server \
ros-${ROS_DISTRO}-scaled-joint-trajectory-controller \
ros-${ROS_DISTRO}-serial \
ros-${ROS_DISTRO}-spacenav-node \
ros-${ROS_DISTRO}-speed-scaling-interface \
ros-${ROS_DISTRO}-speed-scaling-state-controller \
ros-${ROS_DISTRO}-teb-local-planner \
ros-${ROS_DISTRO}-trac-ik-kinematics-plugin \
ros-${ROS_DISTRO}-twist-controller \
ros-${ROS_DISTRO}-twist-mux \
ros-${ROS_DISTRO}-ur-client-library \
ros-${ROS_DISTRO}-ur-msgs \
ros-${ROS_DISTRO}-velocity-controllers \
ros-${ROS_DISTRO}-warehouse-ros-mongo \
socat
# Install pip3 and packages
RUN apt-get install -y \
python3-pip \
&& pip install sqlite_utils
# Install node for UIs
RUN curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash \
&& apt-get install -y nodejs && npm -g install yarn
# Update final image
RUN apt-get update \
&& apt-get -y upgrade
# Set entrypoint
COPY ./ros_entrypoint.sh /
RUN chmod a+x /ros_entrypoint.sh
ENTRYPOINT ["/ros_entrypoint.sh"]
CMD ["zsh"]
ENV SHELL /usr/bin/zsh
ENV RUNNING_IN_DOCKER true
# Switch back to dialog for any ad-hoc use of apt-get
ENV DEBIAN_FRONTEND=
\ No newline at end of file
ARG ROS_DISTRO
FROM osrf/ros:${ROS_DISTRO}-desktop-full
RUN echo "Building devenv for ROS" $ROS_DISTRO
# Avoid warnings by switching to noninteractive
ENV DEBIAN_FRONTEND=noninteractive
# Setup environment
RUN apt-get update && apt-get install -y apt-utils
RUN apt-get install -y \
locales \
&& sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
# Configure apt and install packages
RUN apt-get update && apt-get -y install --no-install-recommends \
apt-transport-https \
ca-certificates \
curl \
dbus-x11 \
gnupg-agent \
software-properties-common \
dialog 2>&1 \
checkinstall \
# clang
clang-format clang-tidy clang-tools clang \
libc++-dev libc++1 libc++abi-dev \
libc++abi1 libclang-dev libclang1 \
libomp-dev libomp5 lld lldb \
llvm-dev llvm-runtime llvm \
# ccmake
cmake-curses-gui \
direnv \
gdb \
git \
git-lfs \
less \
nano \
net-tools \
openssh-client \
terminator \
trash-cli \
valgrind \
xterm \
wget \
zsh
RUN if [ "${ROS_DISTRO}" != "humble" ]; \
then \
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; \
fi
RUN if [ "${ROS_DISTRO}" = "noetic" ]; \
then \
apt-get -y install \
ipython3 \
python-is-python3 \
python3-catkin-tools \
python3-click \
python3-numpy \
python3-osrf-pycommon \
python3-vcstool \
# clang
clangd liblldb-dev libllvm-ocaml-dev python3-clang; \
elif [ "${ROS_DISTRO}" = "melodic" ]; \
then \
apt-get -y install \
ipython \
python-catkin-tools \
python-pip \
python-osrf-pycommon\
python-vcstool; \
else \
echo "Not supported version"; \
fi
# Configure system to look for debian packages in the Artifactory repository
COPY auth.conf /etc/apt/auth.conf.d/tecnalia.conf
# Import the key in order to be able to use the packages from the repository
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 7E72C5B4111A50084C63C9489E7A9B1D990CF897
RUN curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | apt-key add -
# Configure rosdep
RUN sh -c "echo 'yaml https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/rosdistro/rosdep_tecnalia.yaml' \
>> /etc/ros/rosdep/sources.list.d/20-default.list"
# Install docker-ce
# RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
# RUN add-apt-repository \
# "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# RUN apt-get update && apt-get -y install \
# docker-ce \
# docker-ce-cli \
# containerd.io \
# docker-compose-plugin
# Install pip3 and packages
RUN apt-get install -y \
python3-pip \
&& pip3 install sqlite_utils \
&& pip3 install conan==1.59 \
&& conan config set general.revisions_enabled=1 \
&& conan profile new default --detect > /dev/null \
&& conan profile update settings.compiler=gcc default
# Install node for UIs
RUN curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash \
&& apt-get install -y nodejs && npm -g install yarn
# ROS 1 WS dependencies
RUN if [ "${ROS_DISTRO}" != "humble" ]; \
then \
apt-get -y install \
cython \
libceres-dev \
libcomedi-dev \
libglfw3-dev \
libmodbus-dev \
python-numpy \
python3-mock \
socat \
ros-${ROS_DISTRO}-ackermann-msgs \
ros-${ROS_DISTRO}-amcl \
ros-${ROS_DISTRO}-cartesian-trajectory-controller \
ros-${ROS_DISTRO}-chomp-motion-planner \
ros-${ROS_DISTRO}-collada-urdf \
ros-${ROS_DISTRO}-effort-controllers \
ros-${ROS_DISTRO}-force-torque-sensor-controller \
ros-${ROS_DISTRO}-gmapping \
ros-${ROS_DISTRO}-hector-gazebo-plugins \
ros-${ROS_DISTRO}-hector-mapping \
ros-${ROS_DISTRO}-imu-complementary-filter \
ros-${ROS_DISTRO}-imu-tools \
ros-${ROS_DISTRO}-industrial-core \
ros-${ROS_DISTRO}-industrial-robot-simulator \
ros-${ROS_DISTRO}-industrial-robot-status-controller \
ros-${ROS_DISTRO}-industrial-robot-status-interface \
ros-${ROS_DISTRO}-interactive-marker-twist-server \
ros-${ROS_DISTRO}-joint-trajectory-controller \
ros-${ROS_DISTRO}-joy \
ros-${ROS_DISTRO}-lms1xx \
ros-${ROS_DISTRO}-map-server \
ros-${ROS_DISTRO}-mavros-msgs \
ros-${ROS_DISTRO}-move-base \
ros-${ROS_DISTRO}-moveit-commander \
ros-${ROS_DISTRO}-moveit-fake-controller-manager \
ros-${ROS_DISTRO}-moveit-planners-chomp \
ros-${ROS_DISTRO}-moveit-planners-ompl \
ros-${ROS_DISTRO}-moveit-resources \
ros-${ROS_DISTRO}-moveit-ros-benchmarks \
ros-${ROS_DISTRO}-moveit-ros-control-interface \
ros-${ROS_DISTRO}-moveit-ros-move-group \
ros-${ROS_DISTRO}-moveit-ros-planning-interface \
ros-${ROS_DISTRO}-moveit-ros-visualization \
ros-${ROS_DISTRO}-moveit-ros-warehouse \
ros-${ROS_DISTRO}-moveit-setup-assistant \
ros-${ROS_DISTRO}-moveit-simple-controller-manager \
ros-${ROS_DISTRO}-moveit-visual-tools \
ros-${ROS_DISTRO}-navigation \
ros-${ROS_DISTRO}-pass-through-controllers \
ros-${ROS_DISTRO}-pilz-industrial-motion \
ros-${ROS_DISTRO}-rc-visard \
ros-${ROS_DISTRO}-realsense2-camera \
ros-${ROS_DISTRO}-realsense2-description \
ros-${ROS_DISTRO}-robot-localization \
ros-${ROS_DISTRO}-ros-control \
ros-${ROS_DISTRO}-ros-control-boilerplate \
ros-${ROS_DISTRO}-ros-controllers \
ros-${ROS_DISTRO}-ros-industrial-cmake-boilerplate \
ros-${ROS_DISTRO}-rosbridge-server \
ros-${ROS_DISTRO}-scaled-joint-trajectory-controller \
ros-${ROS_DISTRO}-serial \
ros-${ROS_DISTRO}-spacenav-node \
ros-${ROS_DISTRO}-speed-scaling-interface \
ros-${ROS_DISTRO}-speed-scaling-state-controller \
ros-${ROS_DISTRO}-teb-local-planner \
ros-${ROS_DISTRO}-trac-ik-kinematics-plugin \
ros-${ROS_DISTRO}-twist-controller \
ros-${ROS_DISTRO}-twist-mux \
ros-${ROS_DISTRO}-ur-client-library \
ros-${ROS_DISTRO}-ur-msgs \
ros-${ROS_DISTRO}-usb-cam \
ros-${ROS_DISTRO}-velocity-controllers \
ros-${ROS_DISTRO}-warehouse-ros-mongo; \
# ROS2 Humble dpendencies
else \
apt-get -y install \
ros-${ROS_DISTRO}-moveit \
ros-${ROS_DISTRO}-ros2-control; \
fi
RUN if [ "${ROS_DISTRO}" = "noetic" ]; \
then \
apt-get -y install \
ipython3 \
python-is-python3 \
python3-catkin-tools \
python3-click \
ros-${ROS_DISTRO}-libpcan \
python3-numpy \
python3-tk \
python3-osrf-pycommon; \
elif [ "${ROS_DISTRO}" = "melodic" ]; \
then \
apt-get -y install \
ros-${ROS_DISTRO}-ar-track-alvar \
python-mock \
python-funcsigs \
python-sqlalchemy \
python3-rospkg-modules \
python3-yaml; \
else \
echo "Not supported version"; \
fi
WORKDIR /tmp/srcs/
COPY /extra_libs/* ./
RUN if [ "${ROS_DISTRO}" = "noetic" ]; \
then \
dpkg -i bat*.deb; \
dpkg -i lsd*.deb; \
dpkg -i ripgrep*.deb; \
elif [ "${ROS_DISTRO}" = "melodic" ]; \
then \
dpkg -i *.deb; \
else \
echo "Not supported version"; \
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=24-08-2023
# Update final image
RUN apt-get update \
&& apt-get -y upgrade \
&& apt-get -y autoremove \
&& apt-get -y autoclean
# Set entrypoint
COPY ./ros_entrypoint.sh /
RUN chmod a+x /ros_entrypoint.sh
ENTRYPOINT ["/ros_entrypoint.sh"]
CMD ["zsh"]
ENV ROS_DISTRO "${ROS_DISTRO}"
ENV SHELL /usr/bin/zsh
ENV RUNNING_IN_DOCKER true
# Switch back to dialog for any ad-hoc use of apt-get
ENV DEBIAN_FRONTEND=
ARG FROM_IMAGE=osrf/ros:foxy-desktop
ARG OVERLAY_WS=/opt/ros/snpd_ws
# multi-stage for caching
FROM $FROM_IMAGE AS cacher
# clone overlay source
ARG OVERLAY_WS
WORKDIR $OVERLAY_WS/src
RUN git clone https://github.com/tecnalia-advancedmanufacturing-robotics/scan_n_plan_workshop.git
RUN vcs import ./ < scan_n_plan_workshop/dependencies_tesseract.repos
RUN vcs import ./ < scan_n_plan_workshop/dependencies.repos
RUN vcs import ./ < scan_n_plan_workshop/snp_automate_2022/dependencies.repos
# copy manifests for caching
WORKDIR /opt
RUN mkdir -p /tmp/opt && \
find ./ -name "package.xml" | \
xargs cp --parents -t /tmp/opt && \
find ./ -name "COLCON_IGNORE" | \
xargs cp --parents -t /tmp/opt || true
# multi-stage for building
FROM $FROM_IMAGE AS builder
# Configure apt and install packages
RUN apt-get update && apt-get -y install --no-install-recommends \
apt-transport-https \
apt-utils dialog 2>&1 \
software-properties-common \
git \
nano \
less \
xterm \
zsh \
&& rm -rf /var/lib/apt/lists/*
# Install taskflow dependency from the ROS-I PPA
RUN add-apt-repository ppa:ros-industrial/ppa
RUN apt-get update && apt-get install -y \
taskflow
# Install missing dependencies
RUN apt-get update && apt-get install -y \
ros-foxy-control-msgs \
ros-foxy-diagnostic-updater \
ros-foxy-ifopt \
ros-foxy-joint-state-publisher \
ros-foxy-joint-state-publisher-gui \
ros-foxy-librealsense2 \
ros-foxy-octomap \
ros-foxy-octomap-msgs \
ros-foxy-ompl \
ros-foxy-xacro \
lcov \
libxmlrpcpp-dev \
libyaml-cpp-dev \
libbullet-dev libbullet-extras-dev libbullet2.88 libbulletml-dev
# install overlay dependencies
# finish rosdep command with true because some dependencies are not found
ARG OVERLAY_WS
WORKDIR $OVERLAY_WS
COPY --from=cacher /tmp/$OVERLAY_WS/src ./src
RUN . /opt/ros/$ROS_DISTRO/setup.sh && \
apt-get update && rosdep install -y \
--from-paths \
src \
--ignore-src \
|| true \
&& rm -rf /var/lib/apt/lists/*
# build overlay source
COPY --from=cacher $OVERLAY_WS/src ./src
ARG OVERLAY_MIXINS="release"
RUN . /opt/ros/$ROS_DISTRO/setup.sh && \
colcon build \
--cmake-args \
-DTESSERACT_BUILD_FCL=OFF \
--mixin $OVERLAY_MIXINS
# source entrypoint setup
ENV OVERLAY_WS $OVERLAY_WS
RUN sed --in-place --expression \
'$isource "$OVERLAY_WS/install/setup.bash"' \
/ros_entrypoint.sh
# run launch file
CMD ["ros2", "launch", "snp_automate_2022", "start.launch.xml"]
### FIRST LAYER TO DOWNLOAD GIT REPOS
FROM osrf/ros:melodic-desktop-full as intermediate
RUN apt-get update
#################################
# Add ssh private key
RUN apt-get install -y ssh
ARG SSH_PRIVATE_KEY
RUN mkdir ~/.ssh/
RUN echo "${SSH_PRIVATE_KEY}" > /root/.ssh/id_rsa
RUN chmod 600 ~/.ssh/id_rsa
RUN ssh-keyscan git.code.tecnalia.com >> /root/.ssh/known_hosts && chmod 644 /root/.ssh/known_hosts
#Print SSH_PRIVATE_KEY (for test)
#RUN echo "${SSH_PRIVATE_KEY}"
RUN apt-get install -y git
# Create workspace
RUN mkdir -p /root/dev_ws/src
WORKDIR /root/dev_ws/src
# Install python-wstools
RUN apt-get install -y wget
RUN wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
RUN apt-get update
RUN apt-get install -y python-catkin-tools
# Clone main package
WORKDIR /root/dev_ws/src
RUN git clone git@git.code.tecnalia.com:tecnalia_robotics/kawada/kawada_lab_application.git
# Populate dependencies with rosinstall
RUN mkdir /root/dev_ws/src/dependencies
WORKDIR /root/dev_ws/src/dependencies
RUN wstool init && wstool merge ../kawada_lab_application/.rosinstall && wstool update
### SECOND LAYER TO BUILD DEV-ENV
FROM osrf/ros:melodic-desktop-full
ENV ROS_DISTRO melodic
# Avoid warnings by switching to noninteractive
ENV DEBIAN_FRONTEND=noninteractive
# Setup environment
RUN apt-get update && apt-get install -y \
locales && sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
# Configure apt and install packages
RUN apt-get update \
&& apt-get -y install --no-install-recommends \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common \
apt-utils dialog 2>&1 \
#
# Verify git, process tools, lsb-release (common in install instructions for CLIs) installed
# Install the https transport support package for The Artifactory debian repository
&& apt-get -y install git \
git-lfs \
nano \
iproute2 \
procps \
lsb-release \
curl \
cmake \
&& apt-get -y install openssh-client \
python-catkin-tools \
python-osrf-pycommon \
ros-${ROS_DISTRO}-rosmon \
xterm \
&& rosdep init || true \
&& rm -rf /var/lib/apt/lists/*
# Install docker-ce
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
RUN add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
RUN apt-get update \
&& apt-get install -y \
docker-ce-cli \
&& rm -rf /var/lib/apt/lists/*
# Configure system to look for debian packages in the Artifactory repository
ARG USER_API_KEY_ARTIFACTS_TECNALIA
RUN sh -c "echo \
'deb https://${USER_API_KEY_ARTIFACTS_TECNALIA}@artifact.tecnalia.com/artifactory/tecnalia-robotics-debian xenial main' \
>> /etc/apt/sources.list.d/tecnalia.list"
# Import the key in order to be able to use the packages from the repository
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 7E72C5B4111A50084C63C9489E7A9B1D990CF897
# Configure rosdep
RUN sh -c "echo 'yaml https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/rosdistro/rosdep_tecnalia.yaml' \
>> /etc/ros/rosdep/sources.list.d/20-default.list"
# Packages installed as dependecies of kawada_lab_aplication
RUN apt-get update && apt-get install -y \
ros-melodic-ros-control-boilerplate \
ros-melodic-moveit-planners-ompl \
ros-melodic-moveit-plugins \
ros-melodic-moveit-ros-visualization \
ros-melodic-moveit-ros-planning-interface \
ros-melodic-moveit-setup-assistant \
ros-melodic-moveit-fake-controller-manager \
ros-melodic-moveit-kinematics \
ros-melodic-moveit-ros-move-group \
ros-melodic-ur-msgs \
ros-melodic-eigen-stl-containers \
ros-melodic-industrial-robot-simulator \
ros-melodic-move-base-msgs \
ros-melodic-srdfdom \
ros-melodic-joint-state-publisher-gui \
python-pyside \
python-lxml \
python-qt4 \
python-qt4-dev \
libshiboken-dev \
shiboken \
libpyside-dev \
libcomedi-dev \
libmodbus-dev \
libcanberra-gtk-module \
libcanberra-gtk0 \
&& rm -rf /var/lib/apt/lists/*
# Update final image
RUN apt-get update && apt-get -y upgrade
# Install helping packages
RUN apt-get install -y terminator
RUN apt-get install -y less iputils-ping
# Source ros setup.sh
RUN /bin/sh . "/opt/ros/$ROS_DISTRO/setup.bash"
# Install python-wstools
RUN apt-get install -y wget
RUN wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
RUN apt-get update
RUN apt-get install -y python-catkin-tools
# Copy workspace with dependencies created in the previous layer
COPY --from=intermediate /root/dev_ws /root/dev_ws
WORKDIR /root/dev_ws
RUN catkin init && catkin config --extend /opt/ros/melodic && catkin build
# Add source ros to .bashrc
RUN echo "#ROS\nsource /opt/ros/melodic/setup.bash\nsource /root/dev_ws/devel/setup.bash" >> /root/.bashrc
### FIRST LAYER TO DOWNLOAD GIT REPOS
FROM osrf/ros:melodic-desktop-full as intermediate
RUN apt-get update
#################################
# Add ssh private key
RUN apt-get install -y ssh
ARG SSH_PRIVATE_KEY
RUN mkdir ~/.ssh/
RUN echo "${SSH_PRIVATE_KEY}" > /root/.ssh/id_rsa
RUN chmod 600 ~/.ssh/id_rsa
RUN ssh-keyscan git.code.tecnalia.com >> /root/.ssh/known_hosts && chmod 644 /root/.ssh/known_hosts
#Print SSH_PRIVATE_KEY (for test)
RUN echo "${SSH_PRIVATE_KEY}"
RUN apt-get install -y git
# Create workspace
RUN mkdir -p /root/dev_ws/src
WORKDIR /root/dev_ws/src
# Install python-wstools
RUN apt-get install -y wget
RUN wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
RUN apt-get update
RUN apt-get install -y python-catkin-tools
# Clone main package
WORKDIR /root/dev_ws/src
RUN git clone git@git.code.tecnalia.com:tecnalia_robotics/kawada/kawada_lab_application.git
# Populate dependencies with rosinstall
RUN mkdir /root/dev_ws/src/dependencies
WORKDIR /root/dev_ws/src/dependencies
RUN wstool init && wstool merge ../kawada_lab_application/.rosinstall && wstool update
#FROM tecnalia-robotics-docker.artifact.tecnalia.com/flexbotics-fat-devel:melodic
FROM osrf/ros:melodic-desktop-full
ENV ROS_DISTRO melodic
# Avoid warnings by switching to noninteractive
ENV DEBIAN_FRONTEND=noninteractive
# Setup environment
RUN apt-get update && apt-get install -y \
locales \
&& locale-gen en_US.UTF-8
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
# Configure apt and install packages
RUN apt-get update \
&& apt-get -y install --no-install-recommends \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common \
apt-utils dialog 2>&1 \
#
# Verify git, process tools, lsb-release (common in install instructions for CLIs) installed
# Install the https transport support package for The Artifactory debian repository
&& apt-get -y install git \
git-lfs \
nano \
iproute2 \
procps \
lsb-release \
curl \
cmake \
&& apt-get -y install openssh-client \
python-catkin-tools \
python-osrf-pycommon \
ros-${ROS_DISTRO}-rosmon \
xterm \
&& rosdep init || true \
&& rm -rf /var/lib/apt/lists/*
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
RUN add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
RUN apt-get update \
&& apt-get install -y \
docker-ce-cli \
&& rm -rf /var/lib/apt/lists/*
# Configure system to look for debian packages in the Artifactory repository
RUN sh -c "echo \
'deb https://andres.montano@tecnalia.com:AKCp8jQcqPn8BQrgnqSShfsqvkS4vMbJL5WNYduVAcxaH7kbpVCyQsLnQgEhr4UeQNZoSgwwk@artifact.tecnalia.com/artifactory/tecnalia-robotics-debian xenial main' \
>> /etc/apt/sources.list.d/tecnalia.list"
# Import the key in order to be able to use the packages from the repository
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 7E72C5B4111A50084C63C9489E7A9B1D990CF897
# Configure rosdep
RUN sh -c "echo 'yaml https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/rosdistro/rosdep_tecnalia.yaml' \
>> /etc/ros/rosdep/sources.list.d/20-default.list"
# COPY ./catkin_ws_init.sh /
# Packages installed as dependecies of kawada_lab_aplication
RUN apt-get update && apt-get install -y \
ros-melodic-ros-control-boilerplate \
ros-melodic-moveit-planners-ompl \
ros-melodic-moveit-plugins \
ros-melodic-moveit-ros-visualization \
ros-melodic-moveit-ros-planning-interface \
ros-melodic-moveit-setup-assistant \
ros-melodic-moveit-fake-controller-manager \
ros-melodic-moveit-kinematics \
ros-melodic-moveit-ros-move-group \
ros-melodic-ur-msgs \
ros-melodic-eigen-stl-containers \
ros-melodic-industrial-robot-simulator \
ros-melodic-move-base-msgs \
ros-melodic-srdfdom \
ros-melodic-joint-state-publisher-gui \
python-pyside \
python-lxml \
python-qt4 \
python-qt4-dev \
libshiboken-dev \
shiboken \
libpyside-dev \
libcomedi-dev \
libmodbus-dev \
libcanberra-gtk-module \
libcanberra-gtk0 \
&& rm -rf /var/lib/apt/lists/*
# Update final image
RUN apt-get update && apt-get -y upgrade
# Install helping packages
RUN apt-get install -y terminator
RUN apt-get install -y less iputils-ping
# Source ros setup.sh
RUN /bin/sh . "/opt/ros/$ROS_DISTRO/setup.bash"
# Install python-wstools
RUN apt-get install -y wget
RUN wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
RUN apt-get update
RUN apt-get install -y python-catkin-tools
# Copy workspace with dependencies created in the previous layer
COPY --from=intermediate /root/dev_ws /root/dev_ws
WORKDIR /root/dev_ws
RUN catkin init && catkin config --extend /opt/ros/melodic && catkin build
# Add source ros to .bashrc
RUN echo "#ROS\nsource /opt/ros/melodic/setup.bash\nsource /root/dev_ws/devel/setup.bash" >> /root/.bashrc
Subproject commit 9ea290a5ed12346784b925ad213d4448844d76de
Subproject commit a860769216ba3bc7259f0c0a0aa276ea2f0e3a8f
Subproject commit eba53b1c238d3c8408f33abc24fd31ac981ac558
Subproject commit f637c1d65ebdca5474bb00bb59623e05859a4bee
# Godel
## godel_plugins
## godel_process_planning
## godel_process_path_generation
## godel_msgs
## godel_surface_detection
<https://github.com/PointCloudLibrary/pcl/issues/410>
>>>
It's pretty simple actually. Although the qhull dev(s) made it pretty hard to debug this due to
obfuscated code and design flaws.. At least they put a note about the solution onto their NEWS page <http://www.qhull.org/news/qhull-news.html> .
QHull now provides qh_QHpointer and global struct versions of the library as static and shared libraries each and the new libqhull.so is compiled without qh_QHpointer in 2012.
PCL detects libqhull.so and uses it as if it was compiled with qh_QHpointer aaand voila, you're in the middle of a jungle of undetected code incompatibilities..
I changed the library to the new "libqhull_p.so" and things work as expected.
Would be great to see this fixed in 1.7.2 :)
This brings us to politics though... It looks like ubuntu/debian didn't care to include these qh_QHpointer shared libs in their libqhull6 packages until now.
I therefore assume pcl will only work with the static libs they provide.
Also, it's important to fix PCLConfig.cmake.in:141. Not everyone's on Windows (why is this even "most likely" the case?) and this shared/wrong static mixup makes it even harder to see through this linking mess.
I should get around to create a pull-request for this over the weekend..
>>>
Using CMake to generate the correct solution file, works definitively, but on Windows, qhullstatic_p and qhullstatic_pd must be linked, instead of qhull_p and qhull_pd, as suggested, otherwise an undefined reference on 'qh_qh' is given.
>>>
Linking pcl to libqhullstatic.a solved it, as described above. As far as I can tell, this thread is the only explanation of this issue anywhere.
>>>
The only solution is to use the 8.0.0 version of qhull until PCL fixes the obsolete code.
## godel_polygon_offset
## godel_process_execution
## godel_openvoronoi
Repository that contains a ROS-Industrial Godel project-specific fork of the OpenVoronoi library.
It has been converted to a ROS catkin package by adding a package manifest (`package.xml`) and a replacement build script (`CMakeLists.txt`). It has additionally been patched to provide a getter for the `MachiningGraph` member variable `g` in the `OffsetSorter` class.
Apart from these changes (and this new `README.md` file), all sources and other files have been left unchanged and are identical to those in the [source repository][].
## Setups
### Melodic Ubuntu Bionic
libqhull7:amd64 2015.2-4
libpcl-dev 1.8.1+dfsg1-2ubuntu2.18.04.1
### Noetic Ubuntu Focal
libqhull7:amd64 2015.2-4
libpcl-dev 1.10.0+dfsg-5ubuntu1
-- Experimental on Docker - Noetic
02/24/2022
Danial
Panagoitis
Dismantling batteries
Robotic capabilities to handling batteries
Use case
TRL 5-6
RIA
Jon --
Smart handling technologies IA in background
Recycling
Outcomes:
1- High level reconfigurable and Perseption technologies focused on the environment
2- Dexterous resources
3- Increase productivity, optimize the results
Prodution line
Security
Recycling
Target cicycling?
Dircharging
cell full battery pack
Lost types of battery shapes, sizes
Discuss
Remove risk in dismantling task
Cells +measure voltaje temperature to open the cells
focuss on some type of batteries
Depending on the requirements of the batteries choose the robot
--------
Generic solution for different scenarios
How to handling in a clever way different parts
--------
Organize the WP
Others WP typical from European projects
WP low level -- sensors
WP high level -- assembly secuence generator
WP Optimization -- teachin by demos tration
Currently some ideas
--------
Partner yet have to be contacted
Raúl Monday
Kuka
# Docker cheatsheet
Para guardar una imagen que se hace en una máquina y se quiere transferir a otro sistema
```
docker save -o <path for generated tar file> <image name>
```
Para cargar una imagen desde un archivo tar
```
docker load -i <path to image tar file>
```
Para ver las dependent child images
```
for i in $(docker images -q)
do
docker history $i | grep -q <image_ID> && echo $i
done | sort -u
```
\ No newline at end of file
Finite State Machine (FSM)
This is the simplest type:
You have a collection of states that the AI can be in;
The AI is in one of these states at any given time;
The choice of whether to continue the behaviour or move onto something else is evaluated completely inside the behaviour that the AI is currently in, i.e. there is no hierarchy.
Here's an example, you have one script each for Idle, Attack, and Run, and on each of these scripts is a coroutine which ticks the behaviour implementation. Inside each coroutine would be a complete evaluation of the game state and whether to move onto something else. You can see that:
You will be re-writing a lot of code, e.g. "If enemy disappears, go to idle" would be a part of the evaluation in both the Attack and the Run scripts. And this means..
Nodes are coupled tightly to all other nodes, i.e., modifying the Idle script would directly affect whether it was still relevant to be called from any of the other behaviour scripts, or it might mean that you would have to update contextual information across all of the other scripts so that you don't get some weird behaviour. For example if you modify the Idle script to have the character wipe their brow after running from the enemy, then if it was not called from the Run behaviour it would be illogical, and then you'd have to update the context for each time Idle was called, making 'breaking' the AI very easy.
Hierarchical FSM (HFSM)
The only difference between the HFSM and the FSM is that in the HFSM there is a hierarchy of choices, meaning that choices are evaluated at a high-level before getting into the details.
For example, instead of the Attack, Run and Idle behaviours being completely self-contained, you would have a hierarchy that began with two states "EnemyFound" and "EnemyNotFound". Attack and Run would then be children of the EnemyFound state, while Idle would be a child of the EnemyNotFound state. Since you're starting from the top each tick, you can then remove the transition to Idle from the Attack and Run states, and move it up into the parent state (writing it only once). This enables better organisation of the transitions, removes a lot of re-written code etc.
However the weakness is still that in each sub-group of a hierarchy, there may be nodes that are basically a re-write of nodes in a different sub-group, because the nodes in each hierarchy are still not modular, they are still coupled tightly to their hierarchy. This is where behaviour trees come in.
Behaviour Tree (BT)
To put it simply, a behaviour tree is like an HFSM, except that the nodes in the hierarchy are modular, uncoupled and self-contained, running on a context basis from any part of any sub-group of the hierarchy.
In fact, any piece of the behaviour tree is modular, and can be called from anywhere else in the tree. This makes it possible to skip to a different area on the tree and do something else if the current evaluation finds that it is no longer relevant.
The way this is achieved is by using a Blackboard which is a cache of information that can be accessed by any of the nodes in the tree, and which contains information that makes it possible to provide a context for each node that does not depend on where it was called from, keeping it completely modular.
And instead of creating ten different versions of a behaviour depending on where it was called from, you could simply call various modular behaviours in sequence.
So...
You can see that really, these three types are not completely different, they're just improvements on eachother. In my view the main difference in terms of implementation is the overhead of building the infrastructure - BTs being more time-consuming to set up, but ultimately great for huge behaviour structures. But because BTs have a modular nature, then for smaller structures they aren't very good for keeping information together in front of a programmer's eyes, so they aren't worth it for simple AI.
---------------------------------------------------------------------------------------------------
This is a current work in progress for me. This is what I have come up with so far:
FLEXBE - Python - work in progress as per this threads comments. associated tools: unknown
SMACH - Python - orphaned in ROS1 with status: unmaintained. Did have a viewer.
SMACC - C++ - ROS2 porting is in progress. Has a viewer.
BehaviourTrees.CPP - C++ - has been ported to ROS2 and also the viewer (Groot) but I think that is all on Rolling.
py_trees - Python - has been ported to ROS2. No runtime viewer, only static dot graph output.
If I am wrong about any of these findings. do let me know. Or any other frameworks I am not aware of.
My conclusion to date is that we do not yet have any behaviour framework ported up to ROS2 with all the bells and whistles included.
It is my guess that the FLEXBE/SMACH crowd would very much want to bring their existing behaviour modules forward without having to do a complete rewrite in a new framework.
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment