# UAV Configuration - GPS-Denied Navigation /**: ros__parameters: # Vision parameters for navigation vision: # Forward camera (for visual odometry) forward_camera: enabled: true topic: "/uav/camera/forward/image_raw" info_topic: "/uav/camera/forward/camera_info" frame_rate: 30 # Downward camera (for optical flow) downward_camera: enabled: true topic: "/uav/camera/downward/image_raw" info_topic: "/uav/camera/downward/camera_info" frame_rate: 30 # Visual odometry settings visual_odometry: enabled: true method: "ORB" # Options: ORB, SIFT, SURF min_features: 100 max_features: 500 feature_quality: 0.01 min_distance: 10 # Optical flow settings optical_flow: enabled: true method: "Lucas-Kanade" window_size: 15 max_level: 3 min_altitude: 0.3 # meters max_altitude: 10.0 # meters # Landmark detection landmarks: enabled: true detection_method: "ArUco" # Options: ArUco, AprilTag, ORB marker_size: 0.15 # meters # Position estimation (sensor fusion) position_estimator: fusion_method: "EKF" # Extended Kalman Filter # Sensor weights (trust levels) weights: visual_odometry: 0.6 optical_flow: 0.3 imu: 0.1 # Update rates update_rate: 50 # Hz # Covariance matrices process_noise: position: 0.1 velocity: 0.5 measurement_noise: visual_odom: 0.05 optical_flow: 0.1 imu: 0.2 # Navigation parameters (RELATIVE coordinates only) navigation: frame: "LOCAL_NED" # Never use GPS frame # Control parameters max_velocity: 2.0 # m/s max_acceleration: 1.0 # m/s^2 max_climb_rate: 1.0 # m/s # Waypoint following waypoint_radius: 0.5 # meters position_hold_radius: 0.2 # meters # Obstacle avoidance (vision-based) obstacle_avoidance: enabled: true detection_range: 5.0 # meters safety_margin: 1.0 # meters # Mission parameters mission: takeoff_altitude: 5.0 # meters (relative) loiter_radius: 2.0 # meters rtl_altitude: 10.0 # meters (relative) # Home position is LOCAL (0,0,0), not GPS home_mode: "local" # Never "gps" # Safety (geofencing uses GPS, but navigation doesn't) safety: geofence: enabled: true use_gps: true # ONLY for geofence action_on_breach: "RTL" # Return to LOCAL origin failsafe: vision_loss_timeout: 5.0 # seconds action_on_vision_loss: "HOLD" # or "RTL" or "LAND"