Initial Commit

This commit is contained in:
2026-02-09 03:39:49 +00:00
commit a756be4bf7
71 changed files with 6705 additions and 0 deletions

19
scripts/kill_simulation.sh Executable file
View File

@@ -0,0 +1,19 @@
#!/bin/bash
echo "Killing all simulation processes..."
pkill -9 -f "gazebo" 2>/dev/null || true
pkill -9 -f "gzserver" 2>/dev/null || true
pkill -9 -f "gzclient" 2>/dev/null || true
pkill -9 -f "sim_vehicle.py" 2>/dev/null || true
pkill -9 -f "mavproxy" 2>/dev/null || true
pkill -9 -f "mavros" 2>/dev/null || true
pkill -9 -f "ArduCopter" 2>/dev/null || true
pkill -9 -f "ArduRover" 2>/dev/null || true
pkill -9 -f "ros2" 2>/dev/null || true
sleep 1
echo "All processes killed."
echo "Remaining ROS nodes:"
ros2 node list 2>/dev/null || echo "No ROS nodes running"

53
scripts/run_simulation.sh Executable file
View File

@@ -0,0 +1,53 @@
#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
echo "=========================================="
echo "UAV-UGV Simulation - Run Script"
echo "GPS-Denied Navigation with Geofencing"
echo "=========================================="
WORLD="${1:-$PROJECT_DIR/worlds/empty_custom.world}"
if [ ! -f "$WORLD" ]; then
echo "World file not found: $WORLD"
echo "Using default world..."
WORLD="$PROJECT_DIR/worlds/empty_custom.world"
fi
export GAZEBO_MODEL_PATH="$PROJECT_DIR/models:$GAZEBO_MODEL_PATH"
export GAZEBO_RESOURCE_PATH="$PROJECT_DIR/worlds:$GAZEBO_RESOURCE_PATH"
if command -v nvidia-smi &> /dev/null; then
echo "NVIDIA GPU detected, enabling acceleration..."
export __NV_PRIME_RENDER_OFFLOAD=1
export __GLX_VENDOR_LIBRARY_NAME=nvidia
fi
cleanup() {
echo ""
echo "Shutting down simulation..."
pkill -f "gazebo" 2>/dev/null || true
pkill -f "sim_vehicle.py" 2>/dev/null || true
pkill -f "mavros" 2>/dev/null || true
echo "Cleanup complete."
}
trap cleanup EXIT
echo "Starting simulation with world: $WORLD"
echo ""
if [ -f "$PROJECT_DIR/venv/bin/activate" ]; then
source "$PROJECT_DIR/venv/bin/activate"
fi
source /opt/ros/humble/setup.bash 2>/dev/null || true
if [ -f "$PROJECT_DIR/install/setup.bash" ]; then
source "$PROJECT_DIR/install/setup.bash"
fi
ros2 launch uav_ugv_simulation full_simulation.launch.py world:="$WORLD"

25
scripts/setup_gazebo_nvidia.sh Executable file
View File

@@ -0,0 +1,25 @@
#!/bin/bash
echo "Setting up NVIDIA GPU for Gazebo..."
if ! command -v nvidia-smi &> /dev/null; then
echo "NVIDIA driver not found. Skipping GPU setup."
exit 0
fi
echo "NVIDIA GPU detected:"
nvidia-smi --query-gpu=name,driver_version --format=csv,noheader
export __NV_PRIME_RENDER_OFFLOAD=1
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json
if [ -f /usr/lib/x86_64-linux-gnu/libEGL_nvidia.so.0 ]; then
export __EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/10_nvidia.json
fi
echo "NVIDIA GPU environment configured."
echo ""
echo "Add these to your ~/.bashrc for permanent setup:"
echo " export __NV_PRIME_RENDER_OFFLOAD=1"
echo " export __GLX_VENDOR_LIBRARY_NAME=nvidia"