컴파일
Qt5 Core 및 Network 구성 요소를 설치하세요. 설치 명령은 Linux 배포판에 따라 다르며 다음 예제에서는 Ubuntu를 사용합니다.libzip을 다운로드하고 컴파일하세요.
컴파일 the ROS package from /V2-ROS-SDK-service, which is at the same level as src:
실행
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 asstd_msgs::Float32 on LxCamera_Capacity_Status.
오류 모듈 이름 수신
ROS는 카메라에서 오류가 발생한 모듈 이름을 수신하여LxCamera_Module_Error에 std_msgs::String으로 게시합니다.
맵 생성 상태 수신
After mapping starts, ROS publishes the mapping status asstd_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에 게시하세요. 카메라 웹 인터페이스를 새로 고치고 표시된 맵 이름이 바뀌면 전환이 성공한 것입니다.
오도메트리 업로드
nav_msgs::Odometry데이터를/sim/odom에 게시하세요. 토픽은 변경할 수 있습니다.
윤곽 맵 다운로드
LxCamera_DownloadMap에std_msgs/String메시지를 게시하세요.- 메시지에는 쉼표로 구분된 호스트 절대 경로와 맵 이름이 포함됩니다. 맵 이름은 카메라에 있는 완료된 맵의
.zip파일 이름입니다. - 다운로드가 성공하면 지정한 호스트 경로에 맵 아카이브가 생성됩니다. 압축을 풀어
PGM맵 파일과YAML구성 파일을 얻으세요.
맵 ZIP 파일 업로드(신규)
- Publish a
std_msgs/Stringmessage toLxCamera_UploadMapZip. - 메시지에는 업로드할 맵 아카이브의 경로가 포함됩니다(예:
/home/fr1511b/map.zip). 맵 다운로드 인터페이스로 다운로드한 아카이브를 사용하세요. - 맵을 찾으면 SDK가 카메라로 전송합니다. 카메라는 이를
/home/fr1511b/hontai/map/에 압축 해제합니다.
재로컬라이제이션
geometry_msgs::PoseWithCovarianceStamped데이터를LxCamera_UploadReloc에 게시하세요.- 포즈에는 LiDAR 포즈인
x,y,yaw가 포함됩니다. - 카메라 웹 인터페이스에 표시되는 위치가 전송한 포즈로 업데이트되면 재로컬라이제이션이 성공한 것입니다.
쿼터니언에는 제약이 있으므로 임의로 입력하면 안 됩니다. Euler-to-quaternion converter를 사용하여Euler yaw각도를 쿼터니언xyzw값으로 변환하세요.
ROS 서비스 인터페이스
맵 생성, map switching, map downloading, and relocalization are also available through ROS services. A service response oftrue 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: