제조공정
| × | 1 | ||||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 |
![]() |
|
개요
대부분의 로버 자율 로봇에 필요한 기능 중 하나는 라인 따라가기입니다. 이 프로젝트의 목적은 라인 팔로워 로봇을 만들고 PID 컨트롤러를 재미있게 배우기 시작하는 것입니다.
부품
로봇은 2개의 모터, Rosbot Baseboard 및 5-Channel 센서로 제대로 작동합니다. Rosbot Baseboard에는 2x H-bridge 듀얼 드라이버가 내장되어 있기 때문에 다른 것과 달리 추가 H-bridge 모터 드라이버 또는 다양한 구성 요소를 구입할 필요가 없습니다. 모터를 Rosbot 베이스보드에 연결하기만 하면 Arduino Uno보다 더 많은 전력을 공급할 수 있습니다.
수많은 장착 구멍(4.8mm LEGO Technic)이 있는 멋지고 견고한 섀시는 다른 재미있는 프로젝트에 이 섀시를 재사용할 수 있습니다.
<울>2개의 온보드 듀얼 H 브리지 모터 드라이버가 있는 Arduino UNO 기반 메인보드.
<울>5-채널 적외선 감지기, 더 정확하고 안정적입니다.
1단계:조립
이 로봇은 조립이 매우 쉽고 지침을 따르면 약 15분이 소요됩니다.
먼저 모터를 섀시 측면에 부착하고 고무 바퀴를 연결하기만 하면 됩니다.
섀시 전면에 5채널 IR 센서를 장착합니다.
Rosbot 베이스보드를 섀시에 부착하면 로봇이 배선될 준비가 된 것입니다.
2단계:비틀기
다음은 5-채널 IR 센서에 대한 연결입니다.
<울>DC 모터는 간단히 A+A- 핀과 B+B- 핀으로 이동합니다.
코딩
코드에는 가능한 각 센서 어레이 출력을 나타내는 상태 머신이 있습니다. 로봇은 센서 어레이 출력에 따라 특정 방향으로 이동합니다.
void stateMachine(int a) { switch (a) { case B00000:outlineCnt++; 부서지다; 사례 B11111:outlineCnt++; 부서지다; 사례 B00010:사례 B00110:outlineCnt =0; 픽셀.setPixelColor(2, 픽셀.색상(0, 50, 0)); 편향 =1; 부서지다; 사례 B00001:사례 B00011:outlineCnt =0; 픽셀.setPixelColor(2, 픽셀.색상(0, 200, 0)); 편향 =2; 부서지다; 사례 B00100:outlineCnt =0; 픽셀.setPixelColor(2, 픽셀.색상(0, 0, 20)); 편향 =0; 부서지다; 사례 B01000:사례 B01100:outlineCnt =0; 픽셀.setPixelColor(2, 픽셀.색상(50, 0, 0)); 바이어스 =-1; 부서지다; 케이스 B10000:케이스 B11000:outlineCnt =0; 픽셀.setPixelColor(2, 픽셀.색상(200, 0, 0)); 바이어스 =-2; 부서지다; 기본값:Serial.println(a,BIN); 개요Cnt++; 부서지다; }코드>
우리는 이미 오차, 비례항, 적분항, 미분항의 값을 설정했습니다.
float Kp =25;float Ki =0.15;float Kd =1200;float error, errorLast, erroInte;float calcPid(float 입력) { float errorDiff; 플로트 출력; 오류 =오류 * 0.7 + 입력 * 0.3; // 필터 //오류 =입력; errorDiff =오류 - errorLast; erroInte =제약(erroInte + 오류, -50, 50); 출력 =Kp * 오류 + Ki * erroInte + Kd * errorDiff; Serial.print(오류); Serial.print(' '); Serial.print(erroInte); Serial.print(' '); Serial.print(errorDiff); Serial.print(' '); Serial.println(출력); errorLast =오류; 반환 출력;
값을 조작하여 로봇에 가장 적합한 것을 찾으십시오.
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">#include#define S_NULL 0#define S_ONTRACE 1Adafruit_NeoPixel 픽셀 =Adafruit_NeoPixel(4, 4, NEO_GRB + NEO_KHvoid doDcSpe); spdL, int spdR) { spdR =-spdR; if (spdL <0) { analogWrite(5, 0); analogWrite(6, -spdL); } else { analogWrite(5, spdL); 아날로그 쓰기(6, 0); } if (spdR <0) { analogWrite(9, 0); analogWrite(10, -spdR); } else { analogWrite(9, spdR); 아날로그 쓰기(10, 0); }}int bias =0;int outlineCnt =0;void stateMachine(int a) { switch (a) { case B00000:outlineCnt++; 부서지다; 사례 B11111:outlineCnt++; 부서지다; 사례 B00010:사례 B00110:outlineCnt =0; 픽셀.setPixelColor(2, 픽셀.색상(0, 50, 0)); 편향 =1; 부서지다; 사례 B00001:사례 B00011:outlineCnt =0; 픽셀.setPixelColor(2, 픽셀.색상(0, 200, 0)); 편향 =2; 부서지다; 사례 B00100:outlineCnt =0; 픽셀.setPixelColor(2, 픽셀.색상(0, 0, 20)); 편향 =0; 부서지다; 사례 B01000:사례 B01100:outlineCnt =0; 픽셀.setPixelColor(2, 픽셀.색상(50, 0, 0)); 바이어스 =-1; 부서지다; 케이스 B10000:케이스 B11000:outlineCnt =0; 픽셀.setPixelColor(2, 픽셀.색상(200, 0, 0)); 바이어스 =-2; 부서지다; 기본값:Serial.println(a,BIN); 개요Cnt++; 부서지다; } 픽셀.setPixelColor(0, 픽셀.색상(outlineCnt * 10, 0, 0)); if (outlineCnt> 10) { doDcSpeed(0,0); } else { float ff =150; float ctrl =calcPid(편향); doDcSpeed(ff-ctrl,ff+ctrl); }pixels.show();}float Kp =25;float Ki =0.15;float Kd =1200;float 오류, errorLast, erroInte;float calcPid(float 입력) { float errorDiff; 플로트 출력; 오류 =오류 * 0.7 + 입력 * 0.3; // 필터 //오류 =입력; errorDiff =오류 - errorLast; erroInte =제약(erroInte + 오류, -50, 50); 출력 =Kp * 오류 + Ki * erroInte + Kd * errorDiff; Serial.print(오류); Serial.print(' '); Serial.print(erroInte); Serial.print(' '); Serial.print(errorDiff); Serial.print(' '); Serial.println(출력); errorLast =오류; 반환 출력;}int echoTrace() { int ret =0; 정수 a[5]; for (int i =0; i <5; i++) { a[i] =constrain((1025 - analogRead(A0 + i)) / 10 - 4, 0, 20); if (a[i]> 2) ret +=(0x1 < LinefollowRobot
https://github.com/KittenBot/LinefollowRobot
제조공정
필름 테크 라인 5 배경위스콘신주 스탠리에 있는 회사인 Film Tech는 오하이오주에 있는 한 회사로부터 중고 3층 취입 필름 라인을 구입했습니다. 기계는 2015년 봄에 분해되어 시설로 옮겨졌습니다. Film Tech는 원래 상태의 기계에 대한 문서의 누락으로 인해 라인에서 완전한 제어 업그레이드를 완료할 것을 요청했습니다. 프로젝트의 범위는 압출기 및 다이의 온도 제어 업그레이드, 새로운 드라이브 및 모터로 라인의 웹 처리 업데이트, 라인 공정 제어를 위한 새로운 작업자 스테이션 제공에 중점을 두었습니다. 이러한 항목과 함께
자동차, 의료, 항공 우주 및 일반 산업을 위한 맞춤형 기계의 선두 제조업체인 DSC(Delta Sigma Corporation)는 로봇 공급업체가 필요했을 때 KUKA를 선택했습니다. DSC와 KUKA의 파트너십을 통해 KUKA의 모션 컨트롤 기술 플랫폼이 DSC의 맞춤형 6축 갠트리 디스펜싱 시스템의 제어 아키텍처가 되었습니다. KUKA의 Motion Control 기술이 선택된 이유는 배우고 프로그래밍하기 쉽고 작동하기 쉽기 때문입니다. 6축 갠트리 디스펜싱 시스템은 갠트리 로봇에 부착된 KUKA KR 16 로봇을 사용합니