Skip to content

Instantly share code, notes, and snippets.

@ruffsl
Last active January 22, 2020 01:40
Show Gist options
  • Save ruffsl/10adcf619d290bd5b0e87dd9dab9a803 to your computer and use it in GitHub Desktop.
Save ruffsl/10adcf619d290bd5b0e87dd9dab9a803 to your computer and use it in GitHub Desktop.
ROS1 Realsense demo

Example

$ docker-compose up

$ rocker --nvidia --x11 --network=host osrf/ros:melodic-desktop-full rviz
version: "3"
services:
realsense_ros:
build: ./
network_mode: "host"
privileged: true
command: ["roslaunch", "realsense2_camera", "rs_camera.launch"]
ARG FROM_IMAGE=ros:melodic
# multi-stage for caching
FROM $FROM_IMAGE AS cache
# install bootstrap tools
RUN apt-get update && apt-get install --no-install-recommends -y \
python3-vcstool \
&& rm -rf /var/lib/apt/lists/*
# copy overlay source
ENV OVERLAY_WS /opt/overlay_ws
RUN mkdir -p $OVERLAY_WS/src
WORKDIR $OVERLAY_WS
COPY ./realsense.repos ./
RUN vcs import src < realsense.repos
# copy manifests for caching
WORKDIR /opt
RUN find ./ -name "package.xml" | \
xargs cp --parents -t /tmp
# && find ./ -name "COLCON_IGNORE" | \
# xargs cp --parents -t /tmp
# multi-stage for building
FROM $FROM_IMAGE AS build
# install bootstrap tools
RUN apt-get update && apt-get install --no-install-recommends -y \
git \
python3-colcon-common-extensions \
python3-colcon-mixin \
python3-vcstool \
&& rm -rf /var/lib/apt/lists/*
# setup colcon mixin and metadata
RUN colcon mixin add default \
https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml && \
colcon mixin update && \
colcon metadata add default \
https://raw.githubusercontent.com/colcon/colcon-metadata-repository/master/index.yaml && \
colcon metadata update
# setup keys
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 6F3EFCDE
# setup sources.list
RUN echo "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo bionic main" > /etc/apt/sources.list.d/realsense-public.list
# install realsense sdk dependencies
RUN apt-get update && apt-get install -y \
librealsense2-dbg \
librealsense2-dev \
librealsense2-dkms \
librealsense2-utils \
&& rm -rf /var/lib/apt/lists/*
# install CI dependencies
RUN apt-get update && apt-get install -q -y \
ccache \
lcov \
&& rm -rf /var/lib/apt/lists/*
# copy overlay manifests
ENV OVERLAY_WS /opt/overlay_ws
COPY --from=cache /tmp/overlay_ws $OVERLAY_WS
WORKDIR $OVERLAY_WS
# install overlay dependencies
RUN . /opt/ros/$ROS_DISTRO/setup.sh && \
apt-get update && rosdep install -q -y \
--from-paths \
src \
--ignore-src \
&& rm -rf /var/lib/apt/lists/*
# copy overlay source
COPY --from=cache $OVERLAY_WS ./
# build overlay source
ARG OVERLAY_MIXINS="release ccache"
RUN . /opt/ros/$ROS_DISTRO/setup.sh && \
colcon build \
--symlink-install \
--mixin $OVERLAY_MIXINS
# --event-handlers console_direct+
# source overlay from entrypoint
RUN sed --in-place \
's|^source .*|source "$OVERLAY_WS/install/setup.bash"|' \
/ros_entrypoint.sh
repositories:
IntelRealSense/realsense-ros:
type: git
url: https://github.com/IntelRealSense/realsense-ros.git
version: development
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment