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

Kinova twist controller

parent 8869f118
No related branches found
No related tags found
No related merge requests found
......@@ -22,7 +22,7 @@ ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
# Configure apt and install ubuntu-base packages
# Configure apt and install base packages
RUN apt-get update && \
apt-get -y install --no-install-recommends \
apt-transport-https \
......@@ -35,44 +35,31 @@ RUN apt-get update && \
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 \
gawk \
gdb \
git-core \
git \
git-lfs \
less \
nano \
net-tools \
openssh-client \
python3-pip \
trash-cli \
iputils-ping \
valgrind \
wget \
xterm
# Install pip3 and packages
RUN apt-get install -y \
python3-pip
RUN if [ "$ROS_DISTRO" = "noetic" ]; \
then \
conan config set general.revisions_enabled=1 \
&& conan profile new default --detect > /dev/null \
&& conan profile update settings.compiler=gcc default; \
fi
# Install zsh if requested
RUN if [ "$EXT_SHELL" = "zsh" ]; \
then \
apt-get -y install zsh; \
fi
# Configure system to look for debian packages in the Artifactory repository
# Configure system to look for debian packages in the Tecnalia's artifactory repository
COPY auth.conf /etc/apt/auth.conf.d/tecnalia.conf
RUN curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | apt-key add -
......@@ -80,32 +67,43 @@ RUN curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | apt
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
# Create a virtual environment
# RUN apt-get install -y python3-venv
# ENV VIRTUAL_ENV=/opt/venv
# RUN python3 -m venv $VIRTUAL_ENV
# ENV PATH="$VIRTUAL_ENV/bin:$PATH"
# Copy the requirements.txt file into the container
WORKDIR /tmp/dependencies/
COPY /ws_dependencies/* ./
COPY /distro_dependencies/* ./
# Install the packages listed in ${ROS_DISTRO}_requirements.txt
RUN if [ -f "${ROS_DISTRO}_requirements.txt" ]; \
then \
apt-get update && \
# Install apt-get packages
awk '/^# APT-GET PACKAGES/,/^# PIP PACKAGES/' ${ROS_DISTRO}_requirements.txt | grep -v '^#' | xargs apt-get install -y && \
# Install pip packages
awk '/^# PIP PACKAGES/,0' ${ROS_DISTRO}_requirements.txt | grep -v '^#' | xargs -r -n1 pip install ;\
apt-get clean; \
fi
# Install pip packages
RUN if [ -f "${ROS_DISTRO}_requirements.txt" ]; \
RUN rm -rf *
# Install extra packages ws_dependencies
ARG PACKAGES=none
COPY /ws_dependencies/* ./
RUN if [ "$PACKAGES" != "none" ]; \
then \
awk '/^# PIP PACKAGES/,0' ${ROS_DISTRO}_requirements.txt | grep -v '^#' | xargs -r -n1 pip install ;\
if [ -f "${PACKAGES}.txt" ]; \
then \
# Install apt-get packages
apt-get update && \
awk '/^# APT-GET PACKAGES/,/^# PIP PACKAGES/' ${PACKAGES}.txt | grep -v '^#' | xargs apt-get install -y && \
# Install pip packages
awk '/^# PIP PACKAGES/,0' ${PACKAGES}.txt | grep -v '^#' | xargs -r -n1 pip install ;\
apt-get clean; \
fi \
fi
RUN rm -rf *
......@@ -121,29 +119,27 @@ RUN if [ -f "common_libs.txt" ]; \
&& dpkg -i *.deb; \
fi
# Workaround for Azure Kinect
RUN if [ "$ROS_DISTRO" = "noetic" ]; \
then \
echo 'libk4a1.4 libk4a1.4/accepted-eula-hash string 0f5d5c5de396e4fee4c0753a21fee0c1ed726cf0316204edda484f08cb266d76' | debconf-set-selections \
&& echo 'libk4abt1.0 libk4abt1.0/accepted-eula-hash string 03a13b63730639eeb6626d24fd45cf25131ee8e8e0df3f1b63f552269b176e38' | debconf-set-selections \
&& wget https://raw.githubusercontent.com/microsoft/Azure-Kinect-Sensor-SDK/develop/scripts/99-k4a.rules \
&& mkdir -p udev/rules.d \
&& mv 99-k4a.rules udev/rules.d/ \
&& cp --parents udev/rules.d/99-k4a.rules /etc; \
fi
RUN rm -rf *
# Extra libs, e.g. vtk-7.1_20221201-1_amd64.deb
RUN if [ -f "${ROS_DISTRO}_libs.txt" ]; \
RUN apt-get --reinstall install -y libnotify-bin notify-osd
ARG PEAK_DRIVER=install
RUN if [ "$PEAK_DRIVER" = "install" ]; \
then \
grep -v '^#' ${ROS_DISTRO}_libs.txt | xargs wget \
&& dpkg -i *.deb;\
apt-get update && apt-get install -y udev libpopt-dev linux-headers-$(uname -r) \
&& wget https://www.peak-system.com/fileadmin/media/linux/files/peak-linux-driver-8.18.0.tar.gz \
&& wget https://www.peak-system.com/quick/BasicLinux -O PCAN-Basic_Linux.tar.gz \
&& tar -xvf peak-linux-driver-8.18.0.tar.gz \
&& cd peak-linux-driver-8.18.0 \
&& make clean && make install || echo 'make failed but move forward'\
&& cd .. \
&& tar -xvf PCAN-Basic_Linux.tar.gz \
&& cd PCAN-Basic_Linux-4.8.0.5/libpcanbasic \
&& make clean && make install || echo 'make failed but move forward';\
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=05-03-2024
LABEL image.date=26-08-2024
# Update final image
RUN apt-get update \
......@@ -163,8 +159,12 @@ ENV RUNNING_IN_DOCKER true
# Switch back to dialog for any ad-hoc use of apt-get
ENV DEBIAN_FRONTEND=
# Enable localhost only ROS2
ENV ROS_LOCALHOST_ONLY=1
ENV RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
ARG SHELL
ENV SHELL "${SHELL}"
ENV SHELL="${SHELL}"
ENTRYPOINT ["/ros_entrypoint.sh"]
CMD $EXT_SHELL
# APT-GET PACKAGES
# Base
python3-colcon-common-extensions
python3-vcstool
python3-pip
python3-venv
# ROS tools
ros-humble-rqt-controller-manager
ros-humble-rqt-joint-trajectory-controller
python3-bloom
python3-rosdep
fakeroot
debhelper
dh-python
# PIP PACKAGES
wheel
Cython
# EOF
......@@ -64,10 +64,18 @@ lcov
iwyu
cppcheck
ros-noetic-rviz-visual-tools
libignition-math-dev
# ros control boilerplate
libgflags-dev
libsoundio1
ros-noetic-aruco-ros
# SPOT
ros-noetic-twist-mux
ros-noetic-interactive-marker-twist-server
ros-noetic-teleop-twist-joy
ros-noetic-velodyne-pointcloud
ros-noetic-rgbd-launch
ros-noetic-velodyne-description
# PIP PACKAGES
sqlite_utils
transform3d
......
......@@ -2,6 +2,6 @@
# bat-musl
https://github.com/sharkdp/bat/releases/download/v0.24.0/bat-musl_0.24.0_amd64.deb
# lsd-musl
https://github.com/lsd-rs/lsd/releases/download/v1.0.0/lsd-musl_1.0.0_amd64.deb
https://github.com/lsd-rs/lsd/releases/download/v1.1.2/lsd-musl_1.1.2_amd64.deb
# ripgrep
https://github.com/BurntSushi/ripgrep/releases/download/14.1.0/ripgrep_14.1.0-1_amd64.deb
\ No newline at end of file
#!/bin/bash
# This script assumes it is being run in a flexbotics-base-devel container, and that
# a volume is shared in /root/src with a .rosinstall.fat_image file available
# cd $(find . -type d -name flexbotics-fat-devel) && docker run -it -v $(pwd):/root/src/$(basename $(pwd)) tecnalia-robotics-docker.artifact.tecnalia.com/flexbotics-base-devel:kinetic bash -c "$(cat generate_package_list.bash)"
if [ -z "${ROS_DISTRO}" ]; then
echo "ROS_DISTRO not defined, fallback to detect installed ROS version"
if ! rosversion -d; then
echo "rosversion not available"
ROS_DISTRO=$(find /opt/ros/ -mindepth 1 -maxdepth 1 -type d -exec basename {} \;)
else
if ! [[ $(rosversion -d) = *unknown* ]]; then
ROS_DISTRO=$(rosversion -d)
else
echo "rosversion reports unknown"
ROS_DISTRO=$(find /opt/ros/ -mindepth 1 -maxdepth 1 -type d -exec basename {} \;)
fi
fi
fi
if [ -z "${ROS_DISTRO}" ]; then
echo "ROS could not be detected"
exit 1
fi
mkdir -p /root/ws/src
cd /root/ws || exit
ln -sf /root/src/* src
apt-get update
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro "${ROS_DISTRO}" -r -y -s | grep 'apt-get install\|pip install' > /root/src/flexbotics-fat-devel/updated_bulk_install.sh
# Generated by 'rosdep install --reinstall --simulate --from-path src --ignore-src' command
# 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
ros-humble-ur-description
ros-humble-moveit-kinematics
ros-humble-moveit-planners-ompl
ros-humble-moveit-ros-move-group
ros-humble-moveit-ros-visualization
ros-humble-moveit-servo
ros-humble-moveit-simple-controller-manager
ros-humble-warehouse-ros-sqlite
ros-humble-controller-interface
ros-humble-joint-trajectory-controller
ros-humble-realtime-tools
ros-humble-ur-msgs
ros-humble-ur-client-library
ros-humble-controller-manager
ros-humble-force-torque-sensor-broadcaster
ros-humble-joint-state-broadcaster
ros-humble-position-controllers
ros-humble-ros2-controllers-test-nodes
ros-humble-velocity-controllers
ros-humble-rclpy-message-converter
python3-websocket
ros-humble-twist-stamper
cython3
gazebo
graphviz
libeigen3-dev
libgtk-3-dev
liblapack-dev
libpyside2-dev
libshiboken2-dev
pyqt5-dev
python3-argcomplete
python3-gi
python3-gi-cairo
python3-importlib-metadata
python3-lxml
python3-mock
python3-netifaces
python3-nose
python3-numpy
python3-opencv
python3-packaging
python3-pkg-resources
python3-pykdl
python3-pyqt5
python3-pyqt5.qtsvg
python3-pyside2.qtsvg
python3-pytest
python3-rospkg
python3-rospkg-modules
python3-sip-dev
python3-sklearn
python3-transforms3d
python3-websocket
python3-wxgtk4.0
python3-yaml
ros-humble-ament-cmake-nose
ros-humble-control-msgs
ros-humble-controller-manager
ros-humble-gazebo-dev
ros-humble-gazebo-msgs
ros-humble-gazebo-plugins
ros-humble-gazebo-ros
ros-humble-gazebo-ros-pkgs
ros-humble-robot-localization
docker.io
ros-humble-controller-manager-msgs
ros-humble-hardware-interface
socat
ros-humble-moveit-planners
ros-humble-gazebo-ros2-control
ros-humble-joint-state-broadcaster
ros-humble-joint-state-publisher
ros-humble-joint-state-publisher-gui
ros-humble-joint-trajectory-controller
ros-humble-librealsense2
ros-humble-moveit
ros-humble-moveit-configs-utils
ros-humble-moveit-core
ros-humble-moveit-kinematics
ros-humble-moveit-msgs
ros-humble-moveit-planners
ros-humble-moveit-planners-chomp
ros-humble-moveit-ros-move-group
ros-humble-moveit-ros-planning-interface
ros-humble-moveit-ros-visualization
ros-humble-moveit-ros-warehouse
ros-humble-moveit-setup-assistant
ros-humble-moveit-simple-controller-manager
ros-humble-moveit-visual-tools
ros-humble-navigation2
ros-humble-rclpy-message-converter
ros-humble-realsense2-camera
ros-humble-robot-localization
ros-humble-ros2-control
ros-humble-ros2-controllers
ros-humble-rviz-visual-tools
ros-humble-slam-toolbox
ros-humble-moveit-core
ros-humble-gazebo-ros2-control
ros-humble-tf-transformations
ros-humble-rosbridge-server
ros-humble-rosbridge-suite
python3-tk
ros-humble-ur-controllers
ros-humble-ur-description
ros-humble-ur-moveit-config
ros-humble-ur-robot-driver
shiboken2
xdot
xterm
# PIP PACKAGES
sqlite_utils
transform3d
open3d
pyads
sqlite-utils
torch
torchvision
transforms3d
typeguard
ultralytics
# EOF
# APT-GET PACKAGES
# Allegro hand
cmake
libeigen3-dev
libyaml-cpp-dev
libboost-filesystem-dev
libboost-system-dev
liburdf-dev
liborocos-kdl-dev
joint-state-publisher-gui
ros-humble-control-msgs
# Bringup
# ros-humble-kortex-bringup
ros-humble-moveit-ros-move-group
ros-humble-moveit-kinematics
ros-humble-moveit-planners
ros-humble-moveit-simple-controller-manager
ros-humble-joint-state-publisher
ros-humble-joint-state-publisher-gui
ros-humble-controller-manager
ros-humble-moveit-configs-utils
ros-humble-moveit-ros-visualization
ros-humble-moveit-ros-warehouse
ros-humble-moveit-setup-assistant
ros-humble-picknik-reset-fault-controller
ros-humble-picknik-twist-controller
ros-humble-hardware-interface
ros-humble-joint-trajectory-controller
ros-humble-robotiq-description
ros-humble-gazebo-ros2-control
ros-humble-gripper-controllers
ros-humble-joint-state-broadcaster
ros-humble-kinova-gen3-7dof-robotiq-2f-85-moveit-config
ros-humble-rmw-cyclonedds-cpp
ros-humble-ign-ros2-control
ros-humble-spacenav
ros-humble-ros2-control
ros-humble-ros2-controllers
ros-humble-controller-interface
ros-humble-controller-manager
ros-humble-generate-parameter-library
ros-humble-hardware-interface
# PIP PACKAGES
# transform3d
# EOF
\ No newline at end of file
# # Workaround for Azure Kinect
# RUN if [ "$ROS_DISTRO" = "noetic" ]; \
# then \
# echo 'libk4a1.4 libk4a1.4/accepted-eula-hash string 0f5d5c5de396e4fee4c0753a21fee0c1ed726cf0316204edda484f08cb266d76' | debconf-set-selections \
# && echo 'libk4abt1.0 libk4abt1.0/accepted-eula-hash string 03a13b63730639eeb6626d24fd45cf25131ee8e8e0df3f1b63f552269b176e38' | debconf-set-selections \
# && wget https://raw.githubusercontent.com/microsoft/Azure-Kinect-Sensor-SDK/develop/scripts/99-k4a.rules \
# && mkdir -p udev/rules.d \
# && mv 99-k4a.rules udev/rules.d/ \
# && cp --parents udev/rules.d/99-k4a.rules /etc; \
# fi
# # Extra libs, e.g. vtk-7.1_20221201-1_amd64.deb
# RUN if [ -f "${ROS_DISTRO}_libs.txt" ]; \
# then \
# grep -v '^#' ${ROS_DISTRO}_libs.txt | xargs wget \
# && dpkg -i *.deb;\
# fi
# # LABEL image.version=0.1.1
# ARG INSTALL_RUST="rust"
# RUN echo "BUILDING DOCKER IMAGE USING RUST = ${INSTALL_RUST}"
# ENV CARGO_HOME="/opt/cargo"
# ENV RUSTUP_HOME="/opt/rustup"
# RUN if [ "${INSTALL_RUST}" = "rust" ]; \
# then \
# echo "Installing Rust"; \
# curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y; \
# else \
# echo "Not installing Rust"; \
# fi
# # Add .cargo/bin to PATH
# ENV PATH="/opt/cargo/bin:${PATH}"
# Install nodejs
RUN mkdir -p /etc/apt/keyrings && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
RUN NODE_MAJOR=20 && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
RUN apt-get update && \
apt-get -y install nodejs
# 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 \
# Use rosdep to install ros packages
ARG ROSDEP=none
RUN if [ "$ROSDEP" != "none" ]; \
then \
git clone ${ROSDEP};\
&& rosdep update; \
&& rosdep install -iy --from-paths . --ignore-src --rosdistro ${ROS_DISTRO}; \
fi
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment