14
- 엔엔엔 엔엔 엔엔엔 엔엔 (Encoder Robot)- (Encoder Robot)-

엔코더 로봇 (Encoder Robot)-

  • Upload
    katina

  • View
    107

  • Download
    0

Embed Size (px)

DESCRIPTION

엔코더 로봇 (Encoder Robot)-. - NXT 서보 모터 (Servo Motor) -. NXT 서보 모터는 회전 속도계가 내장되 어 있어 모터의 회전 속도나 회전 각도 를 측정 정 방향 제어 , 역 방향 제어 , 감속 , 가속 등의 미세한 제어가 가능 서보 모터의 출력 범위는 -100 ~ +100 까지 이며 , 0 은 모터의 정지를 의미 엔코더 ( 회전 센서 ) 의 분해능은 1 도. - 서보 모터 셀프 테스트 -. 서보 모터를 포트 A 에 연결 - PowerPoint PPT Presentation

Citation preview

Page 1: 엔코더 로봇 (Encoder Robot)-

-엔코더 로봇엔코더 로봇 (Encoder Robot)- (Encoder Robot)-

Page 2: 엔코더 로봇 (Encoder Robot)-

- NXT - NXT 서보 모터서보 모터 (Servo Motor) - (Servo Motor) -

• NXT 서보 모터는 회전 속도계가 내장되 어 있어 모터의 회전 속도나 회전 각도 를 측정

• 정 방향 제어 , 역 방향 제어 , 감속 , 가속 등의 미세한 제어가 가능

• 서보 모터의 출력 범위는 -100 ~ +100 까지 이며 , 0 은 모터의 정지를 의미

• 엔코더 ( 회전 센서 ) 의 분해능은 1 도

Page 3: 엔코더 로봇 (Encoder Robot)-

1. 서보 모터를 포트 A 에 연결

2. NXT 를 켜고 View 를 선택 ( ))

3. Motor rotation/Motor degrees 아이콘을 선택 - Motor rotation : 서보 모터의 회전 수를 측정 - Motor degrees : 서보 모터의 회전 각도를 측정

4. 포트 A/C 를 선택한다 .

5. 서보 모터에 바퀴를 굴려 보면서 회전수 / 각도를 측정한다 .

- - 서보 모터 셀프 테스트서보 모터 셀프 테스트 - -

Page 4: 엔코더 로봇 (Encoder Robot)-

- - 원하는 각도 만큼 바퀴 회전하기원하는 각도 만큼 바퀴 회전하기 - -

• nMotorEncoder[ 모터 이름 ] : 모터 이름으로 지정된 모터의 엔코더 값을 읽어 드리거나 엔코더에 임의 값을 저장할 수 있다 .

Page 5: 엔코더 로봇 (Encoder Robot)-

- - 원하는 각도 만큼 바퀴 회전하기원하는 각도 만큼 바퀴 회전하기 -2 - -2 -

• nMotorEncoderTarget[ 모터이름 ]

- 지정된 값에 엔코더 값이 도달할수록 천천히 모터를 정지시키며 , 목표 값을 지나면 모터에 전원이 들어가지 않는 상태 (coast) 로 바뀐다 .

- 모터를 구동시키는 것이 아니라 엔코더 값의 목표치를 설정할 뿐이기 때문에 모터를 구동하기 위해서 motor[ 모터이름 ] = 값의 형식을 사용해야 한다 .

Page 6: 엔코더 로봇 (Encoder Robot)-

- PID - PID 속도 제어 속도 제어 - -

• 서보 모터의 PID(P: 비례 /I: 적분 /D: 미분 ) 제어 기능을 이용하여 오차를 줄여 가장 정확한 속도로 움직이는 로봇

• nMotorPIDSpeedCtrl[ 모터명 ] = mtrSpeedReg PID 속도제어를 등록하는 함수로서 모터가 정확한 출 력을 할 수 있도록 모터의 출력을 자동으로 조정한다 .

Page 7: 엔코더 로봇 (Encoder Robot)-

• PID 제어– P (proportional : 비례 )

• 목표 값과의 오차가 발생하는 정도에 따라서 제어하는 것• On/Off 제어라고도 불리우는 것으로 계속적으로 목표 값을 맞추기 위해서

출력과 정지를 반복

– I (integral : 적분 )• 오차 값들을 모아 어느 순간에 일정량의 오차가 누적되면 한 번에 오차를

수정하는 방법• 기계가 움직이기 시작한 후 어느 정도 시간이 지난 다음 누적된 오차가 일정

수준 이상일 때 , 적당한 보정을 가해주는 에러 값 수정 방법

– D (differential : 미분 )• 일정시간 동안에 발생한 오차의 크기에 따라 그 보정을 다르게 해주는 것• 같은 시간 동안 오차가 크게 발생하면 보정을 많이 하고 오차가 적으면 적은

만큼 보정

– 각 방법을 모두 혹은 몇 가지를 복합적으로 (P, PI, PID 등 ) 사용

- PID - PID 속도 제어 속도 제어 - -

Page 8: 엔코더 로봇 (Encoder Robot)-

- PID - PID 제어 관찰제어 관찰 - -

• 프로그램을 실행하고 Robot > Debug Windows > NXT Devices 메뉴를 통해 로봇의 상태를 관찰

• 원하는 목표 속도가 50 일 때 PID 값이 자유자재로 변하는 것으로 , 모터 파워 50 의 속도를 맞추기 위해 A 모터는 46, C 모터는 55 의 파워를 주고 있다 .

Page 9: 엔코더 로봇 (Encoder Robot)-

- - 두 모터의 동기화두 모터의 동기화 - -

• 두 개의 모터를 동기화 시켜 한쪽 모터의 일정 비율만큼의 속도로 움직이는 로봇

Page 10: 엔코더 로봇 (Encoder Robot)-

- - 동기화 함수 설명동기화 함수 설명 - - • nSyncedMotors = synchAC

- 두 개의 모터를 동기화시키기 위해서 사용한다 .- synch[ 첫 번째모터 ][ 두 번째 모터 ] : 첫번째 모터 출력에 두번째 모터를 동기화 시킨다는 것을 의미

• nSyncedTurnRatio = 모터 동기화 비율

- 첫 번째 모터에 따른 두 번째 모터의 동기화 비율을 설정- 동기화 비율은 -100 ~ +100% 까지 입력 가능- 동기화 비율에 따른 두 번째 모터의 파워 공식

- 동기화 비율이 100 인 경우 두 개의 모터가 같은 속도로 회전 - 동기화 비율이 100 보다 작은 경우 로봇은 회전을 한다 . 즉 동기화 비율을 조절 하여 스윙 턴 , 커브 턴등의 다양한 움직임을 표현할 수 있다 .

Page 11: 엔코더 로봇 (Encoder Robot)-

- - 도전 과제 도전 과제 VV - - • 모터에 축을 연결해서 자동차 핸들을 구현해보기

Page 12: 엔코더 로봇 (Encoder Robot)-

- - 도전 과제 도전 과제 VV - - • 초음파센서를 이용 벽 앞 30cm 까지 전진한 후 처음 출발위치까지 돌아오기

- 벽 앞에서 출발한다 . 이때 벽과의 거리는 1m 이상 떨어져 있어야 함

- 모터 엔코더값을 이용해서 처음 출발한 위치로 돌아와야 함

- 허용오차는 3cm 이내

Page 13: 엔코더 로봇 (Encoder Robot)-

???

- Q & A - - Q & A -

Page 14: 엔코더 로봇 (Encoder Robot)-

감사합니다