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