# Copyright (C) 2021, Yubao Liu, AISL, TOYOHASHI UNIVERSITY of TECHNOLOGY # Email: yubao.liu.ra@tut.jp FROM nvidia/cudagl:10.2-devel-ubuntu18.04 # FROM yubaoliu/root:ros-cuda10.0-cudnn7-ubuntu18.04 MAINTAINER yubao.liu.ra@tut.jp ENV LANG C.UTF-8 ENV LC_ALL C.UTF-8 # Setup timezone RUN echo 'Etc/UTC' > /etc/timezone && \ rm -f /etc/localtime && \ ln -s /usr/share/zoneinfo/Etc/UTC /etc/localtime && \ apt-get update && apt-get install -y tzdata RUN apt update \ && apt install -f \ && apt install -y libglew-dev \ libxkbcommon-dev \ libgoogle-glog-dev \ caffe-cpu \ libsnappy-dev \ libatlas-base-dev \ build-essential \ liblmdb-dev \ libleveldb-dev \ automake \ autotools-dev \ bison \ byacc \ curl \ git \ zip \ unzip \ wget \ python-dev \ python-pip \ python3-dev \ python3-pip \ libeigen3-dev \ libboost-all-dev \ protobuf-compiler \ libprotobuf-dev \ libhdf5-dev \ libopencv-dev \ python3-opencv \ lsb-core \ openssh-server \ libssl-dev \ libevent-dev \ g++ \ gdb \ sudo \ && rm -rf /var/lib/apt/lists/* # Install cmake RUN apt-get purge -y cmake \ && cd /tmp \ && wget -c https://github.com/Kitware/CMake/releases/download/v3.18.1/cmake-3.18.1.tar.gz \ && tar -xzvf cmake-3.18.1.tar.gz \ && cd cmake-3.18.1 \ && ./bootstrap && make && make install \ && rm cmake-3.18.1 -rf ## update pip RUN curl -kL https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \ && curl -kL https://bootstrap.pypa.io/get-pip.py | python3 # Install mask rcnn dependencies COPY requirements.txt /root/requirements.txt RUN pip2 install -r /root/requirements.txt --ignore-installed enum34 RUN pip3 install -r /root/requirements.txt # Add ROS repository RUN /bin/bash -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' && \ # Keys for ROS repository apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 && \ # Install ROS-Base packages apt-get update && apt install -f && apt-get install -y ros-melodic-desktop-full # Install ROS bootstrap tools RUN apt-get update && apt-get install --no-install-recommends -y \ python-rosdep \ python-rosinstall \ python-vcstools \ python-rosinstall-generator \ python-wstool # Set up rosdep RUN rosdep init RUN rosdep update ### Create catkin workspace ### RUN mkdir -p /root/catkin_ws/src WORKDIR /root/catkin_ws RUN bash -c "source /opt/ros/melodic/setup.bash && \ catkin_make -DCMAKE_BUILD_TYPE=Release" # Load ROS environment at docker exec bash RUN echo "source /opt/ros/melodic/setup.bash" >> /root/.bashrc RUN echo "source /root/catkin_ws/devel/setup.bash" >> /root/.bashrc ##############################################3 ## coco API RUN pip2 install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI RUN pip3 install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI # Download Maskrcnn modle RUN mkdir /root/cnnmodel \ && cd /root/cnnmodel \ && wget -c https://github.com/matterport/Mask_RCNN/releases/download/v1.0/mask_rcnn_coco.h5 \ && wget -c http://mi.eng.cam.ac.uk/~agk34/resources/SegNet/segnet_pascal.caffemodel # Sophus RUN git clone https://github.com/yubaoliu/Sophus.git \ && cd Sophus \ && git checkout master \ && mkdir build \ && cd build \ && cmake .. -DCMAKE_BUILD_TYPE=Release \ && make -j3 \ && make install # G2O RUN git clone https://github.com/yubaoliu/g2o.git \ && cd g2o \ && mkdir build \ && cd build \ && cmake .. -DCMAKE_BUILD_TYPE=Release \ && make -j 3 \ && make install # TUM Benchmark # RUN cd /root \ # && svn checkout https://svncvpr.in.tum.de/cvpr-ros-pkg/trunk/rgbd_benchmark/rgbd_benchmark_tools # caffe-segnet RUN cd /root/ \ && git clone https://github.com/yubaoliu/semseg.git \ && cd semseg/SegNet/caffe-segnet/ \ && mkdir build \ && cd build \ && cmake .. && make install #Pangolin RUN git clone https://github.com/stevenlovegrove/Pangolin.git \ && cd Pangolin \ && mkdir build && cd build \ && cmake .. -DCMAKE_BUILD_TYPE=Release \ && make -j 3 \ && make install # Tools RUN apt update && \ apt install -y vim tmux xterm lxterminal # # Install dependencies # # Newer CUDA was installed in base image, so rosdep keys of CUDA are skipped # RUN /bin/bash -c "source /opt/ros/melodic/setup.bash && \ # rosdep install --from-paths src -r -y --skip-keys=\"nvidia-cuda-dev nvidia-cuda\"" # # # Build # RUN /bin/bash -c "source /opt/ros/melodic/setup.bash && \ # catkin_make -DCMAKE_BUILD_TYPE=Release" # # Load ROS environment at each run COPY ./ros_entrypoint.sh / RUN chmod 755 /ros_entrypoint.sh ENTRYPOINT ["/ros_entrypoint.sh"] CMD ["bash"] WORKDIR /root/catkin_ws/src