LabVIEW를이용한무인자율주행차량제어 (2009.05.21) 국민대학교무인차량연구실 문희창 국민대학교무인차량로봇연구센터 (Kookmin Univ. Unmanned Vehicle Robot Research Center)
2 무인자율주행차량 무인자율주행차량구성 LabVIEW 를이용한무인자율주행차량제어 GPS 조향제어시스템 Smart Actuator Steering Angle Sensor Torque sensor Laser Scanner 무인자율주행차량시연
3 무인자율주행차량 미국무인자동차대회 (DARPA Challenge 2004, 2005 and 2007) 영상
무인자동차시스템구성도 LabVIEW 를이용한무인자율주행차량제어. 4
GPS 를이용한위치좌표획득 LabVIEW를이용한무인자율주행차량제어 5. GPS(Global Positioning System) Normal GPS (Garmin 18-5Hz ) received NMEA 0183 Sentences input voltage: 4.0-5.5 55V update rate: 5 Hz interfaces: RS-232 accuracy: standard position service, < 15 m DGPS (NavCom SF-2050) received NMEA 0183 Sentences input voltage: 10-30 V update rate: 25-50Hz 50Hz interfaces: RS-232 accuracy: real time, (H) < 15 cm (V) < 30 cm
GPS Output Data NMEA(National Marine Electronics Association) 0183 Message Header : GP-GGA, GSA, GSV, RME, RMC, RMB, VTG GPS Setting program GPS Transmitted Data
GPGGA $GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh<CR>,<LF> <1> UTC time ( 협정세계시 ) <2> Latitude ( 위도 ) <3> N (or S) <4> Longitude ( 경도 ) <5> E (or W) <6> GPS quality (0: 사용불가, 1:Non-DGPS, 2:DGPS(WAAS)) <7> No. of satellites ( 사용위성수 ), 0~12 <8> HDOP (Horizontal dilution of precision: 수평위치정밀도저하율 ), 0.5~99.9 <9> Antenna height ( 평균해수면기준높이 ), -9999.0~9999.9 m <10> Geoidal height ( 지오이드높이 ), 999.9~999.9 m <11> Null <12> Null
8 Serial Port Setup VISA 함수이용 VISA Configure Serial Port VISA Write VISA Read VISA Close VISA Bytes at Serial Port VISA Serial Break VISA Set I/O Buffer Size VISA Flush I/O Buffer
Serial Port Configuration SetSerialPortBufferSize Serial Size
$GPGGA Header 1byte read $ 비교 True : 다음단계로 False : 처음단계로 5bytes read GPGGA 비교 True : 다음단계로 False : 처음단계로
현재시간분리 경위도좌표분리 Latitude ddmm.mmmmm Longitude dddmm.mmmmm
기타정보분리 GPS Mode Satellites Used HDOP 전체 Block Diagram
조향제어시스템 구성 Torque sensor Steering Column smart motor: BLDC 서보 Steering angle sensor
Smart Motor :: 1 SM3420D Peak Torque: 3.81Nm No Load Speed: 4310rpm Servo Update: 4069Hz PWM Frequency: 33.3kHz Power: 20 ~ 48V DC
Smart Motor :: 2 SMI2 Tool: Smart Motor Playground
Smart Motor :: 3 LabVIEW 를이용한프로그래밍 :: RS 232 & motor setting 시리얼통신초기값설정 : Baud rate=9600bit/s, Data bit=8bit, COM port 설정 버퍼사이즈설정 : 4096 크기의빈버퍼생성반송된 Command data 지우기 : ECHO_OFF 모터의가속도값설정 : A395 모터의속도값설정: V644245
Smart Motor :: 4 LabVIEW 를이용한프로그래밍 :: Position mode 위치명령데이터쓰기 : P??? 모터동작명령데이터쓰기 : G 모터위치데이터읽기 : RP 동작완료후모터 OFF명령데이터쓰기 : OFF( 토크제거, 포지션읽기가능 )
Steering angle sensor :: 1 Power Input 8~16 VDC Environment Ambient Temperature -40 C ~ 85 C Angular position Angular speed Data and control interface Range -780 ~ 780 Resolution 0.1 Accuracy ±1.4 Range -1016 ~ 1016 /s Resolution 4 /s Type CAN 2.0A Baud rate 500 kbit/s Data rate 10 ms
Steering angle sensor :: 2 LabVIEW 를이용한프로그래밍 :: CAN configuration CAN 통신초기값설정 : Baud rate=500k bit/s, COM port 설정
Steering angle sensor :: 3 LabVIEW 를이용한프로그래밍 :: Read data 조향각센서의해당 CAN message ID 를입력 Message 중조향각과각속도에대한위치를찾아데이터획득 4 번째바이트에서센서상태확인
Steering Angle Sensor(SAS) :: 4 Steering angle sensor :: 4 LabVIEW 를이용한프로그래밍 :: Zero setting 센서의초기화를위해 Boolean 생성 센서내의 zero 값 clear 현위치에서 zero 값 setting
Torque Sensor :: 1 LabVIEW 를이용한무인자율주행차량제어.
Torque Sensor :: 2 LabVIEW 를이용한프로그래밍 :: 환경설정 DAQ 채널설정 :Dev1/ai0 Dev1/ai0, Dev1/ai1 입력터미널환경설정 : RSE(Referenced single-ended mode) 최대, 최소값설정 : -5V ~ 5V 샘플링모드설정 : 연속된신호 채널당샘플수설정 : 1 채널당 1 초동의샘플수설정 : 1000
Torque Sensor :: 3 LabVIEW 를이용한프로그래밍 :: Read data Multiple Channels, Multiple Samples, 2D DBL 로설정 평균필터 : 채널당샘플값합한후샘플수로나눔
레이저를이용한거리측정 레이저스캐너 레이저스캐너란? Laser Radar 원리를이용한비접촉식거리측정센서 작동원리 방출된단일레이저펄스가센서범위내에존재하는사물의표면에반사되어돌아오는시간을거리로환산 특징 외부환경에대한높은신뢰성 빠른스캔능력 긴측정거리 높은분해능 Δt
SICK LMS291_S05 Technical data Type: Outdoor type Scanning angle: 80m / 30m Angular resolution: 0.25 / 0.5 / 1 Response time: 53ms / 26ms / 13ms Data interface: RS232 / RS422 Input voltage: 24V DC 작동원리 TOF 방식 (Time-Of-Flight) 방출된레이저와반사되어돌아오는레이저의시간을이용하여거리환산
LMS291S_05 의구동 Communication Setup
Raw data 및변환 (500k baud, 180 /0.5 ) 1 회스캔한 raw data 의 hex display (732byte) 각방위각에대한거리값형태 ( 극좌표계 ) 차량을중심으로한직교좌표계로변환필요
LabVIEW 를이용한구동프로그램만들기 :: 1 시리얼통신초기값설정 : Baud rate=9600bit/s, Data bit=8bit, COM port 설정 버퍼사이즈설정 : 4096 크기의빈버퍼생성 38400bps 로변환 : 0200 0200 2048 5808 hex 코드쓰기 Resolution 은 default 로 180º/0.5º 설정 생성된버퍼를비우고시리얼통신닫음
LabVIEW 를이용한구동프로그램만들기 :: 2 38400bps 로 VISA 함수설정버퍼사이즈설정 : 7320크기의빈버퍼생성 초기설정이완료했으므로스캔데이터를연속적으로획득 : '0200 0200 2024 3408 hex 코드쓰기 ) 1회스캔시데이터의크기가 742byte이므로, 742byte 읽음 : Header + (180º / 0.5º + 1) * 2byte + CRC = 742byte) 스캔데이터중 0602 8003 00A0 0010 160A 를포함하고있으면스캔시작
LabVIEW 를이용한구동프로그램만들기 :: 3 1 회스캔데이터읽기 : Header + (180º / 0.5º + 1) * 2byte + CRC = 732byte 실제거리데이터만분류 : 722byte 1 포인트거리데이터 = 2byte, Type cast 를이용해 361 개의 2byte Array 에입력 Swap bytes 를이용해 2byte 의상위 bte byte 와하위 bte byte 의위치바꿈 Swap 3d 17 17 3d 거리 (cm) 거리 (m) 거리 (m) 거리 (cm)
LabVIEW 를이용한구동프로그램만들기 :: 4 For loop 를이용 Array 로만들어진 361 개의거리데이터를 byte 단위로데이터호출 최초극좌표계형태의데이터 (0 에서 180 로순차적인거리측정을하기때문 ) Loop 회전수를이용극좌표계형태의데이터를직각좌표계형태의데이터로변형 : sin 함수이용
LabVIEW 를이용한구동프로그램만들기 :: 5 프로그램정지를누르면레이저스캐너의스캔을정지하는명령을보냄 : 0200 0200 2025 3508 hex 코드쓰기 VISA 버퍼를비우고닫음
LabVIEW 를이용해알고리즘처리한결과 :: 1 스캔환경및장애물검출그래프
LabVIEW 를이용해알고리즘처리한결과 :: 2 글로벌맵생성
무인자율주행차량시연 LabVIEW 를이용한무인자율주행차량제어.