diff --git a/.gitignore b/.gitignore index 53fcc16..65e54fe 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ build/ ui/ *.uf2 ev3-usb.sh +.vscode/ \ No newline at end of file diff --git a/install_ROS2.sh b/install_ROS2.sh index 103cc4f..ffc93e2 100755 --- a/install_ROS2.sh +++ b/install_ROS2.sh @@ -210,6 +210,9 @@ if [[ $MIRTE_TYPE == "mirte-master" ]]; then cd ../../rplidar_ros chmod +x ./scripts/create_udev_rules.sh || true ./scripts/create_udev_rules.sh || true + cd /home/mirte/mirte_ws/ || exit 1 + cd src/orbbecsdk_ros2/ || true + sudo ./orbbec_camera/scripts/install_udev_rules.sh || true fi diff --git a/install_mirte.sh b/install_mirte.sh index 44695e7..798a0f8 100755 --- a/install_mirte.sh +++ b/install_mirte.sh @@ -117,6 +117,7 @@ sudo apt install -y overlayroot } 2>&1 | sed -u 's/^/overlayfs::: /' & #sudo bash -c "echo 'overlayroot=\"tmpfs\"' >> /etc/overlayroot.conf" +sudo systemctl disable --now unattended-upgrades.service || true # either no network or do it manually # update time in /etc/fake-hwclock.data sudo fake-hwclock save diff --git a/install_web.sh b/install_web.sh index 28212c8..82a19ff 100755 --- a/install_web.sh +++ b/install_web.sh @@ -66,3 +66,4 @@ curl -s https://install.zerotier.com | sudo bash sudo rm /var/lib/zerotier-one/identity.public || true sudo rm /var/lib/zerotier-one/identity.secret || true # new identity should be generated on first boot +sudo systemctl disable --now zerotier-one.service || true # fails bc not started with systemd diff --git a/services/mirte_shutdown.sh b/services/mirte_shutdown.sh index 349e427..93eac6e 100755 --- a/services/mirte_shutdown.sh +++ b/services/mirte_shutdown.sh @@ -7,16 +7,38 @@ if ! systemctl list-jobs | grep -q -E 'shutdown.target.*start'; then exit fi +REBOOT=false +# if rebooting, then dont shutdown the robot +if systemctl list-jobs | grep -q -E 'reboot.target.*start'; then + echo "reboot target active" + REBOOT=true +fi + source /home/mirte/.bashrc -source /home/mirte/.mirte_settings +source /home/mirte/.mirte_settings.sh source /home/mirte/mirte_ws/install/setup.bash touch /home/mirte/.shutdown service=/io/oled/oled/set_text +shutdown_service=/io/power/power_watcher/shutdown if [ "$MIRTE_USE_MULTIROBOT" = "true" ]; then mirte_space=$(cat /etc/hostname | tr '[:upper:]' '[:lower:]' | tr '-' '_') service="/$mirte_space$service" + shutdown_service="/$mirte_space$shutdown_service" fi -if [ "$(ros2 service list | grep "$service$")" ]; then +ros2 service list || true # make sure ros2 daemon is running +ros2 service list || true # make sure ros2 daemon is running + +stop_service="/stop" +if [ "$(ros2 service list | grep "$stop_service$")" ]; then + ros2 service call "$stop_service" std_srvs/srv/Empty "{}" +fi + +if [ "$(ros2 service list | grep "$service$")" ] && [ "$REBOOT" = "false" ]; then ros2 service call "$service" mirte_msgs/srv/SetOLEDText "{ text: 'Shutting down...'}" + ros2 service call "$shutdown_service" std_srvs/srv/SetBool "{ data: true }" +fi + +if [ "$(ros2 service list | grep "$service$")" ] && [ "$REBOOT" = "true" ]; then + ros2 service call "$service" mirte_msgs/srv/SetOLEDText "{ text: 'Rebooting...'}" fi