#!/bin/bash
# FORI AGV 안전 시작 스크립트
# 이전 프로세스 잔류 문제를 자동으로 처리합니다

echo "=========================================="
echo "     FORI AGV - 안전 시작 스크립트"
echo "=========================================="

# 1. 이전 실행 잔류 프로세스 모두 종료
echo "[1/3] 이전 프로세스 정리 중..."
pkill -9 -f "serial_bridge_node" 2>/dev/null
pkill -9 -f "parking_controller_node" 2>/dev/null
pkill -9 -f "ui_server_node" 2>/dev/null
pkill -9 -f "rosbridge_websocket" 2>/dev/null
pkill -9 -f "web_video_server" 2>/dev/null
pkill -9 -f "aruco_detector_node.py" 2>/dev/null
pkill -9 -f "fori_full.launch" 2>/dev/null
pkill -9 -f "fori_nav2.launch" 2>/dev/null
fuser -k -9 8080/tcp 9090/tcp 8085/tcp 2>/dev/null
sleep 2

echo "[2/3] ROS2 환경 로드..."
source /opt/ros/humble/setup.bash
source /home/yoo/fori_ws/fori_ws/install/setup.bash

# Hikrobot 카메라 SDK(/opt/MVS/lib/64)가 LD_LIBRARY_PATH 맨 앞에 있어서 시스템
# libusb보다 먼저 잡히는데, 그 안의 libusb가 구버전이라 PCL(fast_lio, pcd_gridmap_converter
# 등)이 필요로 하는 libusb_set_option 심볼이 없어 "symbol lookup error"로 죽는다.
# 시스템 라이브러리 경로를 앞에 둬서 심볼 충돌만 피하고, MVS 경로는 카메라 전용 라이브러리
# 탐색을 위해 그대로 뒤에 남겨둔다.
export LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu:/lib/x86_64-linux-gnu:${LD_LIBRARY_PATH}"

echo "[3/3] FORI AGV 시작!"
echo "  ✅ 웹 UI: http://localhost:8080"
echo "  ✅ 외부(모바일): http://$(hostname -I | awk '{print $1}'):8080"
echo "=========================================="
ros2 launch fori_serial_bridge fori_full.launch.py
