12관절 6족로봇
페이지 정보
작성자 로보맨 댓글 0건 조회 12,140회 작성일 09-06-28 07:16본문
111111111111111111111111111111본제작기는 (주)미니로봇의 컨트롤보드인 MR-C2000을 사용한 소형 12관절 6족로봇 제작에 관한 글을 담은 제작기입니다. 자료를 제공해 주신 (주)미니로봇 이연태 팀장님께 감사드린다.
1. 제작목표
이번에 제작할 12관절 6족 로봇은 12개의 서보 모터를 사용한 다리 6개의 구조를 갖는 보행 로봇으로, 6개의 다리로 앞으로, 뒤로, 왼쪽으로, 오른쪽으로 원하는 동작을 하기 위해서는 12개의 서보 모터를 모두 제어할 수 있어야 한다.
12관절 6족 로봇은 12개의 서보 모터를 제어해야 하기 때문에 미니로봇 컨트롤러 MR-C2000 과 함께 12서보 모터 제어 컨트롤러인 MR-RCSV12 모듈을 사용한다. 12관절 6족 로봇은 (넘어짐이 거의 없는) 가장 안정된 구조의 보행 로봇이다. 여기에서 6족 로봇을 조립하는 방법에 대해서 공부하고, 이를 응용한 4족, 5족 로봇 등도 스스로 조립하고 동작시켜 보자.
2. 준비물
12관절 6족 로봇을 조립하기 위해 다음과 같은 부품을 준비한다.
주) ‘*’ MR-R612B 모델에만 포함됩니다. MR-R612A 모델의 경우는 포함되지 않습니다.
3. 로봇 조립하기
① 6족 로봇의 다리를 조립한다. 6개의 다리가 거의 같은 모양이므로, 6개 조립하여 둔다.
주의 : 이하 설명부분 중 캡너트가 사용된 부분은 모두 나이론 너트로 대체 하세요.
▲ 6족 로봇의 왼쪽 다리를 위 그림 모양으로 3개 조립한다.
▲ 블럭과 블럭 들간의 연결은 7mm 볼트와 캡너트를 사용하여 자유동작 체결구조가 되도록 연결한다.
▲ 밑에 조립한 서보 모터는 ⊔ 혼과 -자 혼을 왼쪽 그림과 같이 고정나사로 조인다.
▲ MRB1-16을 롱로우즈로 잡고 휜다
▲ 6족 로봇의 오른쪽 다리를 위 그림 모양으로 3개 조립한다. 왼쪽 다리와는 대칭구조로 조립되어 있다.
② MRB2-25 블럭 12개를 사용하여 아래와 같은 몸체를 2개(위/아래) 조립한다.
▲ MRB2-25 간의 블럭연결은 5mm볼트를 드라이버로 고정한다. 이때, 블록의 꺽어진 부분은 너트 없이 조일 수 있다.
6개의 다리를 ②에서 조립한 아래 몸체 블럭으로 조립하여 로봇의 모양을 구성한다. (몸체를 뒤집어 조립한 모습)
▲ 몸체의 MRB2-25 블럭과 다리의 MRB4-41 블럭은 7mm 볼트와 캡너트를 사용하여 자유동작 체결구조로 조립한다.
④ 6족 로봇의 위에 몸체로 조립한 미니블럭을 얹어 고정나사로 조립 연결한다.
▲ 각 다리의 위부분 서보모터에 혼을 끼우고, 블럭을 위 그림처럼 맞춘 후, 고정나사로 단단히 조인다.
⑤ 6족 로봇을 동작시킬 미니로봇컨트롤러와 12개의 서보모터 제어를 담당할 “12서보 제어 컨트롤러(MR-RCSV12)"를 조립한다.
▲ 확장보드 MR-SV2000D에 서포트와 볼트를 이용하여 미니로봇 컨트롤러 MR-C2000과 12서보 제어 컨트롤러 MR-RCSV12를 그림과 같이 장착한다. MR-RCSV12의 커넥터를 미니로봇 컨트롤러의 6번 포트와 연결한다. 자세한 설명은 뒤에 “MR-RCSV12 사용하기”를 참고한다.
⑥ 12관절 6족 로봇의 위에 밧데리 케이스와 ⑤에서 조립한 제어장치를 부착한다.
▲ MRB1-06 블럭에 15mm 서포트를 위그림과 같이 볼트로 조인다.
▲ 위에서 조립한 미니블럭을 오른쪽 그림과 같이 로봇의 앞쪽 부분에 볼트와 너트를 이용해서 고정한다.
▲ 로봇의 윗면 가운데 부분에 서포트를 볼트로 고정하고 그 위에 제어장치를 고정한다.
▲ 서포트에 밧데리 케이스의 PCB를 볼트로 고정한다.
▲ 밧데리 케이스의 전원 커넥터를 확장보드의 전원 단자에 끼우면 완성된다.
4. 영점설정과 포트연결
12관절 6족 로봇의 각 다리에 사용되는 수직 동작 서보 모터 6개는 모두 아래 그림과 같이 동작범위를 갖도록 한다. 동작범위가 맞지 않으면 서보 혼을 다시 빼서 동작범위를 맞추고, 로보베이직의 “영점설정”을 통해 정확한 기준점을 설정한다.
아래에 표시되어 있는 번호대로 12서보 제어 컨트롤러인 MR-RCSV12 확장 보드인 MR-SV2000D 연결 포트에 서보 연결선을 연결한다.
5. 12서보 제어 컨트롤러 MR-RCSV12 사용하기
서보 모터를 이용한 로봇(또는 시스템)은 별도의 모터 동작 제어 시스템이 필요하며, 앞에서는 미니로봇 컨트롤러 MR-C2000 한 개를 사용하였다. 그러나, 만약 미니로봇 컨트롤러가 제어할 수 있는 최대 서보 모터 수인 6개 이상의 로봇을 제어하고자 할 때는 미니로봇 컨트롤러 2개를 연결하여 사용하거나, 12관절 6족 로봇에서처럼 별도의 12서보 제어 컨트롤러인 MR-RCSV12를 미니로봇 컨트롤러와 연결하여 사용하면 된다. 여기에서는 미니로봇 컨트롤러와 12서보 제어 컨트롤러의 연결과 사용방법에 대해서 알아보도록 하겠다.
① MR-RCSV12 의 구조
MR-RCSV12는 아래 그림과 같이 모듈 타입으로 되어 있으며, RS-232를 위한 통신 커넥터와 16개의 핀으로 구성되어 있다. 16개의 핀은 우측에서 좌측으로 0번부터 15번까지 번호가 붙으며, 각 핀에 해당하는 기능은 다음 표와 같다.
② 미니로봇 컨트롤러와 연결
미니로봇 컨트롤러(MR-C2000)를 사용하여 MR-RCSV12 모듈을 연결할 때는 6번 포트(7번째) 에 모듈 커넥터을 서로 연결한다. 이제, 미니로봇 컨트롤러를 사용하여 자체 6개의 서보 모터와 MR-RCSV12를 통한 12개의 서보 모터를 한꺼번에 제어할 수 있게 된다.
③ MR-RCSV12의 신호규약
MR-RCSV12 모듈은 외부로부터 RS-232방식의 연결을 이용하여 서보 모터의 제어 명령어를 수신하게 된다. 미니로봇 컨트롤러 MR-C2000에 연결할 때는 별도의 설정없이 6번 포트인 미니버스(MINI BUS) 단자에 연결하면 된다. 미니로봇 컨트롤러를 이용하여 MR-RCSV12에 연결된 서보 모터를 제어할 때는 아래와 같은 명령어로 제어하게 된다.
④ 로보베이직에서 제어하는 방법
미니로봇 컨트롤러를 연결하였을 때는 로보베이직을 이용하여 프로그램 하게되며, 다음과 같이 미니출력(MINIOUT) 명령어를 사용하여 MR-RCSV12와 연결된 서보 모터를 제어하게 된다.
예 1) MR-RCSV12 모듈의 서보 모터 동작 속도를 3으로 조절
미니출력 0, 3
예 2) 1번 서보 모터를 100 위치로 동작
미니출력 1, 100
예 3) 1번 서보 모터 = 70, 2번 서보 모터는 120, 7번 서보 모터는 60의 위치로 동작
미니출력 1, 70, 2, 120, 7, 70
⑤ 확장보드 MR-SV2000D 의 사용
12서보 제어 컨트롤러인 MR-RCSV12는 모듈형이기 때문에 서보 모터 포트에 바로 서보 모터를 연결할 수 있는 구조가 아니다. 그러므로, 서보 모터를 연결할 때는 확장보드인 MR-SV2000D를 사용하여야 하며, 이 보드를 이용하여 미니로봇 컨트롤러와도 연결한다.
▲ MR-RCSV12 컨트롤러의 확장보드인 MR-SV2000D
▲ 5mm 또는 10mm 서포트와 5mm 볼트를 준비한다.
▲ 확장 보드에 서포트와 볼트를 고정한다.
6. 12관절 6족 로봇의 움직임을 살펴보자.
12관절 6족 로봇이 동작하기 위해서는 12개의 서보 모터를 움직여야 하기 때문에 쉬운 동작은 아니다. 거미/개미로봇은 엄밀히 말해 3관절 6족 로봇이라고 볼 수 있으며, 그 걷는 행동이 서로 거의 같으므로, 참고해서 보기 바란다.
▲ 12관절 6족 로봇의 정지 자세 (모든 서보 모터가 영점에 맞춰진 상태)
▲ 12관절 6족 로봇이 걷기 위해서 각각의 다리가 움직이는 모습을 위에서 본 모양
▲ 12관절 6족 로봇의 다리를 전후로 걷기 위해 가운데 다리는 좌우로 무게 중심을 들어주는 역할을 한다.
7. 로보베이직으로 움직여보자.
컴퓨터에서 로보베이직을 실행하고, 편집화면에 아래와 같이 키보드를 이용하여 프로그램을 입력한 후, “다운로드” 버튼을 눌러 미니로봇컨트롤러에 프로그램을 다운로드하여 실행하여 보자.
'**********************************
' prog8-8.bas
' 12관절 6족 로봇 동작 프로그램
‘ 작성 : (주)미니로봇 개발실
'**********************************
선언 카운터 는 바이트 '반복루틴을 위한 변수 선언
'기본 상수 정의
상수 모터속도= 8 'RCSV12 서보속도를 설정()
상수 모터지연= 50 'RCSV12 서보모터지연 시간을 위한 설정
'동작에 대한 위치값을 미리 상수로 정의
상수 오전진= 120 '로봇 뒤에서 본 오른쪽 다리 전진
상수 오후진= 80 '로봇 뒤에서 본 오른쪽 다리 후진
상수 오올림= 130 '로봇 뒤에서 본 오른쪽 다리 올림
상수 오내림= 70 '로봇 뒤에서 본 오른쪽 다리 내림
상수 왼전진= 80 '로봇 뒤에서 본 왼쪽 다리 전진
상수 왼후진= 120 '로봇 뒤에서 본 왼쪽 다리 120
상수 왼올림= 70 '로봇 뒤에서 본 왼쪽 다리 올림
상수 왼내림= 130 '로봇 뒤에서 본 왼쪽 다리 내림
'기본 자세
미니출력 0, 모터속도 'RCSV12 서보 모터속도 설정
미니출력 1,100,2,100,3,100,4,100,5,100,6,100,7,100,8,100,9,100,10,100,11,100,12,100
'모든서보모터 중립값
지연 200 '동작시작 전 잠시 시간 지연
메인:
반복 카운터 = 1 부터 5 ‘5번 전진한다.
호출 전진
다음 카운터
반복 카운터 = 1 부터 5 ‘5번 후진한다.
호출 후진
다음 카운터
반복 카운터 = 1 부터 5 ‘5번 좌회전한다.
호출 좌회전
다음 카운터
반복 카운터 = 1 부터 5 ‘5번 우회전한다.
호출 우회전
다음 카운터
가기 메인 ‘다시 처음으로 가서 반복한다.
'시간지연 함수
RCSV12지연:
지연 모터지연
복귀
'로봇 동작함수
전진:
미니출력 1,왼내림,3,왼올림,5,왼내림,7,오올림,9,오내림,11,오올림
호출 RCSV12지연
미니출력 2,왼후진,4,왼전진,6,왼후진,8,오전진,10,오후진,12,오전진
호출 RCSV12지연
미니출력 1,왼올림,3,왼내림,5,왼올림,7,오내림,9,오올림,11,오내림
호출 RCSV12지연
미니출력 2,왼전진,4,왼후진,6,왼전진,8,오후진,10,오전진,12,오후진
호출 RCSV12지연
복귀
후진:
미니출력 1,왼내림,3,왼올림,5,왼내림,7,오올림,9,오내림,11,오올림
호출 RCSV12지연
미니출력 2,왼전진,4,왼후진,6,왼전진,8,오후진,10,오전진,12,오후진
호출 RCSV12지연
미니출력 1,왼올림,3,왼내림,5,왼올림,7,오내림,9,오올림,11,오내림
호출 RCSV12지연
미니출력 2,왼후진,4,왼전진,6,왼후진,8,오전진,10,오후진,12,오전진
호출 RCSV12지연
복귀
우회전:
미니출력 1,왼내림,3,왼올림,5,왼내림,7,오올림,9,오내림,11,오올림
호출 RCSV12지연
미니출력 2,왼후진,4,왼전진,6,왼후진,8,오후진,10,오전진,12,오후진
호출 RCSV12지연
미니출력 1,왼올림,3,왼내림,5,왼올림,7,오내림,9,오올림,11,오내림
호출 RCSV12지연
미니출력 2,왼전진,4,왼후진,6,왼전진,8,오전진,10,오후진,12,오전진
호출 RCSV12지연
복귀
좌회전:
미니출력 1,왼올림,3,왼내림,5,왼올림,7,오내림,9,오올림,11,오내림
호출 RCSV12지연
미니출력 2,왼후진,4,왼전진,6,왼후진,8,오후진,10,오전진,12,오후진
호출 RCSV12지연
미니출력 1,왼내림,3,왼올림,5,왼내림,7,오올림,9,오내림,11,오올림
호출 RCSV12지연
미니출력 2,왼전진,4,왼후진,6,왼전진,8,오전진,10,오후진,12,오전진
호출 RCSV12지연
복귀
프로그램이 실행되면 드디어 12관절 6족 로봇이 움직이게 된다. 12관절 6족 로봇은 12개의 서보 모터가 사용된 만큼 움직이는 방법도 여러 가지가 있다. 즉, 전진하기 위해 위 프로그램의 내용대로 하여도 되고, 그렇지 않고 다른 방법으로도 로봇을 전진시킬 수 있다. 각자 12관절 6족 로봇의 동작 프로그램에 대해서 연구해 보고, 다양한 동작을 구사해 보자.
제공 : 교육용 로봇 전문 기업 (주)미니로봇
[이 게시물은 로보맨님에 의해 2013-09-14 23:18:53 묻고답하기에서 이동 됨] [이 게시물은 로보맨님에 의해 2013-09-14 23:41:27 리뷰에서 복사 됨]
댓글목록
등록된 댓글이 없습니다.