Newer
Older
pepper / Dockerfile
  1. FROM tiryoh/ros-desktop-vnc:kinetic
  2.  
  3. ENV DEBCONF_NOWARNINGS=yes
  4. ENV DEBIAN_FRONTEND noninteractive
  5. ENV ROS_PYTHON_VERSION 1
  6. SHELL ["/bin/bash", "-c"]
  7.  
  8. RUN sed -i 's@archive.ubuntu.com@ftp.jaist.ac.jp/pub/Linux@g' /etc/apt/sources.list
  9.  
  10. RUN apt-get update && \
  11. apt-get upgrade -y && \
  12. apt-get install --no-install-recommends -y \
  13. build-essential \
  14. dkms \
  15. openssh-server && \
  16. apt-get -y clean && \
  17. rm -rf /var/lib/apt/lists/*
  18.  
  19. RUN mkdir /var/run/sshd && \
  20. echo 'root:ubuntu' | chpasswd && \
  21. sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && \
  22. sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
  23.  
  24. EXPOSE 22
  25.  
  26. RUN apt-get update && \
  27. apt-get upgrade -y && \
  28. apt-get install --no-install-recommends -y \
  29. python-catkin-tools \
  30. python-rosdep \
  31. openssh-server \
  32. ros-kinetic-driver-base \
  33. ros-kinetic-move-base-msgs \
  34. ros-kinetic-octomap \
  35. ros-kinetic-octomap-msgs \
  36. ros-kinetic-humanoid-msgs \
  37. ros-kinetic-humanoid-nav-msgs \
  38. ros-kinetic-camera-info-manager \
  39. ros-kinetic-camera-info-manager-py \
  40. libccd-dev \
  41. libccd2 \
  42. libfcl-0.5-dev \
  43. libfcl0.5 \
  44. libglew-dev \
  45. libglew1.13 \
  46. python-bs4 \
  47. python-html5lib \
  48. python-lxml \
  49. ros-kinetic-ackermann-steering-controller \
  50. ros-kinetic-chomp-motion-planner \
  51. ros-kinetic-combined-robot-hw \
  52. ros-kinetic-combined-robot-hw-tests \
  53. ros-kinetic-control-toolbox \
  54. ros-kinetic-controller-interface \
  55. ros-kinetic-controller-manager \
  56. ros-kinetic-controller-manager-msgs \
  57. ros-kinetic-controller-manager-tests \
  58. ros-kinetic-diff-drive-controller \
  59. ros-kinetic-effort-controllers \
  60. ros-kinetic-force-torque-sensor-controller \
  61. ros-kinetic-forward-command-controller \
  62. ros-kinetic-gazebo-ros-control \
  63. ros-kinetic-gripper-action-controller \
  64. ros-kinetic-hardware-interface \
  65. ros-kinetic-imu-sensor-controller \
  66. ros-kinetic-joint-limits-interface \
  67. ros-kinetic-joint-state-controller \
  68. ros-kinetic-joint-trajectory-controller \
  69. ros-kinetic-moveit-core \
  70. ros-kinetic-moveit-fake-controller-manager \
  71. ros-kinetic-moveit-kinematics \
  72. ros-kinetic-moveit-msgs \
  73. ros-kinetic-moveit-planners-ompl \
  74. ros-kinetic-moveit-ros-move-group \
  75. ros-kinetic-moveit-ros-perception \
  76. ros-kinetic-moveit-ros-planning \
  77. ros-kinetic-moveit-simple-controller-manager \
  78. ros-kinetic-naoqi-bridge-msgs \
  79. ros-kinetic-naoqi-dcm-driver \
  80. ros-kinetic-naoqi-driver \
  81. ros-kinetic-naoqi-driver-py \
  82. ros-kinetic-naoqi-libqi \
  83. ros-kinetic-naoqi-libqicore \
  84. ros-kinetic-naoqi-pose \
  85. ros-kinetic-naoqi-sensors-py \
  86. ros-kinetic-object-recognition-msgs \
  87. ros-kinetic-ompl \
  88. ros-kinetic-pepper-bringup \
  89. ros-kinetic-pepper-control \
  90. ros-kinetic-pepper-dcm-bringup \
  91. ros-kinetic-pepper-description \
  92. ros-kinetic-pepper-gazebo-plugin \
  93. ros-kinetic-pepper-moveit-config \
  94. ros-kinetic-pepper-robot \
  95. ros-kinetic-pepper-sensors-py \
  96. ros-kinetic-position-controllers \
  97. ros-kinetic-realtime-tools \
  98. ros-kinetic-rgbd-launch ros-kinetic-ros-control \
  99. ros-kinetic-ros-controllers \
  100. ros-kinetic-rqt-joint-trajectory-controller \
  101. ros-kinetic-srdfdom \
  102. ros-kinetic-transmission-interface \
  103. ros-kinetic-urdfdom-py \
  104. ros-kinetic-velocity-controllers \
  105. libgflags2v5 \
  106. tmux \
  107. python-pyassimp \
  108. ros-kinetic-dsr-description \
  109. ros-kinetic-eigenpy \
  110. ros-kinetic-graph-msgs \
  111. ros-kinetic-moveit \
  112. ros-kinetic-moveit-chomp-optimizer-adapter \
  113. ros-kinetic-moveit-commander \
  114. ros-kinetic-moveit-config-m0609 \
  115. ros-kinetic-moveit-config-m0617 \
  116. ros-kinetic-moveit-config-m1013 \
  117. ros-kinetic-moveit-config-m1509 \
  118. ros-kinetic-moveit-controller-manager-example \
  119. ros-kinetic-moveit-experimental \
  120. ros-kinetic-moveit-opw-kinematics-plugin \
  121. ros-kinetic-moveit-planners \
  122. ros-kinetic-moveit-planners-chomp \
  123. ros-kinetic-moveit-plugins \
  124. ros-kinetic-moveit-pr2 ros-kinetic-moveit-python \
  125. ros-kinetic-moveit-resources \
  126. ros-kinetic-moveit-ros \
  127. ros-kinetic-moveit-ros-benchmarks \
  128. ros-kinetic-moveit-ros-control-interface \
  129. ros-kinetic-moveit-ros-manipulation \
  130. ros-kinetic-moveit-ros-planning-interface \
  131. ros-kinetic-moveit-ros-robot-interaction \
  132. ros-kinetic-moveit-ros-visualization \
  133. ros-kinetic-moveit-ros-warehouse \
  134. ros-kinetic-moveit-runtime \
  135. ros-kinetic-moveit-setup-assistant \
  136. ros-kinetic-moveit-sim-controller \
  137. ros-kinetic-moveit-visual-tools \
  138. ros-kinetic-pr2-controllers-msgs \
  139. ros-kinetic-pr2-description \
  140. ros-kinetic-pr2-mechanism-msgs \
  141. ros-kinetic-pr2-moveit-config \
  142. ros-kinetic-pr2-moveit-plugins \
  143. ros-kinetic-ros-control-boilerplate \
  144. ros-kinetic-rosparam-shortcuts \
  145. ros-kinetic-rviz-visual-tools \
  146. ros-kinetic-warehouse-ros \
  147. iputils-ping \
  148. ros-kinetic-joint-trajectory-* \
  149. ros-kinetic-move-base \
  150. ros-kinetic-teleop-twist-keyboard && \
  151. apt-get -y clean && \
  152. rm -rf /var/lib/apt/lists/*
  153.  
  154. RUN mkdir -p /home/ubuntu/catkin_ws/src && \
  155. /bin/bash -c "source /opt/ros/kinetic/setup.bash ; cd /home/ubuntu/catkin_ws/src ; catkin_init_workspace" && \
  156. /bin/bash -c "source /opt/ros/kinetic/setup.bash ; cd /home/ubuntu/catkin_ws && catkin build" && \
  157. echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc && \
  158. echo "source /home/ubuntu/catkin_ws/devel/setup.bash" >> ~/.bashrc && \
  159. echo "export ROS_PACKAGE_PATH=\${ROS_PACKAGE_PATH}:/home/ubuntu/catkin_ws" >> ~/.bashrc && \
  160. echo "export ROS_WORKSPACE=/home/ubuntu/catkin_ws" >> ~/.bashrc && \
  161. echo "alias cm='cd ~/catkin_ws;catkin build'" >> ~/.bashrc && \
  162. echo "alias cs='cd ~/catkin_ws/src'" >> ~/.bashrc
  163.  
  164. RUN apt-get update && \
  165. apt-get upgrade -y && \
  166. cd /home/ubuntu/catkin_ws && \
  167. catkin build && \
  168. cd /home/ubuntu/catkin_ws/src && \
  169. git clone https://github.com/ros-naoqi/naoqi_driver.git && \
  170. rosdep install -i --from-paths . --ignore-src --rosdistro kinetic -y ./naoqi_driver && \
  171. git clone https://github.com/SoftbankRoboticsChina/pepper-ros-navigation.git && \
  172. rosdep install -i --from-paths . --ignore-src --rosdistro kinetic -y ./pepper-ros-navigation && \
  173. cd /home/ubuntu/catkin_ws && \
  174. catkin build && \
  175. cd /home/ubuntu/catkin_ws/src && \
  176. catkin_create_pkg create_speech rospy std_msgs --rosdistro kinetic && \
  177. cd create_speech && \
  178. curl -o create_speech.py https://raw.githubusercontent.com/ykoga-kyutech/pepper_ros_handson/master/scripts/create_speech_template.py && \
  179. chmod +x create_speech.py && \
  180. cd /home/ubuntu/catkin_ws && \
  181. catkin build && \
  182. apt-get autoremove -y && \
  183. apt-get clean && \
  184. rm -rf /var/lib/apt/lists/*
  185.  
  186. # Install pynaoqi 2.5.5 library
  187. COPY ./scripts/pynaoqi-python2.7-2.5.5.5-linux64.tar.gz /home/ubuntu/pynaoqi-python2.7-2.5.5.5-linux64.tar.gz
  188. COPY ./scripts/naoqi-sdk-2.5.5.5-linux64.tar.gz /home/ubuntu/naoqi-sdk-2.5.5.5-linux64.tar.gz
  189. RUN tar -xvzf /home/ubuntu/pynaoqi-python2.7-2.5.5.5-linux64.tar.gz -C /home/ubuntu/ && \
  190. rm /home/ubuntu/pynaoqi-python2.7-2.5.5.5-linux64.tar.gz && \
  191. tar -xvzf /home/ubuntu/naoqi-sdk-2.5.5.5-linux64.tar.gz -C /home/ubuntu/ && \
  192. rm /home/ubuntu/naoqi-sdk-2.5.5.5-linux64.tar.gz && \
  193. echo "export PYTHONPATH=\${PYTHONPATH}:/home/ubuntu/naoqi-sdk-2.5.5.5-linux64/lib" >> ~/.bashrc && \
  194. echo "export PYTHONPATH=\${PYTHONPATH}:/home/ubuntu/pynaoqi-python2.7-2.5.5.5-linux64/lib/python2.7/site-packages" >> ~/.bashrc && \
  195. echo "export NAOqi_DIR=/home/ubuntu/naoqi-sdk-2.5.5.5-linux64" >> ~/.bashrc
  196.  
  197. COPY ./scripts/startup.sh /startup.sh
  198. COPY ./scripts/connectPEPPER.sh /home/ubuntu/connectPEPPER.sh
  199. COPY ./scripts/pepper.rviz /home/ubuntu/pepper.rviz
  200. COPY ./scripts/launchdemo.txt /home/ubuntu/launchdemo.txt