Download presentation
Presentation is loading. Please wait.
1
AI Robot #3 2010년 2월 2일, AI Robot Graduation Project
라창현, 고병권, 조광문, 류재영, 손희라
2
Content 1. Research 2. Scenario 3. Study 4. Progress
3
01 Research
4
이족로봇 물리적 구조 기구부 기구부 설계 관절 발목 및 무릎 발 허벅지와 종아리의 길이가 같도록 (패턴계산 용이)
이족 로봇 관절의 가동범위를 그려서 부품들이 간섭을 주지 않고 가동 범위가 최대가 되도록 로봇이 정지해있을 때 서보모터에 힘이 가해지지 않도록 설계 (전력소비 막기위해)
5
이족로봇 관절의 구동방식 발목 및 무릎 직접 구동 방식 : 서보모터의 힘을 그대로 전달. 구현 용이.
벨트 구동 방식 : 타이밍 벨트로 풀리를 연결하여 구동하는 방식. 제작 까다롭고 설치공간 많이 차지. 기어 구동 방식 : 기어를 사용해 구동. 가까운 거리에서 힘 전달 확실. 하지만 구동장치와 관절이 거리가 먼 경우 구현 힘듦. 발목 및 무릎 발목이 가벼우면 보행 중 다리를 들어올릴 경우 서보 모터가 전력을 적게 소비 이족 로봇의 발목은 보행 중 하중을 가장 많이 받으므로 견고하게 제작
6
이족로봇 발 이족로봇의 보행은 발목을 사용하지 않고 무릎을 굽히고 발바닥을 수평으로 유지하며 걷는다. 이족 로봇의 발바닥은 지면에 견고하게 밀착되어야 하며 이것으로 인해 보행시 동력을 전달할 수 있게 한다. 향후 이족 로봇의 다양한 센서들을 이용한 동적 보행 방법 과 이족 로봇의 자세 제어에 관한 연구가 필요하다고 사료 된다.
7
02 Scenario
8
쓰레기 버리는 로봇 음식물쓰레기와 재활용품
9
쓰레기 버리는 로봇 쓰레기가 꽉 차면 음식물쓰레기는 음식물쓰레기통에, 재활용은 재활용통에 더러운 쓰레기를 로봇이 대신 처리해줌
10
놀이동산 로봇 놀이동산 곳곳에 배치 정해진 구역을 맴돌다가 어린이에게 풍선을 줌
어린이는 사람의 키로 판단함 원거리의 사람과 근거리의 사람의 키는 구분할 수 없음 따라서 얼굴 크기까지 고려하여 원거리 / 근거리를 구별함 어린이에게 직접 다가가거나, 어린이가 다가오면 풍선을 줌 어린이와 함께 사진 찍을 수 있도록 함께 포즈를 취해 줌
11
웨이터 로봇 정해진 코스대로 몇 분마다 한번씩 순찰(?) 손님 테이블에 빈 접시가 보이면 치움 제약사항 해결방안
자신이 가지고 있는 쟁반에 빈 접시를 싣고 처음 위치로 돌아옴 제약사항 손님의 앞 접시와 음식이 담긴 접시와 달라야 함 빈 그릇을 치울지 손님의 동의를 구할 수 있어야 함 손님에게 불편함 없이 빈 접시를 치울 수 있어야 함 해결방안 치워야 할 빈 접시는 테이블의 특정 지역(모서리)에 두면 그 접시만 치우도록 함
12
도서관 로봇 도서관에서 수거함에 있는 책들을 분류 / 정리 층별 또는 종류별로 분류 / 정리
13
03 STUDY
14
Hardware / Robobasic 로봇의 hardware 적인 부분 연결, 조립, 각 부품들의 위치와 역할 이해
15
Hardware / Robobasic Robobasic 의 프로그래밍 문법과 동작원리 연구와 이해 (ex) 전진:
SPEED 11 MOVE G6D,97,82, 120, 120, 78, 102 MOVE G6A,100 ,77, 120, 120, 83, 102 WAIT ETX 9600,49 IF 보행횟수_step >= 보행횟수 AND 보행횟수 <> 0 THEN GOSUB 보행자세1 GOTO main ENDIF 보행횟수_step = 보행횟수_step + 1 ERX 9600,A,전진5_1 GOTO 전진5_1
16
Hardware / Robobasic 기존에 작성된 코딩을 이용하여 총 40개의 움직임을 로봇이 얼마나 완벽하게 수행하는지 확인 모터 값 재설정과 움직임의 변화
17
Camd – 영상처리 부분 문고리 인식 알고리즘 실시간 캠 영상 압축 알고리즘 HIS변환을 통한 색상 인식
2진화 영상의 boundary box 오브젝트 트래킹
18
Camd – 영상처리 부분 실시간 캠 영상 압축 알고리즘 왜 썼을까?
네트워크의 부하로 프레임 속도가 느려지기 때문에 적은 량의 프레 임이 전송된다. 그러나 영상 압축을 하면 더 많은 프레임을 전송받을 수 있다. 단점 압축을 많이 할 수록 노이즈가 많이 생기므로 적절한 압축률로 압축 해야 한다. (압축률 35~80%가 적절하다고 판단하였다.)
19
Camd – 영상처리 부분 HSI변환을 통한 색상 인식 왜 썼을까?
특정한 색상 추출을 위해선 RGB모델에서 HSI모델로 변환해 주어야 한다. HSI는 색상, 채도, 명도를 나타내는 것으로 특정 색상을 추출 해낼 수 있다. 이때 특정한 수식을 이용해 RGB값을 HSI값으로 변환한다. 소스 Camd소스 중 main.c에 보면 변환부분을 볼 수 있다.
20
Camd – 영상처리 부분 2진화 영상의 boundary box 왜 썼을까?
이진화를 통해(물체의 범위에 속하면 검은색, 그렇지 않으면 흰색처 리) 검은 영역 픽셀의 상하좌우 좌표찾아 바운더리 박스를 그려준다. 이 박스의 크기와 위치로 로봇은 행위를 하기 위한 적절한 위치를 결정 할 수 있다. 소스 Camd소스 중 abcd.c를 보면 바운더리체크에서부터 바운더리 박스를 구하기까지의 알고리즘을 볼 수 있다.
21
Camd – 영상처리 부분 오브젝트 트래킹 왜 썼을까?
기준이 되는 이미지와 현재 감지되는 이미지와의 차영상을 구하여 물체의 이동을 감지하는 기능이다. 해당 소스에서는 기준 이미지와 현재 이미지를 그레이스케일로 변환한 후 기준 이미지와 차이를 흰색으로 처리하게 해 주었다. 소스 Camd소스 중 main.c를 보면 이전영상과 차이를 구한 후 압축하여 클라이언트로 전송하는 부분을 볼 수 있다.
22
Camd – 영상처리 부분 To do 캠 설치 및 소스 실행 기존 알고리즘 보다 성능이 좋은 알고리즘 개발
23
Movingd – 움직임, 길 찾기 부분 Movingd란? 로봇의 움직임을 제어하는 주 프로그램 이동 경로 탐색 및 계획
HRI, camd, 모션제어보드와의 통신 위치추청(Localization), 충돌방지. ★ 즉, 위치를 판단하여 계획 및 행동 생성 , 동작 명령하는 역할.
24
Movingd – 움직임, 길 찾기 부분 Path planning ① 대단위 Path Planning 현재 위치와
- Floyd 알고리즘을 이용하여 Area들 간의 최단 경로를 찾는다. - Area들 간의 Plan 생성. (창문열기, 물건 집기 등) 현재 위치와 이동 위치 판단 Plannig Action 생성 해당 Action을 모션제어보드로 전송 최종 움직임 수행 ② 소단위 Path Plannig 각 Area 내부에서는 A* 알고리즘을 이용하여 경로를 생성. 이동단위인 Action을 큐로 생성
25
Movingd – 움직임, 길 찾기 부분 Moving module Main Application class
<App.Idle함수> State Machine : 상태(status)를 가지며 각 상태에 따라 다른 일을 수행. <App.Recv함수> Status 설정 : HRI로부터 수신한 명령에 따라 상태를 설정.
26
04 Progress
27
진행현황 무선랜 설정 로봇부팅 /root/run.sh 파일에 무선랜 설정 명령 포함
insmod /lib/modules rt73.ko iwconfig rausb0 mode managed ifconfig rausb netmask up iwconfig rausb0 essid "airobot" iwconfig rausb0 key route add default gw rausb0 로봇 부팅 후 다른 컴퓨터로 ping을 계속 보내어서 원활하게 통신이 되는지 계속 확인해주는 것이 편리함 로봇부팅 minicom 명령으로 부팅과정 출력 부팅 중 에러 발생시 무한 리부팅
28
진행현황 Ev2440_test 프로그램 로봇접속 >> FTP Server 접속 >> 로봇에서 실행 >> PC에서 실행 임시 FTP server 개방하고 telnet으로 로봇 접속 로봇에서 FTP server로 접속하여 테스트 프로그램을 다운로드 / 실행 HOST PC에서 테스트 프로그램을 실행하여 Cam, Sensor, Serial 테스트 주의사항 로봇에 올라가는 프로그램은 arm-linux-gcc로 생성해야 함 일반 gcc로 컴파일 해도 정상적으로 파일이 생성되기 때문에 주의
29
진행현황 문제점 / 해결방안 24관절 로봇 카메라 문제 HRI 프로그램이 알아 볼 수 없는 여러 가지 버전이 많음
다른 카메라 교체해 보았으나, ev2440_test 프로그램 작동시 “camera init fail” 메시지 출력 됨 보드 문제로 예상되나, 카메라 드라이버를 새로 설치해볼 예정 HRI 프로그램이 알아 볼 수 없는 여러 가지 버전이 많음 같은 프로그램인데 연결조차 되지 않는 버전이 많음 HRI 프로그램으로 로봇을 동작시켜보기 보다는 소스코드를 최대한 분석하여 HRI 프로그램을 본 프로젝트에 맞게 수정하기로 함
30
진행현황 Remember 로봇 충전 시 녹색 LED 켜지면 그 이후로는 계속 꼽아놓더라도 충전되지 않음
로봇 뒤에 베터리 게이지를 확인하거나 30분 간격으로 다시 꼽아줌 로봇으로 접속할 때 시리얼 포트 사용하지 않더라도 전원 키고 telnet으로 접속하면 훨씬 편리함 ps 명령으로 백그라운드에서 실행중인 Daemon을 볼 수 있고 포트번호까지 나와있음 로봇에 올라가는 실행파일은 모두 크로스컴파일러로 생성해야 함 일반 컴파일러로도 정상적으로 컴파일 되기 때문에 주의해야 함
31
향후계획 일주일 동안 코드분석에 전념 시나리오 확정 문제점 해결 당장 코딩에 들어가려면 이미 작성된 코드를 분석하는 것이 중요
Movingd Sensord Camd Robobasic 사용법 익히기 시나리오 확정 문제점 해결 카메라 드라이버 재설치 또는 보드수리
Similar presentations