65 lines
1.7 KiB
Bash
Executable File
65 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# run_uav.sh - Wrapper for UAV runner
|
|
# Launches UAV client with environment-specific configuration
|
|
#
|
|
# Usage:
|
|
# ./run_uav.sh local # defaults to config/client.yaml
|
|
# ./run_uav.sh testbed config/client2.yaml # use a specific config file
|
|
|
|
set -e
|
|
|
|
# Change to aerpaw directory
|
|
cd /root/miSim/aerpaw
|
|
|
|
# Activate venv if it exists
|
|
if [ -d "venv" ]; then
|
|
source venv/bin/activate
|
|
fi
|
|
|
|
# Determine environment from argument (required)
|
|
if [ "$1" = "testbed" ]; then
|
|
ENV="testbed"
|
|
elif [ "$1" = "local" ]; then
|
|
ENV="local"
|
|
else
|
|
echo "Error: Environment not specified."
|
|
echo "Usage: $0 [local|testbed] [config_file]"
|
|
echo ""
|
|
echo " local - Use local/simulation configuration"
|
|
echo " testbed - Use AERPAW testbed configuration"
|
|
echo ""
|
|
echo " config_file - Path to client YAML (default: config/client.yaml)"
|
|
exit 1
|
|
fi
|
|
|
|
# Client config file (optional 2nd argument)
|
|
CONFIG_FILE="${2:-config/client.yaml}"
|
|
if [ ! -f "$CONFIG_FILE" ]; then
|
|
echo "Error: Config file not found: $CONFIG_FILE"
|
|
exit 1
|
|
fi
|
|
|
|
echo "[run_uav] Environment: $ENV"
|
|
echo "[run_uav] Config file: $CONFIG_FILE"
|
|
|
|
# Export for Python scripts to use
|
|
export AERPAW_ENV="$ENV"
|
|
export AERPAW_CLIENT_CONFIG="$(realpath "$CONFIG_FILE")"
|
|
|
|
# Read MAVLink connection from config file using Python
|
|
CONN=$(python3 -c "
|
|
import yaml
|
|
with open('$CONFIG_FILE') as f:
|
|
cfg = yaml.safe_load(f)
|
|
env = cfg['environments']['$ENV']['mavlink']
|
|
print(f\"udp:{env['ip']}:{env['port']}\")
|
|
")
|
|
|
|
echo "[run_uav] MAVLink connection: $CONN"
|
|
|
|
# Run via aerpawlib
|
|
echo "[run_uav] Starting UAV runner..."
|
|
python3 -m aerpawlib \
|
|
--script client.uav_runner \
|
|
--conn "$CONN" \
|
|
--vehicle drone |