Troubleshooting
일반적인 문제와 해결 방법입니다.
연결 문제
로봇에 연결되지 않음
증상:
connect()가 false 반환“Connection failed” 오류
해결 방법:
네트워크 확인
# 로봇 IP로 핑 테스트 ping 192.168.1.xxx
Robot ID 확인
raisin_master 콘솔 또는 raisin_gui에서 Robot ID 확인
Robot ID가 정확히 일치하는지 확인
멀티캐스트 확인
로봇과 클라이언트가 동일 서브넷에 있어야 함
공유기/스위치가 멀티캐스트를 차단하지 않는지 확인
방화벽 확인
# Ubuntu에서 방화벽 상태 확인 sudo ufw status # 필요시 비활성화 sudo ufw disable
서비스 타임아웃
증상:
setWaypoints()등이 “service timeout” 반환서비스 호출이 실패
해결 방법:
Autonomy 플러그인 확인
raisin_master에서 Autonomy 플러그인이 로드되었는지 확인
Fast-LIO 플러그인도 로드되어야 함 (맵 설정 시)
연결 상태 확인
if (!client.isConnected()) { std::cerr << "Not connected!" << std::endl; }
타임아웃 증가 (필요시)
네트워크 지연이 큰 환경에서는 서비스 응답이 늦을 수 있습니다.
맵 로드 문제
“Map saved.” 대신 “service timeout”
원인:
Fast-LIO 플러그인이 로드되지 않음
해결 방법:
raisin_master에서 Fast-LIO 플러그인 로드 확인
LiDAR가 정상 작동하는지 확인
로봇에서
/cloud_registered토픽이 발행되는지 확인
PCD 파일을 찾을 수 없음
원인:
파일 경로가 잘못됨
해결 방법:
절대 경로 사용 권장
// 상대 경로 대신 절대 경로 사용 client.setMap("/home/user/maps/office.pcd", ...);
파일 존재 확인
ls -la /path/to/map.pcd
Waypoint 문제
로봇이 움직이지 않음
증상:
Waypoint 설정 성공했지만 로봇이 이동하지 않음
경로가 생성되지 않음
해결 방법:
frame 이름 확인 (가장 흔한 원인)
// setMap의 map_name과 Waypoint의 frame이 일치해야 함! client.setMap("...", 0, 0, 0, 0, "my_map"); Waypoint("my_map", 5.0, 0.0); // ✓ 동일 // 틀린 예시 client.setMap("...", 0, 0, 0, 0, "my_map"); Waypoint("map", 5.0, 0.0); // ✗ 불일치!
Localization 상태 확인
맵이 제대로 로드되었는지 확인
로봇 위치가 맵 내에 정확히 설정되었는지 확인
Autonomy 모드 확인
setAutonomousControl()이 호출되었는지 확인
미션 상태 확인
auto status = client.getMissionStatus(); std::cout << "Waypoints: " << status.waypoints.size() << std::endl;
좌표가 맞지 않음
증상:
로봇이 예상과 다른 위치로 이동
Waypoint 좌표가 맵과 일치하지 않음
해결 방법:
초기 위치 확인
setMap()에서 설정한 초기 위치가 실제 로봇 위치와 일치하는지 확인초기 yaw(방향)도 정확해야 함
좌표계 확인
Waypoint 좌표는 맵 기준 좌표 (맵 원점 기준)
미터 단위 사용
구독 문제
콜백이 호출되지 않음
증상:
subscribeOdometry()등 콜백이 실행되지 않음
해결 방법:
연결 상태 확인
로봇에 정상 연결되었는지 확인
메인 루프 유지
// 프로그램이 종료되지 않도록 메인 루프 유지 while (running) { std::this_thread::sleep_for(std::chrono::milliseconds(100)); }
토픽 발행 확인
raisin_cli로 해당 토픽이 발행되는지 확인
빌드 문제
라이브러리를 찾을 수 없음
증상:
링크 에러: “cannot find -lraisin_network”
해결 방법:
경로 확인
# RAISIN_SDK_PATH가 올바른지 확인 message(STATUS "SDK Path: ${RAISIN_SDK_PATH}")
라이브러리 존재 확인
ls -la /path/to/raisin_sdk_install/lib/
실행 시 라이브러리 로드 실패
증상:
“error while loading shared libraries”
해결 방법:
# LD_LIBRARY_PATH 설정
export LD_LIBRARY_PATH=/path/to/raisin_sdk_install/lib:$LD_LIBRARY_PATH
# 또는 ldconfig 사용
sudo ldconfig /path/to/raisin_sdk_install/lib
도움 요청
문제가 해결되지 않으면:
에러 메시지 전체 내용 기록
사용 중인 코드 스니펫 준비
네트워크 구성 정보 확인
raisin_master 콘솔 로그 확인