diff --git a/builder/assets/clever.service b/builder/assets/clever.service index ed6374fe..1aeb0604 100644 --- a/builder/assets/clever.service +++ b/builder/assets/clever.service @@ -4,7 +4,7 @@ Requires=roscore.service After=roscore.service [Service] -EnvironmentFile=/root/roscore.env +EnvironmentFile=/lib/systemd/system/roscore.env ExecStart=/opt/ros/kinetic/bin/roslaunch clever clever.launch --wait Restart=on-abort diff --git a/builder/assets/kinetic-rosdep-clever.yaml b/builder/assets/kinetic-rosdep-clever.yaml index dcb28c28..80ad31f5 100644 --- a/builder/assets/kinetic-rosdep-clever.yaml +++ b/builder/assets/kinetic-rosdep-clever.yaml @@ -42,7 +42,7 @@ cv_bridge: stretch: [ros-kinetic-cv-bridge] cv_camera: debian: - stretch: [ros-kinetic-cv-camera] + stretch: [ros-kinetic-cv-camera=0.3.1-0stretch] diagnostic_msgs: debian: stretch: [ros-kinetic-diagnostic-msgs] @@ -511,3 +511,18 @@ yaml-cpp: zlib: debian: stretch: [zlib1g-dev] +compressed_depth_image_transport: + debian: + stretch: [ros-kinetic-compressed-depth-image-transport] +compressed_image_transport: + debian: + stretch: [ros-kinetic-compressed-image-transport] +dynamic_reconfigure: + debian: + stretch: [ros-kinetic-dynamic-reconfigure] +theora_image_transport: + debian: + stretch: [ros-kinetic-theora-image-transport] +libogg: + debian: + stretch: [libtheora0=1.1.1+dfsg.1-14] diff --git a/builder/assets/monkey.service b/builder/assets/monkey.service new file mode 100644 index 00000000..be363c48 --- /dev/null +++ b/builder/assets/monkey.service @@ -0,0 +1,9 @@ +[Unit] +Description=Monkey web-server + +[Service] +ExecStart=/usr/sbin/monkey +Restart=on-abort + +[Install] +WantedBy=multi-user.target diff --git a/builder/assets/roscore.service b/builder/assets/roscore.service index b8cf1919..5e3a5a7e 100644 --- a/builder/assets/roscore.service +++ b/builder/assets/roscore.service @@ -3,7 +3,7 @@ Description=Launcher for the ROS master, parameter server and rosout logging nod After=network.target [Service] -EnvironmentFile=/root/roscore.env +EnvironmentFile=/lib/systemd/system/roscore.env ExecStart=/opt/ros/kinetic/bin/roscore Restart=on-abort diff --git a/builder/image-build.sh b/builder/image-build.sh index db3b3d33..27656508 100755 --- a/builder/image-build.sh +++ b/builder/image-build.sh @@ -85,8 +85,9 @@ ${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/monkey- ${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/index.html' '/usr/share/monkey-static/' # Butterfly -${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/butterfly.service' '/root/' -${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/butterfly.socket' '/root/' +${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/butterfly.service' '/lib/systemd/system/' +${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/butterfly.socket' '/lib/systemd/system/' +${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/monkey.service' '/lib/systemd/system/' # software install ${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} exec ${SCRIPTS_DIR}'/image-software.sh' # network setup @@ -95,9 +96,9 @@ ${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} exec ${SCRIPTS_DIR}'/image-network. # If RPi then use a one thread to build a ROS package on RPi, else use all [[ $(arch) == 'armv7l' ]] && NUMBER_THREADS=1 || NUMBER_THREADS=$(nproc --all) # Clever -${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/clever.service' '/root/' -${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/roscore.env' '/root/' -${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/roscore.service' '/root/' +${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/clever.service' '/lib/systemd/system/' +${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/roscore.env' '/lib/systemd/system/' +${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/roscore.service' '/lib/systemd/system/' ${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/kinetic-rosdep-clever.yaml' '/etc/ros/rosdep/' # ${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/kinetic-ros-clever.rosinstall' '/home/pi/ros_catkin_ws/' ${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} exec ${SCRIPTS_DIR}'/image-ros.sh' ${REPO_URL} ${IMAGE_VERSION} false false ${NUMBER_THREADS} diff --git a/builder/image-ros.sh b/builder/image-ros.sh index facbd6f3..81f74956 100755 --- a/builder/image-ros.sh +++ b/builder/image-ros.sh @@ -75,20 +75,7 @@ resolve_rosdep() { echo_stamp "Installing dependencies apps with rosdep in ${CATKIN_PATH}" cd ${CATKIN_PATH} - set +e - # Successfull unmount flag (false at thismoment) - install_ok=false - # Repeat 5 times - for i in {1..5}; do - # Resolving Dependencies with rosdep - rosdep install -y --from-paths src --ignore-src --rosdistro ${ROS_DISTRO} -r --os=${OS_DISTRO}:${OS_VERSION} \ - && install_ok=true && break || (echo_stamp "rosdep iteration #$i failed!" "ERROR"; sleep 2) - done - set -e - # Stage fail if this condition is not true - [[ $install_ok ]] \ - && echo_stamp "All rosdep dependencies was installed!" "SUCCESS" \ - || (echo_stamp "Rosdep installation was failed!" "ERROR"; exit 1) + my_travis_retry rosdep install -y --from-paths src --ignore-src --rosdistro ${ROS_DISTRO} -r --os=${OS_DISTRO}:${OS_VERSION} } INSTALL_ROS_PACK_SOURCES=${INSTALL_ROS_PACK_SOURCES:='false'} @@ -148,6 +135,7 @@ fi echo_stamp "Installing CLEVER" \ && git clone ${REPO} /home/pi/catkin_ws/src/clever \ && cd /home/pi/catkin_ws/src/clever \ +&& echo "REF: ${REF}" \ && git checkout ${REF} \ && cd /home/pi/catkin_ws \ && resolve_rosdep $(pwd) \ @@ -155,8 +143,6 @@ echo_stamp "Installing CLEVER" \ && my_travis_retry pip install -r /home/pi/catkin_ws/src/clever/clever/requirements.txt \ && source /opt/ros/kinetic/setup.bash \ && catkin_make -j${NUMBER_THREADS} -DCMAKE_BUILD_TYPE=Release \ -&& ln -s /root/roscore.service /lib/systemd/system/roscore.service \ -&& ln -s /root/clever.service /lib/systemd/system/clever.service \ && systemctl enable roscore \ && systemctl enable clever \ && echo_stamp "All CLEVER was installed!" "SUCCESS" \ diff --git a/builder/image-software.sh b/builder/image-software.sh index ef3ab9cb..ce4758d1 100755 --- a/builder/image-software.sh +++ b/builder/image-software.sh @@ -103,8 +103,8 @@ monkey=1.6.9-1 \ || (echo_stamp "Some packages wasn't installed!" "ERROR"; exit 1) # Deny byobu to check available updates -sudo sed -i "s/updates_available//" /usr/share/byobu/status/status -# sudo sed -i "s/updates_available//" /home/pi/.byobu/status +sed -i "s/updates_available//" /usr/share/byobu/status/status +# sed -i "s/updates_available//" /home/pi/.byobu/status echo_stamp "Upgrade pip" my_travis_retry pip install --upgrade pip @@ -113,13 +113,12 @@ my_travis_retry pip3 install --upgrade pip3 echo_stamp "Install and enable Butterfly (web terminal)" my_travis_retry pip3 install butterfly my_travis_retry pip3 install butterfly[systemd] -ln -s /root/butterfly.service /lib/systemd/system/ -ln -s /root/butterfly.socket /lib/systemd/system/ systemctl enable butterfly.socket echo_stamp "Setup Monkey" mv /etc/monkey/sites/default /etc/monkey/sites/default.orig -ln -s /root/monkey-clever /etc/monkey/sites/default +mv /root/monkey-clever /etc/monkey/sites/default +systemctl enable monkey.service echo_stamp "Add .vimrc" cat << EOF > /home/pi/.vimrc diff --git a/clever/launch/clever.launch b/clever/launch/clever.launch index 5d2c2c87..280f04ff 100644 --- a/clever/launch/clever.launch +++ b/clever/launch/clever.launch @@ -2,7 +2,6 @@ - @@ -20,10 +19,6 @@ - - - - diff --git a/clever/package.xml b/clever/package.xml index 5180b43b..4a018903 100644 --- a/clever/package.xml +++ b/clever/package.xml @@ -20,7 +20,7 @@ catkin catkin - ros_cpp + roscpp nodelet mavros mavros_extras @@ -29,6 +29,7 @@ mjpg-streamer rosbridge_server web_video_server + ros_commr diff --git a/clever/src/monkey b/clever/src/monkey deleted file mode 100755 index ea5a5d7c..00000000 --- a/clever/src/monkey +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash - -exec /usr/sbin/monkey --port 80 --workers 1