1 / 14

엔코더 로봇 (Encoder Robot)-

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

katina
Download Presentation

엔코더 로봇 (Encoder Robot)-

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. - NXT 서보 모터(Servo Motor) - • NXT 서보 모터는 회전 속도계가 내장되 • 어 있어 모터의 회전 속도나 회전 각도 • 를 측정 • 정 방향 제어, 역 방향 제어, 감속, 가속 • 등의 미세한 제어가 가능 • 서보 모터의 출력 범위는 -100 ~ +100 • 까지 이며, 0은 모터의 정지를 의미 • 엔코더(회전 센서)의 분해능은 1도

  3. - 서보 모터 셀프 테스트 - • 서보 모터를 포트A에 연결 • NXT를 켜고 View 를 선택 ( )) • 3. Motor rotation/Motor degrees 아이콘을 선택 • - Motor rotation : 서보 모터의 회전 수를 측정 • - Motor degrees : 서보 모터의 회전 각도를 측정 • 포트 A/C를 선택한다. • 서보 모터에 바퀴를 굴려 보면서 회전수/ 각도를 • 측정한다.

  4. - 원하는 각도 만큼 바퀴 회전하기- • nMotorEncoder[모터 이름] : 모터 이름으로 지정된 모터의 엔코더 값을 • 읽어 드리거나 엔코더에 임의 값을 저장할 • 수 있다.

  5. - 원하는 각도 만큼 바퀴 회전하기-2 - • nMotorEncoderTarget[모터이름] • 지정된 값에 엔코더 값이 도달할수록 천천히 모터를 정지시키며, 목표 값을 지나면 모터에 전원이 들어가지 않는 상태(coast)로 바뀐다. • - 모터를 구동시키는 것이 아니라 엔코더 값의 목표치를 설정할 뿐이기 때문에 모터를 구동하기 위해서 motor[모터이름] = 값의 형식을 사용해야 한다.

  6. - PID 속도 제어 - • 서보 모터의 PID(P:비례/I:적분/D:미분)제어 기능을 • 이용하여 오차를 줄여 가장 정확한 속도로 움직이는 • 로봇 • nMotorPIDSpeedCtrl[모터명] = mtrSpeedReg • PID 속도제어를 등록하는 함수로서 모터가 정확한 출 • 력을 할 수 있도록 모터의 출력을 자동으로 조정한다.

  7. - PID 속도 제어 - • PID 제어 • P (proportional : 비례) • 목표 값과의 오차가 발생하는 정도에 따라서 제어하는 것 • On/Off 제어라고도 불리우는 것으로 계속적으로 목표 값을 맞추기 위해서 출력과 정지를 반복 • I(integral : 적분) • 오차 값들을 모아 어느 순간에 일정량의 오차가 누적되면 한 번에 오차를 수정하는 방법 • 기계가 움직이기 시작한 후 어느 정도 시간이 지난 다음 누적된 오차가 일정 수준 이상일 때, 적당한 보정을 가해주는 에러 값 수정 방법 • D(differential :미분) • 일정시간 동안에 발생한 오차의 크기에 따라 그 보정을 다르게 해주는 것 • 같은 시간 동안 오차가 크게 발생하면 보정을 많이 하고 오차가 적으면 적은 만큼 보정 • 각 방법을 모두 혹은 몇 가지를 복합적으로(P, PI, PID 등) 사용

  8. - PID 제어 관찰- • 프로그램을 실행하고 Robot > Debug Windows > NXT Devices 메뉴를 통해 • 로봇의 상태를 관찰 • 원하는 목표 속도가 50일 때 PID 값이 자유자재로 변하는 것으로, 모터 파워 50 • 의 속도를 맞추기 위해 A모터는 46, C 모터는 55의 파워를 주고 있다.

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

  10. - 동기화 함수 설명 - • nSyncedMotors = synchAC • 두 개의 모터를 동기화시키기 위해서 사용한다. • synch[첫 번째모터][두 번째 모터] : 첫번째 모터 출력에 두번째 모터를 동기화 • 시킨다는 것을 의미 • nSyncedTurnRatio = 모터 동기화 비율 • 첫 번째 모터에 따른 두 번째 모터의 동기화 비율을 설정 • 동기화 비율은 -100 ~ +100% 까지입력 가능 • 동기화 비율에 따른 두 번째 모터의 파워 공식 • 동기화 비율이 100인 경우 두 개의 모터가 같은 속도로 회전 • 동기화 비율이 100 보다 작은 경우 로봇은 회전을 한다. 즉 동기화 비율을 조절 • 하여 스윙 턴, 커브 턴등의 다양한 움직임을 표현할 수 있다.

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

  12. - 도전 과제 V- • 초음파센서를 이용 벽 앞 30cm까지 전진한 후 처음 출발위치까지 돌아오기 • 벽 앞에서 출발한다. 이때 벽과의 거리는 1m 이상 떨어져 있어야 함 • 모터 엔코더값을 이용해서 처음 출발한 위치로 돌아와야 함 • 허용오차는 3cm 이내

  13. - Q & A - ???

  14. 감사합니다

More Related