J-Mook / etcWorkplace

0 stars 0 forks source link

Lidar_simulator

스크린샷 2021-07-13 오후 11 05 25

사용자 설정 변수

1) Input & Output, 기능

Input data : mesh data(.stl) path : /파일위치/data

Output data_ : pointcloud data (.ply) path : /파일위치/data/ply

기능

2) 원리

한점에서 구면까지 잇는 선분을 생성하고 선분과 모델링 데이터의 교점 중 첫번째 교점만을 pointcloud 데이터로 수집하였다.

스크린샷 2021-07-13 오후 5 56 46

구면의 반지름은 모델링을 구성하고있는 pointcloud 데이터 중 설정한 센서 위치로 부터 가장 먼 point의 거리를 반지름으로 설정하였다. pycaster Library에 내장되어있는 fromSTL 기능으로 통해 모델링파일(.stl)을 읽고, castRay 기능으로 두 점 사이의 모델링파일의 교점을 검출하였다. castRay는 검출순서대로 list type의 결과값이 리턴되어 첫번째 값(가장 먼저 검출)만을 사용하여 pointcloud로 변환하였다.

pycaster docs : https://pypi.org/project/pycaster/

pycaster project link : https://bitbucket.org/somada141/pycaster/src/master/

3)연산시간 관련 개발

구면 전체를 사용하지 않고, 센서위치에서 원점을 바라보는 방향의 반구면을 사용 구면의 반지름을 계산할때 동적계획법(Dynamic programming)을 사용하여 빠른속도로 최대 반지름을 계산

4) 개선필요점

개발노트