학번: 20000253이름: 안숭지1.로봇 축구 시스템 설명과 로봇 시스템1. 로봇 시스템{로봇 축구 시스템을 이루는 요소 중에 하나가 로봇 시스템이다. 로봇 시스템은 마이크로 컨트롤러, 모토구동부, 통신부, 전원부로 이루어져있다.(1) 통신부장치의 종류나 메이커와는 관계없이 적외선을 사용한 데이터 통신을 할 수 있도록 데 이터 통신 방식을 표준화를 하였는데 이를 IrDA(Infrared Data Association) 표준규격이 라 한다. IrDA 표준 규격을 위해 적외선 통신을 구현하는 방법으로는 ASK 방식과 IrDA1.0방식이 있다. ASK 방식을 부반송파 방식이라 하고, IrDA1.0 방식을 베이스밴 드 방식이라 한다.(2) 모터 구동부DC 모터를 제어하는 방법에는 여러 가지가 있지만 여기서는 PWM(Pulse Width Modulation) 방식을 사용한다. 모터에 인가되는 전압을 ON/OFF 시켜서 모터에 인가되 는 평균 전압을 변화시킨다.{V_평균전압 = V_입력 TIMES T_ON OVER T [V]보통 전원을 모터의 양단에 직접 연결하렴 충분한 전류로 모터를 구동할 수 있는데 이 와 같은 원리로 H-브릿지 회로를 만든다. H-브릿지 회로에는 트랜지스터를 스위치로 생각할 수 있다.(3) 전원부(4) 마이크로 컨트롤러(PIC16C73)PIC16C73/73A는 192바이트의 램, 22개의 I/O핀을 가지고 있으며 3개의 timer/counter 와 2개의 Capture/Compare/PWM module이 있다. 그리고 USART(Universal Synchronous Asynchronous Receiver Transmitter)을 위한 serial port 5채널의 8비트 A/D converter가 있다.2. 비전시스템과 GUI 환경에서 로봇 제어1. 비전시스템로봇축구경기를 위해서는 각 로봇의 위치나 방향, 그리고 공의 위치 정보가 필수적이다. 비전 시스템은 물체의 위치 계산에 대한 정밀도와 함께 빠른 처리속도가 매우 중요하다.(1) 컴퓨터 비전(2) 색공간팀색깔을 이용해 상대팀을 구별하며, 로봇의 위치와 방향을 알기 위해 다른 색을 사용한 다. 임의의 한 색은 3개의 원색(Red, Green, Blue) 그리고 3개의 요소(hue, brightness, saturation)로 정의된다. 색을 나타내는 형식은 RGB와 CMY 그리고 YIQ와 YUV가 있 다.(3) 화상처리전체적인 과정은 다음과 같이 요약된다.{1 대상 물체의 색의 각 성분 ( Y, U, V)의 범위 결정 - 다른 색과 혼동이 일어나지 않 는 범위에서 각 색 성분의 범위를 늘인다2 임계값 처리 - 2차원 화상 자료의 각 화소를 조사하여 화소의 위치를 저장한다.3 그룹핑 (라벨링) - 화소들을 그룹별로 구분해서 계산 시간을 단축시킨다.4 크기 필터링 - 잡음으로 인해 생긴 그룹을 제거한다.5 면적 중심법을 이용한 위치 계산 - 각 그룹의 위치를 구한다.6 방향 계산 - 주어진 2진 화상에 대한 최소자승 정합법을 사용하여 물체에 대응되는 점들에 정합하는 직선을 구한다.2. GUI 환경에서의 로봇 제어로봇을 정확히 움직이도록 하기 위해서는 매 순간 로봇 바퀴의 속도를 계산한 후 제어기를 바퀴에 장치하여 바퀴속도가 계산된 값과 같아지도록 조종해야 한다. PC에서의 속도 계산 및 로봇 자체에서의 바퀴 속도 제어 문제를 위해서는 로봇에 대한 정확한 모델링이 필요하다. 바퀴 제어기는 PID나 퍼지 로직을 이용하여 구현된다.3. 로봇 움직임의 기본함수들과 전략구현1. 이동로봇 제어D는 로봇의 양쪽 바퀴사이의 길이, 로봇 중심의 속도를 {V_c, 양쪽 바퀴의 속도를 각각 {V_R, {V_L, 로봇 중심에서 로봇의 앞쪽이 향하는 방향각을 {theta _C라 하자. 전체 좌표계 X-Y 에서 자세 벡터 P와 로봇의 위치를 p라고 하면 P와 p는 다음과 같이 정의된다.{P ~= ~bmatrix{{x_c}#{y_c}#{theta_c}}~,~p~=~bmatrix{{x_c}#{y_c}}로봇 중심에서 선속도와 각속도는 다음과 같이 구해진다.{V_c~ =~ {V_R~ + ~V_L} over2 ,~ omega ~ = ~ {V_R - V_L} overD{V_R ~ = ~ K_d d ~ + ~ K_theta theta_e ~ ,~ V_R ~ = ~ K_d d ~ + ~ K_theta theta_e2. 전략1 개인 전술2 팀 전술3 기본 전술 대형간단히 말하자면 4주 동안의 로봇 축구 수업과 비주얼 C++ 숙제는 힘들지만 재미있 었습니다. 프로그래밍에는 문외한이라(비록 봄학기 때 컴퓨터 개론 수업을 들었어도 -_-;) 비주얼 C++숙제를 처음에 냈을 때 가슴이 철렁 내려앉았습니다. 저걸 도대체 어떻게 하나 하고 걱정을 무지하게 했었죠. 비주얼 C++책을 사서 공부를 해보니 도저 히 해결책이 서지 않아서 휴학하고 있는 친구의 도움도 무지하게 많이 받았습니다. 그 런데 해보니 알고리즘만 복잡하지 프로그램을 만드는 것 자체는 별로 어렵지 않았습니 다. 마우스로 한 곳을 찍으면 원이 그곳으로 움직이는 숙제 역시 원을 그리는 함수를 찾는 것 외에는 별로 어렵지 않았고 마지막 숙제 역시도 그랬던 것 같네요.