센서 배치·설정
본 페이지는 MORAI SIM: Drive에서 제공하는 센서(Camera, Lidar, GPS, IMU, Radar)를 배치하고 설정하는 방법에 대해 설명한다.
센서 설정을 위한 메뉴 구성

상단 메뉴바의 Edit - Sensor - Sensor Edit Mode 를 클릭하면 지원되는 센서의 에디터가 나타난다.
센서 설정 화면
센서 추가하기

Shift + 왼쪽 클릭으로 원하는 위치에 센서를 배치할 수 있다.
추가되는 센서의 종류는 좌측 하단에 위치한 Active List를 통해 확인이 가능하다.

센서를 추가하면 Sensor Settings 패널에서 좌측 상단에 센서명과 매치되는 아이콘을 클릭하면 추가된 센서를 확인할 수 있다.
센서 세부 설정 & 삭제하기

Sensor Settings 패널 클릭후 자신이 원하는 센서의 아이콘을 클릭하면 좌측 하단과 같은 세부 설정을 위한 패널이 나타난다.
각 센서의 장착 위치, 장착 각도, 그리고 센서별 세부 파라미터를 설정할 수 있다. 세부 파라미터에 대해서는 아래에서 별도로 다룬다.
값을 수정한 이후 Confirm을 눌러야 적용된다.
Confirm이후 카메라는 View, GPS , IMU 는 info , LiDAR는 vizPath , Radar 는 Viz Radar Range를 통해서 실시간으로 센서의 데이터를 확인 할 수 있다.
센서는 Delete 버튼을 이용하여 삭제할 수 있다. (차량에 붙은 센서 오브젝트에 Alt+왼쪽 클릭으로도 센서를 삭제할 수 있다.)
센서별 세부 파라미터 세팅
고유 파라미터
Camera

카메라의 X, Y, Z(차량 축 기준), Roll, Pitch, Yaw, 해상도, FOV, Ground Truth 출력 여부를 설정할 수 있다.
네트워크 세팅은 아래에서 별도로 다룬다.
Frame Rate(Hz) : Camera 센서의 데이터 전송 주기를 지정한다.
Option → Target FPS 값 및 시뮬레이터 FPS에 따라 설정한 Frame Rate보다 낮게 전송될 수 있음.
5 ~ 60Hz까지 1Hz 단위로 입력 가능

Model : 카메라의 모델을 선택 할 수 있다.
Camera
FishEyeCamera
PhysicalCamera ADD-ON SERVICE

Ground Truth
None : RGB Camera
Semantic : Semantic Camera
Instance : instance Camera

Param Type (Physical Camera) ADD-ON SERVICE
Intrinsic : Pixel 좌표계와 Camera 좌표계의 관계를 표현하는 Parameter
Focal Length(pixel) : 렌즈 중심에서 이미지 센서까지 거리
Principal Point x, y : 렌즈 중심(원점)에서 Image Plane에 내린 수선의 발의 픽셀 좌표
Physical : Unity 내 Physical Camera Parameter
Focal Length(mm) : 이미지 센서와 렌즈 사이의 거리
Sensor Size x, y : 이미지 센서의 크기 (단위: mm)
Lens Shift x , y: 렌즈가 이미지 센서 중심으로부터 이동한 거리 (단위: Sensor Size 기준 %)

LiDAR

LiDAR의 X, Y, Z(차량 축 기준), Roll, Pitch, Yaw, Model, Intensity Type을 선택할 수 있다.
네트워크 세팅은 아래에서 별도로 다룬다.
센서 노이즈 관련 정보는 Sensor Noise 생성 기능 사용 방법 를 참고한다.
Rotation Rate(Hz) : LiDAR 센서의 데이터 전송 주기를 지정한다.
ROS Network > roslaunch 명령어 입력 시 RPM 옵션 수정 필요.
( 하단 LiDAR ROS 네트워크 세팅 참고 : 센서 설정 | LiDAR-ROS-Message-Type )Option→Target FPS 값 및 시뮬레이터 FPS에 따라 설정한 Rotation Rate보다 낮게 전송될 수 있음.
LiDAR 모델 별로 설정할 수 있는 범위가 다름

GPS

GPS의 X, Y, Z(차량 축 기준), Roll, Pitch, Yaw선택할 수 있으나 센서 고유의 파라미터를 변경을 지원하지 않는다.
네트워크 세팅은 아래에서 별도로 다룬다.
Data Rate(Hz) : GPS 센서의 데이터 전송 주기를 지정한다.
Option → Target FPS 값 및 시뮬레이터 FPS에 따라 설정한 Data Rate보다 낮게 전송될 수 있음.
5 ~ 100Hz까지 1Hz 단위로 입력 가능

센서 노이즈 관련 정보는 Sensor Noise 생성 기능 사용 방법 를 참고한다.
IMU

IMU의 X, Y, Z(차량 축 기준), Roll, Pitch, Yaw선택할 수 있으나 센서 고유의 파라미터를 변경을 지원하지 않는다.
네트워크 세팅은 아래에서 별도로 다룬다.
Data Rate(Hz) : IMU 센서의 데이터 전송 주기를 지정한다.
Option → Target FPS 값 및 시뮬레이터의 FPS에 따라 설정한 Data Rate보다 낮게 전송될 수 있음.
5 ~ 50Hz까지 1Hz 단위로 입력 가능

센서 노이즈 관련 정보는 Sensor Noise 생성 기능 사용 방법을 참고한다.
Radar

Radar의 X, Y, Z(차량 축 기준), Roll, Pitch, Yaw선택할 수 있으나 센서 고유의 파라미터를 변경을 지원하지 않음.
네트워크 세팅은 아래에서 별도로 다룬다.
Data Rate(Hz) : Radar 센서의 데이터 전송 주기를 지정한다.
Option → Target FPS 값 및 시뮬레이터의 FPS에 따라 설정한 Data Rate보다 낮게 전송될 수 있음.
5 ~ 20Hz까지 1Hz 단위로 입력 가능
Viz Radar Range 활성화 시, Radar Sensor를 통해 검출한 Object에 Radar Point Cloud(노란점) 표시함.

네트워크 세팅
센서 데이터 출력을 위한 정보이다.
ROS
Camera ROS Message Type
영상정보
Message Type : sensor_msgs/CompressedImage
Default Topic : /imag_jpeg/compressed
타입 설명 : jpg타입의 영상정보.
LiDAR ROS Message Type
3D 라이다 정보
UDP통신으로 velodyne_LiDAR에서 나오는 데이터를 velodyne package를 이용하여sensor_msgs/PointCloud2로 변환 후 사roslaunch velodyne_pointcloud 32e_points.launch rpm:={RPM Value}
{RPM Value} 는 설정한 Rotation Rate에 대응하는 값 입력
RPM = Rotation Rate * 60e
예시) 5Hz 설정 시 → 300 입력
RPM 미입력 시 Default 값인 600(10Hz)으로 설정됨.
GPS ROS Message Type
GPS
Message Type : morai_msgs/GPSMessage
Default Topic : /gps
타입 설명 : GPS정보
IMU ROS Message Type
IMU
Message Type : sensor_msgs/Imu
Default Topic : /Imu
타입 설명 : IMU정보
Radar ROS Message Type
Radar
Message Type : morai_msgs/RadarDetections.msg
Default Topic : /radar
타입 설명 : radar정보
Header header
uint16 point_id
float32 x
float32 y
float32 z
float32 azimuth
float32 rangerate
float32 rcs
Radar(for RVIZ visualization)
Message Type : sensor_msgs/PointCloud
Default Topic : /radar
타입 설명 : radar pcd정보
UDP
Camera UDP Protocol

전체 패킷 크기 : 65000 Bytes
데이터 크기 : 64987 Bytes
JPG 파일로 압축하고, 최대 64987 Bytes만큼 block으로 분할한 다음, block index를 같이 매겨서 전송.
Head(char)
데이터 설명 : MOR. 데이터의 시작 문구.
Data Block Index(int)
데이터 설명 : 분할된 block의 index.
Data Block Size(int)
데이터 설명 : 전송받은 block의 크기.
Data(bytes)
데이터 설명 : 분할된 JPG block의 내용.
Tail(char)
데이터 설명 : AI 혹은 EI. AI인 경우엔 분할된 block이 더 남아있다는 뜻이며, EI인 경우는 분할된 JPG block들 중 가장 마지막을 의미한다.
GPS UDP Protocol


NMEA0183 Protocol을 따르고, RMC/GGA sentence 두가지 format으로 동시에 들어온다.
Format Type(char)
데이터 설명 : GPRMC/GPGGA. Format의 종류를 나타낸다.
Time(float)
데이터 설명 : GPS 정보가 들어올 때의 time stamp.
차량 위치 정보(Lat/Long/Alt, float)
데이터 설명 : GPS 센서에서 측정한 위도/경도/고도.
LiDAR UDP Protocol

시뮬레이터의 LiDAR Protocol은 Velodyne의 Protocol을 그대로 따른다.
IMU Protocol

전체 패킷 크기 : 107 Bytes
데이터 크기 : 80 Bytes
Orientation(ori_*)
방향을 나타내는 데이터이며 Quaternian이다.
Angular Velocity(ang_vel_*)
각속도를 나타내는 데이터이며 rad/s 단위이다.
Linear Acceleration(lin_acc_*)
가속도를 나타내는 데이터이며 m/s^2 단위이다.
센서 설정 저장하기 & 불러오기


센서 설정 부르기

센서 설정 저장
좌측 하단의 Save 버튼을 통해 현재의 센서 설정값을 파일에 저장할 수 있다.
Sensor File Manager 는 현재 저장된 센서 설정 파일을 보여주며, 각 파일을 로드하거나 삭제할 수 있다.