[code] voxblox

About_work·2024년 8월 31일
0

global mapper

목록 보기
35/37

1. Voxblox 개요

  • Voxblox는 주로 Truncated Signed Distance Fields (TSDFs)에 기반한 볼륨 매핑 라이브러리
  • 다른 SDF 라이브러리와는 다음과 같은 차이점이 있습니다:
    • CPU 전용이며, 일부 통합기에 대해 단일 스레드 또는 멀티 스레드로 실행할 수 있음
    • 서로 다른 유형의 보컬을 포함하는 여러 레이어 타입을 지원
    • 프로토버프(protobufs)를 사용한 직렬화(Serialization)를 지원
    • 병합 시 가중치 처리 방법이 다릅니다.
    • 스캔의 포즈 정보를 삽입하는 방법이 다릅니다.
    • ROS와 긴밀하게 통합되었습니다 (voxblox_ros 패키지).
    • 원하는 통합기를 쉽게 확장할 수 있습니다.
    • TSDF에서 직접 Euclidean Signed Distance Fields (ESDFs, EDTs)를 구축하는 구현이 포함되어 있습니다.
  • 만약 스켈레톤화/희박한 토폴로지 또는 계획 응용 프로그램을 찾고 있다면,
    • mav_voxblox_planning 저장소를 참조하십시오.
  • 메쉬 또는 gazebo 환경에서 정밀 지도 생성 방법을 원하시면,
    • voxblox_ground_truth 패키지를 확인하십시오!

예제 출력

Machine Hall

  • Voxblox가 매니폴드 매퍼 내부에서 SLAM 시스템의 포즈와 Realsense D415 깊이 카메라의 출력을 융합하여 생성한 메쉬입니다.

Cow and Lady Dataset

  • i7-4810MQ 2.80GHz CPU가 장착된 노트북에서 Cow and Lady 데이터셋을 사용하여 실행된 Voxblox입니다. 이 예제에서는 TSDF를 통합하고, 메쉬를 생성하며, 결과를 실시간으로 RViz에 게시합니다.

제약된 하드웨어

  • Voxblox가 Intel-Euclid의 Atom 프로세서에 완전히 탑재된 상태로 실행되었습니다. 이 시스템은 또한 로컬라이제이션 시스템(ROVIO) 및 센서 드라이버와 CPU를 공유하고 있었습니다. 이로 인해 Voxblox는 약 하나의 CPU 코어를 사용할 수 있었습니다.

KITTI Dataset

  • 데스크탑 PC에서 KITTI 데이터셋을 사용하여 실행된 Voxblox로 생성된 메쉬입니다. 로컬라이제이션 솔루션과 Velodyne에서 생성된 포인트클라우드를 사용했습니다.

EuRoC Dataset

  • EuRoC 데이터셋에서 제공하는 스테레오 데이터를 사용하여 Maplab 라이브러리를 실행해 생성된 Voxblox 메쉬입니다.

해변 매핑

  • 자동화된 경로를 따라 비행하는 플랫폼에서 두 세트의 스테레오 카메라를 사용하여 생성된 해변의 지도입니다.

문서 확장

로컬에서 빌드

온라인 문서를 로컬에서 컴파일하려면 다음 종속성이 필요합니다:

sudo apt-get install python-pip doxygen python-pyaudio
pip install sphinx exhale breath sphinx_rtd_theme recommonmark --user

그런 다음 html 문서를 컴파일할 수 있습니다:

cd ~/catkin_ws/src/voxblox/voxblox/docs
make html

이 작업은 docs/_build 폴더에 웹사이트의 홈페이지가 위치한 docs/_build/html/index.html을 생성합니다.

페이지 추가

.rst 또는 .md 파일을 docs/pages 폴더에 추가하기만 하면 자동으로 문서에 포함됩니다. 사용된 마크다운 파서는 표를 지원하지 않습니다.

문서 생성 구조

  • 문서는 Exhale에 의해 생성되며, 이는 Doxygen, Sphinx 및 Breathe를 결합하여 사용하는 것을 자동화합니다.
  • 문서는 readthedocs 테마를 사용하며 readthedocs에서 호스팅됩니다. 문서 생성에 사용된 파일은 다음과 같습니다:
  • conf.py: Sphinx 실행 방식을 제어하는 파이썬 스크립트로, Breathe와 Exhale 확장 기능을 로드하고 프로젝트를 설정합니다.
  • Doxyfile: Doxygen에서 사용되는 모든 옵션을 포함하는 파일입니다.
  • index.rst: .rst 형식으로 생성된 웹사이트의 홈페이지입니다. 또한 웹사이트 사이드바에 표시되는 Sphinx TOC 트리의 사양도 포함됩니다.
  • logo.gif: 프로젝트 로고로 표시되는 이미지입니다.
  • Makefile: Sphinx를 사용해 웹사이트를 빌드합니다.
  • requirements.txt: Exhale 확장을 설치하기 위해 readthedocs에서 사용됩니다.
  • pages: .rst 또는 .md 형식의 추가 위키 페이지가 포함된 폴더입니다.

다른 프로젝트에서 동일한 문서를 사용하기

다른 프로젝트에서 동일한 접근 방식을 사용하려면 다음을 수행하십시오:

  1. Docs 폴더를 프로젝트의 루트 디렉토리로 복사하십시오.
  2. conf.py 파일에서 name 변수의 값을 변경하십시오.
  3. index.rst를 새 프로젝트에 맞게 수정하십시오.
  4. pages 폴더의 내용을 프로젝트의 .md.rst 파일로 변경하십시오.
  5. docs/_build, docs/doxyoutputdocs/api.gitignore 파일에 추가하십시오 (로컬에서 빌드할 때).
  6. 변경 사항을 Github에 푸시하십시오.
  7. readthedocs.io에서 새 프로젝트를 생성하고, 고급 설정에서 requirements.txt 파일 경로를 docs/requirements.txt로 설정하십시오.

설치

Voxblox를 설치하려면 ROS Indigo, ROS Kinetic 또는 ROS Melodic을 설치하십시오. 이러한 지침은 Ubuntu에 해당하며, Voxblox는 OS X에서도 실행되지만, 이 경우 사용자가 스스로 해결해야 할 것입니다.

먼저 추가 시스템 종속성을 설치하십시오(필요에 따라 kinetic을 indigo 또는 melodic으로 교체):

sudo apt-get install python-wstool python-catkin-tools ros-kinetic-cmake-modules protobuf-compiler autoconf

다음으로 몇 가지 다른 종속성을 추가합니다. 아직 catkin 워크스페이스가 없다면 다음과 같이 설정하십시오:

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin init
catkin config --extend /opt/ros/kinetic
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin config --merge-devel

GitHub에서 SSH 키를 사용하는 경우(권장):

cd ~/catkin_ws/src/
git clone git@github.com:ethz-asl/voxblox.git
wstool init . ./voxblox/voxblox_ssh.rosinstall
wstool update

SSH 키를 사용하지 않고 https를 사용하는 경우:

cd ~/catkin_ws/src/
git clone https://github.com/ethz-asl/voxblox.git
wstool init . ./voxblox/voxblox_https.rosinstall
wstool update

이미 wstool을 초기화한 경우 위의 wstool initwstool merge -t로 교체하십시오.

컴파일:

cd ~/catkin_ws/src/
catkin build voxblox_ros

Voxblox Node

목차

  • 게시된 토픽과 구독된 토픽
  • 게시된 토픽
  • 구독된 토픽
  • 서비스
  • 매개변수
  • 일반 매개변수
  • TSDF 통합기 매개변수
  • 빠른 TSDF 통합기 고유 매개변수
  • ESDF 통합기 매개변수
  • ICP 정제 매개변수
  • 입력 변환 매개변수
  • 출력 매개변수

게시된 토픽과 구독된 토픽

참고: voxblox_nodetsdf_server(TSDF를 원할 경우) 또는 esdf_server(TSDF와 ESDF를 모두 원할 경우)로 대체되었습니다. tsdf_serveresdf_server는 다음 토픽들을 게시하고 구독합니다.

게시된 토픽

  • mesh voxblox_msgs::MeshBlock: RViz에서 볼 수 있는 형태로 TSDF에서 생성된 메쉬를 시각화하는 토픽입니다. update_mesh_every_n_sec로 업데이트 주기를 제어할 수 있습니다.
  • surface_pointcloud pcl::PointCloud<pcl::PointXYZRGB>: 표면 근처의 보컬을 색상화한 포인트클라우드입니다.
  • tsdf_pointcloud pcl::PointCloud<pcl::PointXYZI>: 할당된 모든 보컬을 보여주는 포인트클라우

드입니다.

  • mesh_pointcloud pcl::PointCloud<pcl::PointXYZRGB>: output_mesh_as_pointcloud가 true로 설정된 경우에만 나타나며, 생성된 메쉬의 정점을 포함하는 포인트클라우드를 출력합니다.
  • mesh_pcl pcl_msgs::PolygonMesh: output_mesh_as_pcl_mesh가 true로 설정된 경우에만 나타나며, generate_mesh 서비스에 의해 생성된 모든 메쉬를 출력합니다.
  • tsdf_slice pcl::PointCloud<pcl::PointXYZI>: 저장된 거리 값에 의해 색상화된 TSDF의 2D 수평 슬라이스를 출력합니다.
  • esdf_pointcloud pcl::PointCloud<pcl::PointXYZI>: 할당된 모든 ESDF 보컬의 값을 보여주는 포인트클라우드입니다. esdf_server를 사용하는 경우에만 나타납니다.
  • esdf_slice pcl::PointCloud<pcl::PointXYZI>: 저장된 거리 값에 의해 색상화된 ESDF의 2D 수평 슬라이스를 출력합니다. esdf_server를 사용하는 경우에만 나타납니다.
  • occupied_nodes visualization_msgs::MarkerArray: TSDF에서 할당된 보컬의 위치를 시각화합니다.
  • tsdf_map_out voxblox_msgs::Layer: TSDF 레이어 전체를 게시하여 다른 노드에서 업데이트하도록 합니다(tsdf_layer_in을 듣는 노드). publish_tsdf_map이 true로 설정된 경우에만 게시됩니다.
  • esdf_map_out voxblox_msgs::Layer: ESDF 레이어 전체를 게시하여 다른 노드에서 업데이트하도록 합니다(esdf_layer_in을 듣는 노드). publish_esdf_map이 true로 설정된 경우에만 게시됩니다.
  • traversable pcl::PointCloud<pcl::PointXYZI>: (ESDF 서버 전용) 맵 내에서 통과 가능한 것으로 간주되는 모든 포인트를 출력하며, publish_traversabletraversability_radius 매개변수에 의해 제어됩니다.

구독된 토픽

  • transform geometry_msgs::TransformStamped: use_tf_transforms가 false로 설정된 경우에만 나타나며, 세계 프레임에서 현재 센서 프레임으로의 변환을 의미합니다.
  • pointcloud sensor_msgs::PointCloud2: 통합할 입력 포인트클라우드입니다.
  • freespace_pointcloud sensor_msgs::PointCloud2: use_freespace_pointcloud가 true로 설정된 경우에만 나타나며, 이 토픽의 포인트들은 빈 공간에 떠 있는 것으로 간주됩니다. 이러한 포인트들은 맵에서 더 완전한 빈 공간 정보를 생성하는 데 도움이 될 수 있습니다.
  • tsdf_map_in voxblox_msgs::Layer: 이 토픽에서 받은 TSDF 레이어로 현재 TSDF 레이어를 교체합니다. 보컬 크기와 보컬 당 면적은 일치해야 합니다.
  • esdf_map_in voxblox_msgs::Layer: 이 토픽에서 받은 ESDF 레이어로 현재 ESDF 레이어를 교체합니다. 보컬 크기와 보컬 당 면적은 일치해야 합니다.
  • icp_transform geometry_msgs::TransformStamped: ICP가 활성화된 경우, 세계 프레임과 ICP 프레임 간의 현재 보정된 변환입니다.

서비스

tsdf_serveresdf_server는 다음과 같은 서비스를 제공합니다:

  • generate_mesh: 이 서비스는 빈 요청과 응답을 가지고 있습니다. 이 서비스를 호출하면 새로운 메쉬가 생성됩니다. mesh_filename이 빈 문자열로 설정되지 않는 한, 메쉬는 ply 파일로 저장됩니다. output_mesh_as_pointcloud가 true로 설정된 경우, 메쉬는 mesh_pointcloud 토픽에 출력되며, output_mesh_as_pcl_mesh가 true로 설정된 경우 mesh_pcl 토픽에도 출력됩니다.
  • generate_esdf: 이 서비스는 빈 요청과 응답을 가지고 있으며, ESDF 맵 업데이트를 트리거하는 데 사용할 수 있습니다.
  • save_map: 이 서비스는 voxblox_msgs::FilePath::Requestvoxblox_msgs::FilePath::Response를 가집니다. 이 서비스 호출은 TSDF 레이어를 .vxblx 파일로 저장합니다.
  • load_map: 이 서비스는 voxblox_msgs::FilePath::Requestvoxblox_msgs::FilePath::Response를 가집니다. 이 서비스 호출은 TSDF 레이어를 .vxblx 파일에서 불러옵니다.
  • publish_map: 이 서비스는 빈 요청과 응답을 가지며, TSDF 및 ESDF 레이어를 tsdf_map_outesdf_map_out 토픽에 게시합니다.
  • publish_pointclouds: 이 서비스는 빈 요청과 응답을 가지며, TSDF 및 ESDF 포인트클라우드 및 슬라이스를 게시합니다.

매개변수

tsdf_serveresdf_server 매개변수의 요약입니다. 모든 매개변수는 다음과 같이 나열됩니다:

  • 매개변수 기본값
  • 설명

일반 매개변수

  • min_time_between_msgs_sec: 0.0
    메시지를 통합한 후 새 메시지를 수락하기 전에 대기할 최소 시간입니다.
  • pointcloud_queue_size: 1
    포인트클라우드를 구독하는 데 사용되는 큐의 크기입니다.
  • verbose: true
    추가 디버그 및 타이밍 정보를 출력합니다.
  • max_block_distance_from_body: 3.40282e+38
    최신 로봇 포즈에서 이 거리보다 먼 블록은 메모리를 절약하기 위해 삭제됩니다.

TSDF 통합기 매개변수

  • method: “merged”
    “simple”: 가장 간단한 통합기입니다. 포인트클라우드의 각 포인트에 대해 원점을 통해 광선을 쏘아 통합합니다. 각 광선이 통과하는 모든 보컬이 개별적으로 업데이트됩니다. 매우 느리고 정확한 접근 방식입니다.
    “merged”: 같은 보컬에서 시작하고 끝나는 광선이 하나의 광선으로 번들됩니다. 포인트의 속성이 병합되고 가중치가 추가되므로 정보가 손실되지 않습니다. 근사치는 일부 보컬이 이웃 보컬에 의도된 업데이트를 받을 수 있도록 합니다. 이 접근 방식은 큰 보컬(10cm 이상)과 잘 작동하며, 단순 통합기에 비해 속도가 크게 향상될 수 있습니다.
    “fast”: 이미 다른 광선에 의해 업데이트된 보컬을 업데이트하려는 광선은 조기에 종료되어 폐기됩니다. 정보 손실을 감수하고 가능한 한 빠른 결과를 제공하도록 설계된 근사 방법입니다. 속도와 정보 손실 간의 균형은 start_voxel_subsampling_factormax_consecutive_ray_collisions 매개변수를 통해 조정할 수 있습니다. 이 방법은 현재 5cm 이하의 보컬로 실시간 응용 프로그램에 사용할 수 있는 유일한 통합기입니다.
  • tsdf_voxel_size: 0.2
    TSDF 보컬의 크기입니다.
  • tsdf_voxels_per_side: 16
    할당된 블록의 한 변당 TSDF 보컬 수입니다. 2의 거듭제곱이어야 합니다.
  • voxel_carving_enabled: true
    true로 설정된 경우 광선의 전체 길이가 통합됩니다. false로 설정된 경우 절단 거리 내의 영역만 사용됩니다.
  • truncation_distance: 2 * tsdf_voxel_size
    TSDF의 절단 거리입니다.
  • max_ray_length_m: 5.0
    광선이 투사될 최대 범위입니다.
  • min_ray_length_m: 0.1
    광선 투사가 시작될 지점입니다.
  • max_weight: 10000.0
    보컬에 할당된 가중치의 상한입니다.
  • use_const_weight: false
    true로 설정된 경우 광선을 따라 모든 포인트에 동일한 가중치가 부여됩니다.
  • allow_clear: true
    true로 설정된 경우 max_ray_length_m 이상의 거리에 있는 포인트까지 통합됩니다.
  • use_freespace_pointcloud: false
    true로 설정된 경우 freespace_pointcloud라는 두 번째 구독 토픽이 나타납니다. 이 토픽의 포인트들은 절단 거리 밖의 비어 있는 공간에 떠 있는 것으로 간주됩니다.

빠른 TSDF 통합기 고유 매개변수

이 매개변수들은 통합기 방법

이 "fast"로 설정된 경우에만 사용됩니다.

  • start_voxel_subsampling_factor: 2
    통합 전에 포인트가 서브 보컬에 삽입되며, 서브 보컬당 하나의 포인트만 허용됩니다. 포인트클라우드의 서브샘플링으로 생각할 수 있습니다. 서브 보컬의 모서리 길이는 보컬 모서리 길이를 start_voxel_subsampling_factor로 나눈 것입니다.
  • max_consecutive_ray_collisions: 2
    이 통합기에 의해 투사된 광선은 현재 스캔의 다른 광선이 이미 통과한 보컬을 감지합니다. 다른 광선이 이미 통과한 보컬을 연속으로 max_consecutive_ray_collisions번 통과하면 새로운 정보를 추가하지 않는 것으로 간주되어 투사가 중단됩니다.
  • max_integration_time_s: 3.40282e+38
    프레임 통합 시간 예산입니다. 이 시간이 초과되면 광선 투사가 조기에 중단됩니다. 실시간 성능을 보장하기 위해 사용됩니다.
  • clear_checks_every_n_frames: 1
    서브 보컬이 가득 찼는지 또는 보컬이 광선을 통과했는지 여부를 나타내는 세트를 얼마나 자주 초기화할지 결정합니다.

ESDF 통합기 매개변수

  • esdf_max_distance_m: 2.0
    ESDF가 계산될 최대 거리입니다.
  • esdf_default_distance_m: 2.0
    알 수 없는 값과 esdf_max_distance_m 이상의 값에 대해 설정되는 기본 거리입니다.
  • clear_sphere_for_planning: false
    센서의 현재 위치 근처에서 알 수 없는 공간을 자유롭게 설정하고, 센서에서 더 멀리 있는 알 수 없는 공간을 점유된 공간으로 설정하는 기능을 활성화합니다. 아래 두 매개변수로 제어됩니다.
  • clear_sphere_radius: 1.5
    알 수 없는 공간이 자유롭게 설정되는 내부 구의 반경입니다(미터 단위).
  • occupied_sphere_radius: 5.0
    알 수 없는 공간이 점유된 공간으로 설정되는 외부 구의 반경입니다(미터 단위).

ICP 정제 매개변수

ICP 기반의 정제는 병합 전에 입력 포인트클라우드의 포즈에 적용될 수 있습니다.

  • enable_icp: false
    모든 들어오는 포인트클라우드를 기존 구조에 맞추기 위해 ICP를 사용할지 여부를 설정합니다.
  • icp_refine_roll_pitch: true
    6자유도 포즈 수정이 적용되는지 여부를 설정합니다. false로 설정하면 4자유도(x, y, z, yaw) 수정만 적용됩니다.
  • accumulate_icp_corrections: true
    모든 포인트클라우드에 대해 ICP에서 변환 보정을 누적할지 여부를 설정합니다. false로 설정하면 각 새로운 포인트클라우드에서 보정이 초기화됩니다.
  • icp_corrected_frame: icp_corrected
    ICP 보정을 출력할 TF 프레임입니다.
  • pose_corrected_frame: pose_corrected
    icp_corrected_frame에 대해 상대적으로 ICP 보정 포즈를 출력하는 데 사용되는 TF 프레임입니다.
  • icp_mini_batch_size: 20
    각 배치의 포인트 매칭 보정에 사용되는 포인트 수입니다.
  • icp_subsample_keep_ratio: 0.5
    매칭에 사용되는 포인트 수를 줄이기 위해 무작위로 서브샘플링이 사용됩니다.
  • icp_min_match_ratio: 0.8
    미니 배치 정제가 승인되려면, 포인트클라우드의 최소 이 비율의 포인트가 기존 TSDF 레이어의 절단 거리 내에 있어야 합니다.
  • icp_inital_translation_weighting: 100.0
    시스템이 제공된 초기 포즈에 대해 가지는 신뢰도의 대략적인 측정값입니다. ICP에 사용되는 각 포인트는 변환에 대한 가중 정보 1점을 제공합니다.
  • icp_inital_rotation_weighting: 100.0
    시스템이 제공된 초기 포즈에 대해 가지는 신뢰도의 대략적인 측정값입니다. ICP에 사용되는 각 포인트는 회전에 대한 가중 정보 2점을 제공합니다.

입력 변환 매개변수

  • use_tf_transforms: true
    true로 설정된 경우, ROS tf 트리를 사용해 센서의 포즈를 세계에 상대적으로 얻습니다(sensor_frameworld_frame이 사용됩니다). false로 설정된 경우, 포즈는 변환 토픽을 통해 제공되어야 합니다.
  • world_frame: "world"
    tf 변환을 조회할 때 사용되는 기본 프레임입니다. 대부분의 출력도 이 프레임에서 제공됩니다.
  • sensor_frame: ""
    tf 변환을 조회할 때 사용되는 센서 프레임입니다. 빈 문자열로 설정된 경우, 입력 포인트클라우드 메시지의 프레임이 사용됩니다.
  • T_B_D
    베이스에서 동적 시스템으로 적용될 정적 변환입니다.
  • invert_T_B_D: false
    제공된 T_B_D를 사용하기 전에 반전할지 여부를 설정합니다.
  • T_B_C
    베이스에서 센서로 적용될 정적 변환입니다.
  • invert_T_B_C: false
    제공된 T_B_C를 사용하기 전에 반전할지 여부를 설정합니다.

출력 매개변수

  • output_mesh_as_pointcloud: false
    true로 설정된 경우, generate_mesh 서비스가 호출될 때마다 생성된 메쉬의 정점이 포인트클라우드로 mesh_pointcloud 토픽에 출력됩니다.
  • output_mesh_as_pcl_mesh: false
    true로 설정된 경우, generate_mesh 서비스가 호출될 때마다 생성된 메쉬가 pcl::PolygonMeshmesh_pcl 토픽에 출력됩니다.
  • slice_level: 0.5
    생성된 TSDF 및 ESDF 슬라이스가 만들어질 높이입니다.
  • color_ptcloud_by_weight: false
    포인트클라우드를 보컬 가중치로 색상화할지 여부를 설정합니다.
  • mesh_filename: ""
    출력 메쉬가 저장될 파일 이름입니다. 파일을 생성하지 않으려면 빈 문자열로 둡니다.
  • color_mode: "color"
    메쉬 색상화에 사용될 방법입니다. 가능한 옵션은 "color", "height", "normals", "lambert", "gray"입니다.
  • mesh_min_weight: 1e-4
    메쉬에 포함될 포인트에 필요한 최소 가중치입니다.
  • update_mesh_every_n_sec: 0.0
    메쉬 토픽이 게시될 속도입니다. 0으로 설정하면 비활성화됩니다. 참고로, 이 설정은 ply 파일 생성과 같은 다른 메쉬 작업을 트리거하지 않습니다.
  • publish_tsdf_map: false
    전체 TSDF 맵을 주기적으로 ROS 토픽에 게시할지 여부를 설정합니다.
  • publish_esdf_map: false
    전체 ESDF 맵을 주기적으로 ROS 토픽에 게시할지 여부를 설정합니다.
  • publish_tsdf_info: false
    tsdf_pointcloud, surface_pointcloud, occupied_nodes를 게시하는 기능을 활성화합니다.
  • publish_pointclouds:
    true로 설정된 경우 메쉬가 업데이트될 때 TSDF 및 ESDF(생성된 경우)가 포인트클라우드로 게시됩니다.
  • intensity_colormap: "rainbow"
    들어오는 포인트클라우드가 레이저와 같은 강도(intensity) 포인트클라우드일 경우, 강도가 색상에 매핑되는 방식을 설정합니다. 유효한 옵션은 "rainbow", "inverse_rainbow", "grayscale", "inverse_grayscale", "ironbow"(열맵)입니다.
  • intensity_max_value: 100.0
    강도 매핑에 사용할 최대 값입니다. 최소 값은 항상 0입니다.
  • publish_traversable: false
    ESDF 서버에서 통과 가능한 포인트클라우드를 표시할지 여부를 설정합니다.
  • traversability_radius: 1.0
    포인트가 통과 가능한 것으로 간주되는 최소 반경입니다.

이 번역이 도움이 되길 바랍니다! 추가 질문이 있으시면 언제든지 알려주세요.

profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글