개요
이 페이지에서는 V2 로컬라이제이션 모듈의lx_camera_ros가 제공하는 ROS2 토픽과 서비스를 설명합니다.
컴파일
Qt5 Core 및 Network 구성 요소를 설치하세요. 설치 명령은 Linux 배포판에 따라 다르며 다음 예제에서는 Ubuntu를 사용합니다.libzip 소스 코드를 다운로드하고 공식 지침에 따라 컴파일하세요.
/lx_camera_ros에서 다음 명령을 실행하세요.
실행
YAML 구성 파일을 변경한 후 다시 컴파일하세요. 프로젝트를 다시 빌드하기 전에는 변경 사항이 적용되지 않습니다.
ROS2 토픽 인터페이스
인터페이스를 테스트하기 전에 카메라 전원을 켜고 약 30초 기다린 다음 ROS2 SDK 노드를 시작하세요.로컬라이제이션 포즈 수신
ROS2는 카메라의x, y, theta 값을 계속 수신하고 이 값과 theta에서 변환한 쿼터니언을 LxCamera_LocationPoseResult에 게시하며 TF를 통해 포즈를 브로드캐스트합니다.
로컬라이제이션 상태 수신
ROS2는 카메라의 로컬라이제이션 상태(true 또는 false)를 1 Hz로 수신하여 LxCamera_LocationResult에 std_msgs::msg::Bool로 게시합니다.
카메라 저장 공간 사용량 수신
ROS2는 카메라 저장 공간 사용 비율을 2 Hz로 수신하여LxCamera_Capacity_Status에 std_msgs::msg::Float32로 게시합니다.
오류 모듈 이름 수신
ROS2는 카메라에서 오류가 발생한 모듈 이름을 수신하여LxCamera_Module_Error에 std_msgs::msg::String으로 게시합니다.
맵 생성 진행률 수신
After mapping starts, ROS2 publishes the progress (0–100) as std_msgs::msg::Int32 on LxCamera_맵 생성_Progress.
맵 생성 상태 수신
After mapping starts, ROS2 publishes the mapping status asstd_msgs::msg::Bool on LxCamera_맵 생성State.
파라미터 설정
LxCamera_SetParam에 std_msgs::msg::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::msg::String 메시지를 LxCamera_SwitchMap에 게시하세요. 카메라 웹 인터페이스를 새로 고치고 표시된 맵 이름이 바뀌면 전환이 성공한 것입니다.
맵 다운로드
- Publish a
std_msgs::msg::Stringmessage toLxCamera_DownloadMap. - 메시지에는 두 필드가 포함됩니다.
save_path는 호스트 컴퓨터의 절대 경로이고mapname은 카메라에 있는 완료된 맵의.zip파일 이름입니다. - 다운로드가 성공하면 지정한 호스트 경로에 맵 아카이브가 생성됩니다. 압축을 풀어
PGM맵 파일과YAML구성 파일을 얻으세요.
오도메트리 업로드
nav_msgs::msg::Odometry 데이터를 /sim/odom에 게시하세요. 토픽은 변경할 수 있습니다.
재로컬라이제이션
geometry_msgs::msg::PoseWithCovarianceStamped데이터를LxCamera_UploadReloc에 게시하세요.- 포즈에는 LiDAR 포즈인
x,y,yaw가 포함됩니다. - 카메라 웹 인터페이스에 표시되는 위치가 전송한 포즈로 업데이트되면 재로컬라이제이션이 성공한 것입니다.
쿼터니언에는 제약이 있으므로 임의로 입력하면 안 됩니다. Euler-to-quaternion converter를 사용하여Euler yaw각도를 쿼터니언xyzw값으로 변환하세요.
메시지 유형 접두사
호스트 컴퓨터는 UDP를 통해 카메라와 통신합니다. 각 메시지의 처음 4바이트가 인터페이스 데이터 유형을 식별합니다.ROS2 서비스 인터페이스
맵 생성, map switching, map downloading, and relocalization are also available through ROS2 services. A service response oftrue indicates success; false indicates failure.
다음 명령에는
ros2 service call을 사용하세요. 맵 이름은 숫자로 시작할 수 없고 30자를 초과할 수 없습니다.맵 생성
Service name:/LxCamera_맵 생성_srv
Service definition:
맵 전환
Service name:/LxCamera_SwitchMap_srv
Service definition:
맵 다운로드
Service name:/LxCamera_DownloadMap_srv
Service definition:
재로컬라이제이션
Service name:/LxCamera_UploadReloc_srv
Service definition:
현재 맵 이름 가져오기
Service name:/LxCamera_GetCurMapname_srv
Service definition:
현재 맵 목록 가져오기
Service name:/LxCamera_GetMapList_srv
Service definition:
맵 생성 종료
Service name:/LxCamera_Exit맵 생성_srv
Service definition:
맵 삭제
Service name:/LxCamera_EraseMap_srv
Service definition:
히트맵 다운로드
Service name:/LxCamera_DownloadHeatMap_srv
Service definition:
증분 맵 생성
Service name:/LxCamera_Inc맵 생성_srv
Service definition: