diff --git a/auto_start/auto_start_headless_full.sh b/auto_start/auto_start_headless_full.sh new file mode 100755 index 0000000..488e033 --- /dev/null +++ b/auto_start/auto_start_headless_full.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# Wait for a network interface to be up (not necessarily online) +while ! ip link show | grep -q "state UP"; do + echo "[INFO] Waiting for active network interface..." + sleep 1 +done + +echo "[INFO] Network interface is up!" + +# Your actual ROS node start command goes here +echo "[INFO] Starting ROS node..." + +# Source ROS 2 Humble setup script +source /opt/ros/humble/setup.bash + +# Source your workspace setup script +source /home/clucky/rover-ros2/install/setup.bash + +# CD to directory +cd /home/clucky/rover-ros2/ + +# Launch the ROS 2 node +ros2 run headless_pkg headless_full + diff --git a/headless_full.service b/headless_full.service new file mode 100644 index 0000000..ab79084 --- /dev/null +++ b/headless_full.service @@ -0,0 +1,14 @@ +[Unit] +Description=Autostart headless core node for controlling the rover without a base station +After=systemd-user-sessions.service +Requires=systemd-user-sessions.service + +[Service] +ExecStart=/home/clucky/auto_start/auto_start_headless_full.sh +Restart=always +RestartSec=10 +User=clucky +Environment=PYTHONUNBUFFERED=1 + +[Install] +WantedBy=multi-user.target diff --git a/src/headless_pkg/setup.cfg b/src/headless_pkg/setup.cfg index 6391d1a..b9bc220 100644 --- a/src/headless_pkg/setup.cfg +++ b/src/headless_pkg/setup.cfg @@ -1,4 +1,4 @@ [develop] -script_dir=$base/lib/core_pkg +script_dir=$base/lib/headless_pkg [install] -install_scripts=$base/lib/core_pkg +install_scripts=$base/lib/headless_pkg diff --git a/src/headless_pkg/setup.py b/src/headless_pkg/setup.py index e65020a..97417fd 100644 --- a/src/headless_pkg/setup.py +++ b/src/headless_pkg/setup.py @@ -7,8 +7,7 @@ setup( version='0.0.0', packages=find_packages(exclude=['test']), data_files=[ - ('share/ament_index/resource_index/packages', - ['resource/' + package_name]), + ('share/ament_index/resource_index/packages', ['resource/' + package_name]), ('share/' + package_name, ['package.xml']), ], install_requires=['setuptools'], @@ -19,7 +18,7 @@ setup( license='All Rights Reserved', entry_points={ 'console_scripts': [ - "headless = headless_pkg.headless:main", + "headless_full = src.headless_node:main", ], }, ) diff --git a/src/headless_pkg/core_pkg/__init__.py b/src/headless_pkg/src/__init__.py similarity index 100% rename from src/headless_pkg/core_pkg/__init__.py rename to src/headless_pkg/src/__init__.py diff --git a/src/headless_pkg/core_pkg/headless.py b/src/headless_pkg/src/headless_node.py similarity index 100% rename from src/headless_pkg/core_pkg/headless.py rename to src/headless_pkg/src/headless_node.py