정보공간_1

[2기 전주 심경원] URG - 04LX 레이저 센서의 특징 및 사용법 본문

IT 놀이터/Elite Member Tech & Talk

[2기 전주 심경원] URG - 04LX 레이저 센서의 특징 및 사용법

알 수 없는 사용자 2012. 11. 17. 03:39

URG - 04LX 레이저 센서의 특징 및 사용법

 

1. 소개

 HOKUYO라는 일본 회사에서 만든 레이저 센서에 대한 소개와 사용 법에 대해 설명을 할 것이다. 기존의 거리나 장애물을 감지 할 수 있는 다양한 센서들이 존재 하지만 환경에 많은 영향을 받는 것이 센서이다. 이러한 취약점에 대해 보완을 하여 사용 할 수 있는 센서가 레이저 센서라 생각한다. 이 레이저 센서의 경우 로봇이나 거리를 측정하는 하드웨어 적인 기구에서 유용하게 사용 할 수 있을 것이다.

2. 서론

 URG-04LX는 레이저센서로써 차세대 지능 로봇의 자율 이동 시스템이나 특정 거리를 측정 할 수 있는데 최적인 환경 인식 센서이다. 장애물 인식이나 거리를 측정 하는데 주로 사용되는 센서들은 초음파센서나 , 적외선 센서, 거리 측정 센서 등 다양한 센서들이 존재한다. 하지만 이러한 센서들은 장소, 날씨 등 환경에 많은 제약을 받는 것이 취약점이라 할 수 있다. 이 레이저 센서의 경우  광주사형으로 밝기의 변화에 영향을 받지 않고 5600mm * 240도의 Area를 검출 할 수 있기 때문에 무한한 장점을 가지고 있다.

 

 <URG-04LX의 외형>

3. URG-04LX 스펙 및 특징

 

Power source

 

5VDC±5%

 

Light source

 

Semiconductor laser diode(785nm λ)

 

Measuring area

 

20 to 5,600mm

 

Accuracy

60 to 1,000 mm : ± 10mm

1,000 to 4,095 mm : ± 1 %

 

Angular resolution

 

360° / 1,024 steps

 

Scan time

 

100ms/scan

 

Interface

 

USB2.0/1.1 OR RS-232C

 

Command System

 

SCIP Ver 1.1 or Ver 2.0

 

Weight

 

160g

 

Cable

 

Power cable including RS-232C

<URG-04LX의 Specifications>

 기본적으로 5V 전압에서 동작하도록 되어있다. 또한 발광부는 785nm λ 의 파장을 가진 레이저 광원으로 되어 있다. 정확도는 거릴가 60 에서 10000mm 인경우는 10mm 의 오차가 있고 1000이상에서는 1%의 오차 정도가 발생한다. 이 정도의 오차정도면 상당히 정확한 데이터를 얻는다 생각 할 수 있다. 또한 기본 적인 동작 원리를 말하자면 설정된 범위를 빠르게 스캔하여 원하는 데이터를 얻는 형식이다. 동작하는 Resolution은 360도 fmf 1024롤 나눈 약 0.36도 이다. 사용자가 데이터를 얻는데 있어서 설정된 범위 내에서 몇 도 마다 데이터를 얻는지에 대해 설정을 할 수 있기 때문에 때로는 정밀하게 때로는 넓고 간단하게 설정 함으로 써 조절 할 수 있다. 스캔하는 시간은 100ms/scan으로 움직이는 물체에 장착 하였을 때도 상당히 정확한 데이터를 얻을 수 있는 시간이다. 실제로는 가장 중요한 것이 통신 방법이라 할 수 있다. 이 레이저 센서의 통신은 USB 2.0 이나 RS-232의 통신 방식을 사용하게 된다. 일반적으로 많이 사용 되는 RS-232 방식은 여러 마이컴에서 지원하기 때문에 좀 더 쉽게 사용할 수 있을 것이라 생각 한다.

 

4. Command System

명령 시스템은 SCIP라는 규약에 따르게 된다. 명령을 하게 되면 센싱 데이터에 대해서 피드백을 받는 방식이다. 그 구조에 대해 간단히 살펴보도록 하겠다.

 

<Command Format>

 마이컴에서 센서로 보낼 때의 패킷은 위의 첫번째 Command와 같은 구조를 갖는다. 간단히 설명 하면 어떠한 커맨드를 사용 할 지와 그 모드에 맞는 Parameter 그 후 실제 세팅을 하게 되는 데이터 값을 넣게 된다. 데이터 값을 세팅 할 때 String Character로 설정해야 한다는 점을 유의 해야한다. 또한 마지막에 종료 코드를 갖게된다. 피드백 받는 패킷의 구조는 Command Echo로 동일한 명령을 한번 받은 후 그에 해당하는 데이터로 이뤄져 있다.

명령모드 중 BM모드의 경우는 처음 레이저 센서를 Enabling 시키는 Command라 할 수 있겠다. 초기에 레이저 센서의 전우너이 들어 갈 경우 녹색 LED가 깜박거리게 되는데 이 BM 모드의 Command가 들어 갈 경우 깜빡임이 멈추게 되고 실제 센싱을 할 준비를 하게 된다.

 

<BM 모드>

 

다음 GD모드의 경우 실제 동작을 하게하는 Command라 할 수 있겠다. 스캔을 할 Area와 샘플링 할 데이터의 수를 설정하게 된다. 구조를 살 펴 보면 모든 Command 가장 처음에 사용할 모드를 송신 해야 하므로 GD모드를 앞에 작성하여 주고 Area를 설정해줘야 한다.  

 

<URG-04LX 의 Area>

차례 대로 Step 0=0, Step A=44, Step B=384, Step C=725, Step D=768의 값을 갖는다. 이러한 값을 기준으로 설정을 해주면 된다. 설정 Area를 정했으면 샘플링 할 데이터의 수를 설정하게 된다. 예를 들면 100에서 200 Area 설정 후 샘플링을 10으로 설정하면 10개의 데이터를 얻는 다는 것이다. 이는 즉 (200-100)/10=10 이므로 10 x 0.35=3.5°r가 되게 되어 3.5°씩 마다 샘플링을 하게 되어 10개의 데이터를 받게 된다.그 외에도 BM완 반대로 기능을 Disabling 하는 QT 모드 세팅 값을 변경하도록 Reset을 하는 RS 모드, 스캔 시간을 설정하는 TM 모드 등이 존재한다. 이런 각종 모드는 사용자가 적당히 조절하고 바꾸면서 사용 하면 유용할 것이다.

 

 

<GD 모드>

 

 

5. Data Decoding

 

마이컴과 레이저 센서가 통신을 하는데 있어서 HEX 값을 가지고 하는 것이 아닌 ASCII 값을 가지고 하기 때문에 데이터 디코딩의 작업이 필요하다. 피드백 받는 데이터는 예를 들면 ‘1’ ‘D’ ‘H’와 같은 실제로 측정된 거리 값이 얼마인지 알 수 없는 값으로 피드백이 오기 때문에 디코딩은 필수이다. 디코딩의 원리를 간단히 설명해 보면 각 글자 마다 HEX 값인 0x30의 값을 빼준 다음 각각 Binary 코드로 변경하여 12bit, 6bit, 0bit 좌로 Shift한 값을 OR 연산 하게 된다. 매 데이터 마다 디코딩을 해줘야 하는 단점이 있기는 하지만 자리수가 존재하고 큰 데이터를 표현하는데 있어서 효과적이기 때문에 사용해보면 상당히 좋은 성능이라는 것을 알 수 있을 것이다.

<Decoding 원리>

 

6. 결론

 

지금까지 URG-04LX 레이저 센서의 기본적인 스펙과 사용법에 대해 다뤄 보았다. 데이터의 피드백은 각 각도에서 스캔하는 지점의 장애물까지의 거리 값이 나오기 때문에 이 거리 값을 가지고 다양한 알고리즘을 적용하여 장애물 또는 스캔 대상의 상태를 파악 할 수 있을 것이다. 흔히들 사용하는 센서들에 비하여 가격이 비싼 점이 흠이라면 흠이지만 성능만큼은 그 가격에 걸맞음을 알 수 있을 것이다. 특히 이 센서의 경우 RS-232 타입의 방식이 지원 하기 때문에 각종 마이컴에서 손쉽게 사용 할 수 있을 것이며 로봇에 사용할 경우 정말 큰 도움을 얻을 수 있을 것이라 생각한다.