FROM tiryoh/ros-desktop-vnc:kinetic ENV DEBCONF_NOWARNINGS=yes ENV DEBIAN_FRONTEND noninteractive ENV ROS_PYTHON_VERSION 1 SHELL ["/bin/bash", "-c"] RUN sed -i 's@archive.ubuntu.com@ftp.jaist.ac.jp/pub/Linux@g' /etc/apt/sources.list RUN apt-get update && \ apt-get upgrade -y && \ apt-get install --no-install-recommends -y \ build-essential \ dkms \ openssh-server && \ apt-get -y clean && \ rm -rf /var/lib/apt/lists/* RUN mkdir /var/run/sshd && \ echo 'root:ubuntu' | chpasswd && \ sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && \ sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd EXPOSE 22 RUN apt-get update && \ apt-get upgrade -y && \ apt-get install --no-install-recommends -y \ python-catkin-tools \ python-rosdep \ openssh-server \ ros-kinetic-driver-base \ ros-kinetic-move-base-msgs \ ros-kinetic-octomap \ ros-kinetic-octomap-msgs \ ros-kinetic-humanoid-msgs \ ros-kinetic-humanoid-nav-msgs \ ros-kinetic-camera-info-manager \ ros-kinetic-camera-info-manager-py \ libccd-dev \ libccd2 \ libfcl-0.5-dev \ libfcl0.5 \ libglew-dev \ libglew1.13 \ python-bs4 \ python-html5lib \ python-lxml \ ros-kinetic-ackermann-steering-controller \ ros-kinetic-chomp-motion-planner \ ros-kinetic-combined-robot-hw \ ros-kinetic-combined-robot-hw-tests \ ros-kinetic-control-toolbox \ ros-kinetic-controller-interface \ ros-kinetic-controller-manager \ ros-kinetic-controller-manager-msgs \ ros-kinetic-controller-manager-tests \ ros-kinetic-diff-drive-controller \ ros-kinetic-effort-controllers \ ros-kinetic-force-torque-sensor-controller \ ros-kinetic-forward-command-controller \ ros-kinetic-gazebo-ros-control \ ros-kinetic-gripper-action-controller \ ros-kinetic-hardware-interface \ ros-kinetic-imu-sensor-controller \ ros-kinetic-joint-limits-interface \ ros-kinetic-joint-state-controller \ ros-kinetic-joint-trajectory-controller \ ros-kinetic-moveit-core \ ros-kinetic-moveit-fake-controller-manager \ ros-kinetic-moveit-kinematics \ ros-kinetic-moveit-msgs \ ros-kinetic-moveit-planners-ompl \ ros-kinetic-moveit-ros-move-group \ ros-kinetic-moveit-ros-perception \ ros-kinetic-moveit-ros-planning \ ros-kinetic-moveit-simple-controller-manager \ ros-kinetic-naoqi-bridge-msgs \ ros-kinetic-naoqi-dcm-driver \ ros-kinetic-naoqi-driver \ ros-kinetic-naoqi-driver-py \ ros-kinetic-naoqi-libqi \ ros-kinetic-naoqi-libqicore \ ros-kinetic-naoqi-pose \ ros-kinetic-naoqi-sensors-py \ ros-kinetic-object-recognition-msgs \ ros-kinetic-ompl \ ros-kinetic-pepper-bringup \ ros-kinetic-pepper-control \ ros-kinetic-pepper-dcm-bringup \ ros-kinetic-pepper-description \ ros-kinetic-pepper-gazebo-plugin \ ros-kinetic-pepper-moveit-config \ ros-kinetic-pepper-robot \ ros-kinetic-pepper-sensors-py \ ros-kinetic-position-controllers \ ros-kinetic-realtime-tools \ ros-kinetic-rgbd-launch ros-kinetic-ros-control \ ros-kinetic-ros-controllers \ ros-kinetic-rqt-joint-trajectory-controller \ ros-kinetic-srdfdom \ ros-kinetic-transmission-interface \ ros-kinetic-urdfdom-py \ ros-kinetic-velocity-controllers \ libgflags2v5 \ tmux \ python-pyassimp \ ros-kinetic-dsr-description \ ros-kinetic-eigenpy \ ros-kinetic-graph-msgs \ ros-kinetic-moveit \ ros-kinetic-moveit-chomp-optimizer-adapter \ ros-kinetic-moveit-commander \ ros-kinetic-moveit-config-m0609 \ ros-kinetic-moveit-config-m0617 \ ros-kinetic-moveit-config-m1013 \ ros-kinetic-moveit-config-m1509 \ ros-kinetic-moveit-controller-manager-example \ ros-kinetic-moveit-experimental \ ros-kinetic-moveit-opw-kinematics-plugin \ ros-kinetic-moveit-planners \ ros-kinetic-moveit-planners-chomp \ ros-kinetic-moveit-plugins \ ros-kinetic-moveit-pr2 ros-kinetic-moveit-python \ ros-kinetic-moveit-resources \ ros-kinetic-moveit-ros \ ros-kinetic-moveit-ros-benchmarks \ ros-kinetic-moveit-ros-control-interface \ ros-kinetic-moveit-ros-manipulation \ ros-kinetic-moveit-ros-planning-interface \ ros-kinetic-moveit-ros-robot-interaction \ ros-kinetic-moveit-ros-visualization \ ros-kinetic-moveit-ros-warehouse \ ros-kinetic-moveit-runtime \ ros-kinetic-moveit-setup-assistant \ ros-kinetic-moveit-sim-controller \ ros-kinetic-moveit-visual-tools \ ros-kinetic-pr2-controllers-msgs \ ros-kinetic-pr2-description \ ros-kinetic-pr2-mechanism-msgs \ ros-kinetic-pr2-moveit-config \ ros-kinetic-pr2-moveit-plugins \ ros-kinetic-ros-control-boilerplate \ ros-kinetic-rosparam-shortcuts \ ros-kinetic-rviz-visual-tools \ ros-kinetic-warehouse-ros \ iputils-ping \ ros-kinetic-joint-trajectory-* \ ros-kinetic-move-base \ ros-kinetic-teleop-twist-keyboard && \ apt-get -y clean && \ rm -rf /var/lib/apt/lists/* RUN mkdir -p /home/ubuntu/catkin_ws/src && \ /bin/bash -c "source /opt/ros/kinetic/setup.bash ; cd /home/ubuntu/catkin_ws/src ; catkin_init_workspace" && \ /bin/bash -c "source /opt/ros/kinetic/setup.bash ; cd /home/ubuntu/catkin_ws && catkin build" && \ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc && \ echo "source /home/ubuntu/catkin_ws/devel/setup.bash" >> ~/.bashrc && \ echo "export ROS_PACKAGE_PATH=\${ROS_PACKAGE_PATH}:/home/ubuntu/catkin_ws" >> ~/.bashrc && \ echo "export ROS_WORKSPACE=/home/ubuntu/catkin_ws" >> ~/.bashrc && \ echo "alias cm='cd ~/catkin_ws;catkin build'" >> ~/.bashrc && \ echo "alias cs='cd ~/catkin_ws/src'" >> ~/.bashrc && \ apt-get update && \ apt-get upgrade -y && \ cd /home/ubuntu/catkin_ws && \ catkin build && \ cd /home/ubuntu/catkin_ws/src && \ git clone https://github.com/ros-naoqi/naoqi_driver.git && \ rosdep install -i --from-paths . --ignore-src --rosdistro kinetic -y ./naoqi_driver && \ git clone https://github.com/SoftbankRoboticsChina/pepper-ros-navigation.git && \ rosdep install -i --from-paths . --ignore-src --rosdistro kinetic -y ./pepper-ros-navigation && \ catkin_create_pkg create_speech rospy std_msgs --rosdistro kinetic && \ cd create_speech && \ curl -o create_speech.py https://raw.githubusercontent.com/ykoga-kyutech/pepper_ros_handson/master/scripts/create_speech_template.py && \ chmod +x create_speech.py && \ cd /home/ubuntu/catkin_ws && \ catkin build && \ apt-get autoremove -y && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* # Install pynaoqi 2.5.5 library COPY ./scripts/pynaoqi-python2.7-2.5.5.5-linux64.tar.gz /home/ubuntu/pynaoqi-python2.7-2.5.5.5-linux64.tar.gz COPY ./scripts/naoqi-sdk-2.5.5.5-linux64.tar.gz /home/ubuntu/naoqi-sdk-2.5.5.5-linux64.tar.gz RUN tar -xvzf /home/ubuntu/pynaoqi-python2.7-2.5.5.5-linux64.tar.gz -C /home/ubuntu/ && \ rm /home/ubuntu/pynaoqi-python2.7-2.5.5.5-linux64.tar.gz && \ tar -xvzf /home/ubuntu/naoqi-sdk-2.5.5.5-linux64.tar.gz -C /home/ubuntu/ && \ rm /home/ubuntu/naoqi-sdk-2.5.5.5-linux64.tar.gz && \ echo "export PYTHONPATH=\${PYTHONPATH}:/home/ubuntu/naoqi-sdk-2.5.5.5-linux64/lib" >> ~/.bashrc && \ echo "export PYTHONPATH=\${PYTHONPATH}:/home/ubuntu/pynaoqi-python2.7-2.5.5.5-linux64/lib/python2.7/site-packages" >> ~/.bashrc && \ echo "export NAOqi_DIR=/home/ubuntu/naoqi-sdk-2.5.5.5-linux64" >> ~/.bashrc COPY ./scripts/startup.sh /startup.sh COPY ./scripts/connectPEPPER.sh /home/ubuntu/connectPEPPER.sh COPY ./scripts/pepper.rviz /home/ubuntu/pepper.rviz COPY ./scripts/launchdemo.txt /home/ubuntu/launchdemo.txt