문제 해결 가이드

Troubleshooting (Troubleshooting)

1. 일반적인 질문

Q: MARC(Meta-Sejong AI Robotics Challenge) 2025에 참가하기 위한 기본 요구사항은 무엇인가요?

A: 다음과 같은 기본 요구사항이 필요합니다:

  • Ubuntu 22.04 LTS 이상
  • NVIDIA GPU (CUDA 11.0 이상 지원)
  • Python 3.8 이상
  • ROS2 Humble
  • NVIDIA Isaac Sim

Q: 참가 신청은 어떻게 하나요?

A:

  1. 참가 신청 페이지에서 신청서 작성
  2. 필요한 서류 제출 (팀 구성원 정보, 제안서 등)
  3. 신청 확인 이메일 수신

Q: 대회 기간은 얼마나 되나요?

A:

  • 참가 신청: 2024년 3월 1일 ~ 3월 31일
  • 개발 기간: 2024년 4월 1일 ~ 5월 31일
  • 최종 제출: 2024년 6월 1일 ~ 6월 7일
  • 결과 발표: 2024년 6월 15일

2. 기술 관련 질문

Q: 시뮬레이션 환경에서 어떤 종류의 로봇을 사용할 수 있나요?

A:

  • 매니퓰레이터 로봇
  • 이동 로봇
  • 협동 로봇
  • 사용자 정의 로봇 (규정 준수 필요)

Q: 평가는 어떤 방식으로 이루어지나요?

A:

  • 자동화된 평가 시스템을 통한 객관적 평가
  • 실시간 성능 측정
  • 다양한 시나리오 테스트
  • 안전성 및 안정성 평가

Q: 코드는 어떤 언어로 작성해야 하나요?

A:

  • Python 3.8 이상
  • C++ (ROS2 노드 개발 시)
  • CUDA (GPU 가속이 필요한 경우)

3. 개발 환경 관련 질문

Q: 개발 환경 설정에 문제가 있을 경우 어떻게 해야 하나요?

A:

  1. 문제 해결 가이드 참조
  2. GitHub Issues 페이지에 문제 보고
  3. 기술 지원팀에 이메일 문의

Q: 시뮬레이션 환경을 로컬에서 실행할 수 있나요?

A:

  • 네, 제공되는 Docker 이미지나 로컬 설치 가이드를 통해 가능합니다
  • 최소 시스템 요구사항을 충족해야 합니다
  • GPU 가속이 필요합니다

Q: 데이터셋은 어떻게 제공되나요?

A:

  • 대회 시작 시 제공되는 기본 데이터셋
  • 추가 데이터셋은 대회 기간 중 순차적 제공
  • 데이터셋 다운로드 및 사용 방법은 참가자 가이드 참조

4. 제출 및 평가 관련 질문

Q: 코드는 어떤 형식으로 제출해야 하나요?

A:

  • GitHub 저장소 링크 제출
  • README.md 파일 포함
  • 의존성 목록 (requirements.txt) 포함
  • 실행 방법 문서화

Q: 평가 결과는 언제 확인할 수 있나요?

A:

  • 실시간 평가 결과는 대시보드에서 확인 가능
  • 최종 결과는 2024년 6월 15일 발표
  • 상세 평가 리포트는 결과 발표 후 제공

Q: 재제출이 가능한가요?

A:

  • 네, 최종 제출 기간 내 재제출 가능
  • 마지막 제출된 버전이 평가 대상
  • 제출 이력은 모두 기록됨

일반적인 문제

1. 환경 설정 문제

ROS2 Humble 설치 실패

증상: ROS2 Humble 설치 중 오류 발생 해결 방법:

  1. 시스템 요구사항 확인
    # Ubuntu 버전 확인
    lsb_release -a
       
    # 시스템 아키텍처 확인
    uname -m
    
  2. 저장소 설정 확인
    # ROS2 저장소 추가
    sudo apt update && sudo apt install software-properties-common
    sudo add-apt-repository universe
    sudo apt update && sudo apt install curl -y
    sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
    
  3. 의존성 설치
    sudo apt update
    sudo apt install ros-humble-desktop
    

Isaac Sim 설치 문제

증상: Isaac Sim 실행 시 오류 발생 해결 방법:

  1. NVIDIA 드라이버 확인
    nvidia-smi
    
  2. CUDA 설치 확인
    nvcc --version
    
  3. Isaac Sim 재설치
    # 기존 설치 제거
    rm -rf ~/.local/share/ov/pkg/isaac_sim*
       
    # 새로 설치
    wget https://install.isaac.sim
    chmod +x install.isaac.sim
    ./install.isaac.sim
    

2. 실행 환경 문제

Python 가상환경 문제

증상: 패키지 의존성 충돌 해결 방법:

  1. 새로운 가상환경 생성
    python3 -m venv meta_sejong_env
    source meta_sejong_env/bin/activate
    
  2. 의존성 설치
    pip install -r requirements.txt
    
  3. 패키지 버전 확인
    pip freeze
    

CUDA 관련 문제

증상: CUDA 초기화 실패 해결 방법:

  1. CUDA 버전 확인
    nvcc --version
    
  2. 환경 변수 설정
    export PATH=/usr/local/cuda-11.0/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64:$LD_LIBRARY_PATH
    
  3. CUDA 드라이버 재설치
    sudo apt remove nvidia-driver-*
    sudo apt autoremove
    sudo apt install nvidia-driver-470
    

시뮬레이션 문제

1. 물리 엔진 문제

불안정한 시뮬레이션

증상: 로봇이나 객체가 불안정하게 움직임 해결 방법:

  1. 물리 파라미터 조정
    env.set_physics_parameters(
        substeps=8,
        solver_iterations=8,
        contact_offset=0.02
    )
    
  2. 충돌 설정 확인
    env.check_collision_settings(
        friction=0.5,
        restitution=0.1
    )
    
  3. 객체 스케일 조정
    object.set_scale([1.0, 1.0, 1.0])
    

성능 저하

증상: 시뮬레이션 속도가 느림 해결 방법:

  1. 시각화 설정 조정
    env.set_visualization_quality("low")
    env.disable_debug_visualization()
    
  2. 물리 시뮬레이션 최적화
    env.optimize_physics_simulation(
        max_substeps=4,
        solver_type="iterative"
    )
    
  3. GPU 메모리 관리
    env.manage_gpu_memory(
        max_memory_usage=0.8,
        enable_memory_optimization=True
    )
    

2. 센서 데이터 문제

카메라 데이터 오류

증상: 카메라 이미지가 깨지거나 누락됨 해결 방법:

  1. 카메라 설정 확인
    camera.check_settings(
        resolution=[640, 480],
        fov=60,
        update_rate=30
    )
    
  2. 렌더링 설정 조정
    env.set_rendering_parameters(
        anti_aliasing=True,
        shadow_quality="medium"
    )
    
  3. 카메라 위치 조정
    camera.set_position([0, 0, 2])
    camera.set_orientation([0, 0, 0])
    

IMU 데이터 오류

증상: IMU 데이터가 부정확하거나 누락됨 해결 방법:

  1. IMU 설정 확인
    robot.check_imu_settings(
        update_rate=100,
        noise_level=0.01
    )
    
  2. 데이터 필터링 적용
    robot.apply_imu_filter(
        filter_type="kalman",
        window_size=5
    )
    
  3. IMU 보정
    robot.calibrate_imu(
        duration=10,
        samples=1000
    )
    

평가 시스템 문제

1. 메트릭 계산 오류

점수 계산 오류

증상: 평가 점수가 부정확하게 계산됨 해결 방법:

  1. 메트릭 설정 확인
    eval_system.check_metric_settings(
        weights={
            "accuracy": 0.4,
            "efficiency": 0.3,
            "stability": 0.3
        }
    )
    
  2. 데이터 검증
    eval_system.validate_data(
        task_results=results,
        check_consistency=True
    )
    
  3. 메트릭 재계산
    eval_system.recalculate_metrics(
        force=True,
        validate=True
    )
    

데이터 저장 오류

증상: 평가 데이터가 저장되지 않음 해결 방법:

  1. 저장 경로 확인
    eval_system.check_storage_path(
        path="evaluation_results",
        create_if_missing=True
    )
    
  2. 파일 권한 확인
    chmod -R 755 evaluation_results/
    
  3. 데이터 백업
    eval_system.backup_data(
        backup_path="backup/",
        timestamp=True
    )
    

2. 시각화 문제

그래프 생성 오류

증상: 성능 그래프가 생성되지 않음 해결 방법:

  1. 데이터 포맷 확인
    eval_system.validate_plot_data(
        data=performance_data,
        required_fields=["timestamp", "value"]
    )
    
  2. 시각화 설정 조정
    eval_system.set_visualization_settings(
        style="seaborn",
        dpi=300,
        figure_size=(10, 6)
    )
    
  3. 에러 처리 추가
    try:
        eval_system.plot_performance_metrics(
            metrics=["accuracy", "efficiency"],
            save_path="results/plot.png"
        )
    except Exception as e:
        print(f"그래프 생성 오류: {str(e)}")
        eval_system.log_error(e)
    

로깅 및 디버깅

1. 로그 관리

로그 레벨 설정

import logging

# 로그 레벨 설정
logging.basicConfig(
    level=logging.DEBUG,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    filename='debug.log'
)

로그 필터링

# 특정 컴포넌트 로그만 출력
logging.getLogger('meta_sejong.simulation').setLevel(logging.DEBUG)
logging.getLogger('meta_sejong.evaluation').setLevel(logging.INFO)

2. 디버그 도구

메모리 프로파일링

import memory_profiler

@memory_profiler.profile
def analyze_performance():
    # 성능 분석 코드
    pass

CPU 프로파일링

import cProfile
import pstats

def profile_function():
    profiler = cProfile.Profile()
    profiler.enable()
    
    # 프로파일링할 코드
    
    profiler.disable()
    stats = pstats.Stats(profiler)
    stats.sort_stats('cumulative')
    stats.print_stats()