김경현

KIMGYUNGHYUN . COM

3D프린터 로봇제어를 위한 AI 인공지능

댓글 0

기술연구

2018. 8. 30.

안녕하세요.

 

기술이 공유되지 않으면 미래의 사회는 지금보다 더욱 폐쇄적이고 불평등한 사회가 될 것입니다. 카피레프트(copyleft)는 개인의 지적재산권을 중시하는 기존의 카피라이트(copyright)에 대항해 사회적 공유를 강조하는 정신이자 운동입니다. DIY연구소는 카피레프트(copyleft) 정신과 4차 산업기술의 확산을 위하여 연구한 내용을 무료로 배포하고 있습니다. 오늘은 '3D프린터 로봇제어를 위AI 인공지능' 을 공유

[1] [2] [3]
 

 

 

 

 

 

DIY연구소 김경현 배상 (010 8604 6802)

 
 

[교육내용]

 

☞ 1. 3D프린터 설계제작

☞ 2. 3D프린터 프로그램

☞ 3. 3D프린터 의수제작

☞ 4. Core XY 3D프린터 구동방식과 조립

☞ 5. Prusa i3 3D프린터 조립

☞ 6. Prusa i3 3D프린터 배선

☞ 7. 3D프린터 전기조립 기초

☞ 8. Fun i3 3D프린터 조립

☞ 9. 3D프린터 오픈소스 RepRap

☞ 10. 20만원대 교육용 3D프린터 개발

☞ 11. 3D프린터 전기자전거 개발

☞ 12. 원노즐 듀얼 3D프린터 개발

 

 

 

 

 

 

[

3D프린터 로봇제어를 위한 AI 인공지능 라즈베리파이 연결]

 

☞ 출처 : 

http://cosmosjs.blog.me/221312669747

 

 

 

 

 

 

구글에서 제공하는 공식 버전을 다운로드 설치합니다. 구글 어시스턴트 SDK가 한국어를 지원합니다. 구글 어시스턴트 Service에 대한 설치방법과 자세한 가이드는 아래 링크를 참조 하시기 바랍니다. 전체적인 설치 단계는 아래와 같습니다. 

 

https://developers.google.com/assistant/sdk/guides/service/python/

 

1. SD카드 준비

2. 오디오 설정

3. 구글 클라우드 플랫폼에서 계정과 프로젝트 만들기

4. 액션 콘솔에서 디바이스 모델 등록하기

5. 구글 어시스턴트 서비스 의존성 패키지및 프로젝트 설치

6. Credential 생성

7. 실행

 

구글 어시스턴트는 사용자가 선택해서 설치할 수 있는 두가지 옵션을 제공하고 있다. Google Assistant Library와 Service 이다. 두 가지의 차이점은 아래 표를 참고 하자.

 

 

 

1. SD카드 준비.

 

깨끗하게 포맷을 하고 최신 라즈비안 이미지 파일을 다운로드 받아서 플래싱 한다. 별도의 모니터를 사용하지 않을 것이기 때문에 SSH접속이 가능하도록 루트 디렉토리에 ssh 라는 이름의 빈 파일을 하나 만들어 준다. 이제 라즈베리파이에 장착하고 랜선을 연결하고 전원을 연결하자.

무선랜을 사용할 수 있도록 설정을 해주자.

 

sudo raspi-config 

 

기본적으로 해줘야 할것들을 마친다.

 

sudo chmod 777 /etc/wpa_supplicant/wpa_supplicant.conf

sudo wpa_passphrase "SSID name" password >> /etc/wpa_supplicant/wpa_supplicant.conf

sudo reboot

 

무선랜으로 접속이 가능해 졌다.

 

sudo apt-get install samba samba-common-bin

sudo smbpasswd -a pi

sudo nano /etc/samba/smb.conf

 

[pi] 

comment = Raspberry pi 

path = /home/pi 

valid user = pi 

browseable = yes 

writable = yes 

 

sudo service smbd restart

 

삼바 설치까지 마친다.

 

2. 오디오 설정

 

arecord -l

aplay -l

사운드카드와 마이크가 어쩐 장치로 연결 되어 있는지 확인한다. 

card 0, device 0 

card 1, device 0 을 사용중인것을 확인했다. 어떤 장치를 사용하는냐에 따라 다를 수 있다.

 

alsamixer

sudo alsactl store

 

보륨과 마이크 민감도를 최대로 높여 주고 저장해 준다.

 

nano ~/.asoundrc

 

 

pcm.!default {

  type asym

  capture.pcm "mic"

  playback.pcm "speaker"

}

pcm.mic {

  type plug

  slave {

    pcm "hw:1,0"

  }

}

pcm.speaker {

  type plug

  slave {

    pcm "hw:0,0"

  }

}

asoundrc파일을 만들어 위 내용처럼 넣어 준다. 앞에서 검색한 사운드 장치들 번호대로 넣어 줘야 한다.

테스트 해보자.

speaker-test -t wav

arecord --format=S16_LE --duration=5 --rate=16000 --file-type=raw out.raw

aplay --format=S16_LE --rate=16000 out.raw

 

오디오 설정 완료

 

3. 구글 클라우드 프로젝트 설정

 

https://console.actions.google.com/

 

 

새로운 프로젝트를 만들거나 불러온다. 이미 테스트 했었던 프로젝트가 있어서 불러 오는 것으로 설정했다. 커스텀 액션을 만드는 것은 다음에 해보고 일단 다음 단계로 넘어 가자.

 

4. 디바이스 모델 등록

 

 

액션 콘솔화면의 왼편 하단 메뉴에서 Device registration 메뉴를 클릭하여 디바이스를 등록 해준다. 

 

 

   

항목을 채워 주고 등록한다. 두번째 화면에 나오는 Json 파일은 저장을 해 둔다. 이 파일은 라즈베리파이 pi 홈계정으로 복사 줘야 한다. 위 3번째 단계는 당장 필요하지 않으니 패스 해도 된다.

 

 

Model Id가 중요하다. 나중에 사용해야 하기 때문에 잘 숙지 해 놓는다. 하나 더 해줘야 할것이 있다. 구글 클라우드 플랫폼에 가서 Google Assistant API를 사용가능으로 세팅한다.

 

https://console.developers.google.com

 

<이미 되어 있는 모습>

 

 

아래 링크에 가서 기타 음성 및 오디오 사용등 필요한 항목의 체크박스를 사용가능으로 해준다. 

 

 

5. 어시스턴트 SDK와 샘플코드 설치하기

 

드디어 구글 어시스턴트를 설치해 보자.

 

sudo apt-get update

sudo apt-get install python3-dev python3-venv 

python3 -m venv env

env/bin/python -m pip install --upgrade pip setuptools wheel

source env/bin/activate

 

 

파이썬 관련 의존성 파일들을 설치하고 가상환경까지 들어 간다. 파이썬3을 이용하자. 이제 부터 모든 작업은 가상환경에서 진행된다.

 

python -m pip install --upgrade google-assistant-library

python -m pip install --upgrade google-assistant-sdk[samples]

 

6. Generate credentials

 

python -m pip install --upgrade google-auth-oauthlib[tool]

google-oauthlib-tool --scope https://www.googleapis.com/auth/assistant-sdk-prototype --scope https://www.googleapis.com/auth/gcm   --save --headless --client-secrets /home/pi/credentials.json

 

앞서 다운로드 받은 json 파일의 복사해 놓은 경로를 복사후 /home/pi/credentials.json 자리에 넣어주고 실행한다.

 

 

https://accounts.google.com/... =consent 로 시작되는 부분부터 복사해서 웹브라우저에 넣고 실행하여 구글 계정을 연결하도록 한다. 계정에서 승인버튼 클릭후 마지막에 나오는 인증코드를 위 터미널 화면에 넣어 주고 엔터를 치자. 이렇게 해주면 모든 과정이 끝이 난다.

 

7. 샘플을 실행해 보자.

 

googlesamples-assistant-hotword --project-id Your-dev-project-id --device-model-id Your-model-id

googlesamples-assistant-pushtotalk  --lang ko-KR --device-id Your-dev-project-id --device-model-id Your-model-id

 

 

앞서 숙지해 놓은 다비이스 아이디와 모델 아이디를 붉은 글자로 표시한 Your-dev-project-idYour-model-id해당 부분에 복사해서 넣어 주고 실행 시켜 보자. 옵션을 지정해 주지 않아도 되는것 같다. json 파일에 다 들어 있는것이라서 그걸 불러서 사용하는 것 같기도 하다. 좀 더 알아 볼것.

 

 

여기서는 pushtotalk으로 실행 했기 때문에 키보드 엔터를 치라고 나온다. 엔터 하고 질문하면 어시스턴트가 대답을 한다. 영어로. 기존에 했었던 핫워드로 하는 것을 해보고 싶다면.

 

python -m pip install --upgrade google-assistant-library 

 

먼저 라이브러리를 설치해 주자. 샘플코드는 이미 설치 되어 있다.

 

 

표시처럼 pushtotalk 대신에 hotword라고 수정하고 실행하면 핫워드로 실행되는 구글 어시스턴트와 만날 수 있다. 

 

8. 한국어로 대화하기

 

지금까지라면 별다를게 없다. gRPC 방식인 경우 한국어를 제대로 지원하고 있다. 그래서 한국어로 대화 하도록 실행 시켜 보자. 앞서 시작 단계에서 살펴 봤듯이 핫워드는 불가능하고 엔터 치면서 대화를 해야 한다. 

 

googlesamples-assistant-pushtotalk  --lang ko-KR

 

실행시 lang 옵션을 주고 한국어를 지정해 주면 한국어 구글 어시스턴트로 작동이 된다. 

 

 

음성인식도 자연스럽게 잘되고 대답도 잘한다. 굿! 반갑다 한국어! 그런데 남성 목소리 뿐이다. 목소리 바꾸라고 하면 바꿀려고 노력하고 있고 지금은 목소리가 하나 뿐이라고 한다. 그런데 "어떻게 도와 드려야 할지 모르겠습니다." 라는 답변을 제일 많이 한다.

 

 

개인정보가 필요한 경우 구글 어시스턴트 앱에서 개인정보검색 사용에 체크하라고 한다. 해주자. 그럼 사용자의 이름등을 응답에 사용한다. 구글 어시스턴트 앱은 구글 플레이에서 설치 할 수 있다.

 

[3D프린터 로봇머리 (기계) KIT :  구입]

 

 

 

 

 

 

사업자 정보 표시
| | | 사업자 등록번호 : -- | TEL : -- | 사이버몰의 이용약관 바로가기