메인 콘텐츠로 건너뛰기

컴파일

Qt5 Core 및 Network 구성 요소를 설치하세요. 설치 명령은 Linux 배포판에 따라 다르며 다음 예제에서는 Ubuntu를 사용합니다.
공식 지침에 따라 libzip 다운로드 페이지에서 libzip을 다운로드하고 컴파일하세요. 컴파일 the ROS package from /V2-ROS-SDK-service, which is at the same level as src:

실행

카메라에서 ROS master/slave 설정이 활성화되어 있으면 ROS 샘플을 실행하기 전에 비활성화하세요. 카메라 전원을 켠 후 샘플을 시작하기 전에 약 20초 기다립니다.
src와 같은 수준에 있는 home/username/V2_ROS_SDK에서 다음을 실행하세요.

ROS 토픽 인터페이스

인터페이스를 테스트하기 전에 카메라 전원을 켜고 내장 프로그램이 시작될 때까지 약 30초 기다리세요. 그런 다음 ROS SDK 노드를 시작합니다.

로컬라이제이션 포즈 수신

ROS는 카메라의 x, y, theta 값을 계속 수신하고 이 값과 theta에서 변환한 쿼터니언을 LxCamera_LocationPoseResult에 게시하며 TF를 통해 포즈를 브로드캐스트합니다.

로컬라이제이션 상태 수신

ROS는 카메라의 로컬라이제이션 상태(true 또는 false)를 1 Hz로 수신하여 LxCamera_LocationResult에 std_msgs::Bool로 게시합니다.

카메라 저장 공간 사용량 수신

ROS receives the camera’s storage usage ratio at 2 Hz and publishes it as std_msgs::Float32 on LxCamera_Capacity_Status.

오류 모듈 이름 수신

ROS는 카메라에서 오류가 발생한 모듈 이름을 수신하여 LxCamera_Module_Error에 std_msgs::String으로 게시합니다.

맵 생성 상태 수신

After mapping starts, ROS publishes the mapping status as std_msgs::Bool on LxCamera_맵 생성State.

맵 생성 진행률 수신

After mapping starts, ROS publishes the mapping progress (0–100) as std_msgs::Int32 on LxCamera_맵 생성_Progress.

파라미터 설정

LxCamera_SetParam에 std_msgs/String 메시지를 게시하세요. 메시지에는 쉼표로 구분된 9개의 부동 소수점 값이 포함됩니다: x,y,z,yaw,pitch,roll,x,y,yaw. 처음 6개 값은 카메라 포즈를 정의하고 마지막 3개 값은 LiDAR 포즈를 정의합니다. 업데이트가 성공하면 /home/fr1511b/hontai/params/config_install_FL21500HAF.ini의 [Laser1] 및 [Camera1] 섹션에 해당하는 값이 업데이트됩니다.

맵 전환

완료된 맵 이름을 포함한 std_msgs/String 메시지를 LxCamera_SwitchMap에 게시하세요. 카메라 웹 인터페이스를 새로 고치고 표시된 맵 이름이 바뀌면 전환이 성공한 것입니다.

오도메트리 업로드

  1. nav_msgs::Odometry 데이터를 /sim/odom에 게시하세요. 토픽은 변경할 수 있습니다.

윤곽 맵 다운로드

  1. LxCamera_DownloadMap에 std_msgs/String 메시지를 게시하세요.
  2. 메시지에는 쉼표로 구분된 호스트 절대 경로와 맵 이름이 포함됩니다. 맵 이름은 카메라에 있는 완료된 맵의 .zip 파일 이름입니다.
  3. 다운로드가 성공하면 지정한 호스트 경로에 맵 아카이브가 생성됩니다. 압축을 풀어 PGM 맵 파일과 YAML 구성 파일을 얻으세요.

맵 ZIP 파일 업로드(신규)

  1. Publish a std_msgs/String message to LxCamera_UploadMapZip.
  2. 메시지에는 업로드할 맵 아카이브의 경로가 포함됩니다(예: /home/fr1511b/map.zip). 맵 다운로드 인터페이스로 다운로드한 아카이브를 사용하세요.
  3. 맵을 찾으면 SDK가 카메라로 전송합니다. 카메라는 이를 /home/fr1511b/hontai/map/에 압축 해제합니다.

재로컬라이제이션

  1. geometry_msgs::PoseWithCovarianceStamped 데이터를 LxCamera_UploadReloc에 게시하세요.
  2. 포즈에는 LiDAR 포즈인 x, y, yaw가 포함됩니다.
  3. 카메라 웹 인터페이스에 표시되는 위치가 전송한 포즈로 업데이트되면 재로컬라이제이션이 성공한 것입니다.
쿼터니언에는 제약이 있으므로 임의로 입력하면 안 됩니다. Euler-to-quaternion converter를 사용하여 Euler yaw 각도를 쿼터니언 xyzw 값으로 변환하세요.

ROS 서비스 인터페이스

맵 생성, map switching, map downloading, and relocalization are also available through ROS services. A service response of true indicates success; false indicates failure. For operations that require confirmation, prefer the service interface.
다음 명령에는 rosservice call을 사용하세요. 맵 이름은 숫자로 시작할 수 없고 30자를 초과할 수 없습니다.

맵 생성

Service name: /lx_localization_node/LxCamera_맵 생성_srv Service definition:
서비스 호출:

맵 전환

Service name: /lx_localization_node/LxCamera_SwitchMap_srv Service definition:
서비스 호출:

맵 다운로드

Service name: /lx_localization_node/LxCamera_DownloadMap_srv Service definition:
서비스 호출:

재로컬라이제이션

Service name: /lx_localization_node/LxCamera_UploadReloc_srv Service definition:
서비스 호출:

현재 맵 이름 가져오기

Service name: /lx_localization_node/LxCamera_GetCurMapname_srv Service definition:
서비스 호출:

현재 맵 목록 가져오기

Service name: /lx_localization_node/LxCamera_GetMapList_srv Service definition:
서비스 호출:

맵 생성 종료(사용자 지정 인터페이스)

Service name: /lx_localization_node/LxCamera_Exit맵 생성_srv Service definition:
서비스 호출:

맵 삭제

Service name: /lx_localization_node/LxCamera_EraseMap_srv Service definition:
서비스 호출:

히트맵 다운로드

Service name: /lx_localization_node/LxCamera_DownloadMap_srv Service definition:
서비스 호출:

증분 맵 생성

Service name: /lx_localization_node/LxCamera_Inc맵 생성_srv Service definition:
서비스 호출: