기술

라즈베리파이로 VR장갑 만들기

기술 공간 2021. 12. 22. 00:50

목표

라즈베리파이로 VR 장갑을 만들고, 이 VR장갑을 끼고, 손가락을 움직여서, ROS gazebo 시뮬레이션 안에 있는 로봇 손가락을 움직여본다.

(노트북에 ubuntu16.04가 설치되어 있다는 것을 전제로 한다.)

(노트북 ubuntu16.04에 ROS kinetic 이 설치되어 있다는 것을 전제로 한다.)

재료

<하드웨어>

마이크로SD카드 + 마이크로SD카드용 USB 동글

라즈베리파이 4 x 1개

MCP3008 x 1개

RV1601-25SP-B10K 가변저항(rotary potentiometer) x 5

알루미늄 앵글(0.5T 18mm x 18mm)

알루미늄 캔

 

<소프트웨어 (OS,패키지,코드 등)>Ubuntu 20.04ROS noeticangle_publisher.pycontrol_hand.py

방법

0. 라즈베리파이 단자 연결하기

전원 단자를 연결하는 모습이다.

 

모니터용 hdmi 단자 연결하는 모습이다.

 

모니터용 hdmi 선의 반대편 단자의 모습이다. 이건 모니터에 연결한다.

 

무선 마우스용 usb를 연결한 모습이다.

키보드 usb 를 연결한 모습이다.

 

 

1. 라즈베리파이4 에 Ubuntu20.04 설치 + Ubuntu20.04 에 ROS noetic 설치

아래 블로그 글에서 "시도3. ubuntu20.04 설치된  라즈베리파이4에 ROS noetic 설치 시도" 부분 부터 읽고 따라하면 된다.

https://leonam.tistory.com/89

 

라즈베리파이4 에 ROS 설치하기

시도1. 라즈비안 설치된 라즈베리파이4에 ROS kinetic 설치 시도 일단 시간이 없으므로, 이 링크 참고 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=rmlee&logNo=221460156608 중간에..

leonam.tistory.com

 

2. master URI 설정

<라즈베리파이>

라즈베리파이의 ubuntu 20.04에서 터미널 창을 열고,

gedit ~/.bashrc

위 명령어를 입력하면, 다음과 같이 .bashrc 파일이 열린다.

여기 코드에서 맨 아랫쪽으로 이동한다.

맨 아랫쪽에 다음 코드를 붙여넣는다.(바로 위 사진은 이미 코드를 붙여넣은 모습이다.)

source /opt/ros/noetic/setup.bash
source ~/catkin_ws/devel/setup.bash

# export ROS_MASTER_URI=http://localhost:11311
# export ROS_HOSTNAME=localhost

export ROS_MASTER_URI=http://10.42.0.50:11311
export ROS_HOSTNAME=10.42.0.1

 

 

<노트북>

노트북의 ubuntu16.04에서 터미널 창을 열고,

gedit ~/.bashrc

위 명령어를 입력하면, 다음과 같이 .bashrc 파일이 열린다.

여기 코드에서 맨 아랫쪽으로 이동한다.

맨 아랫쪽에 다음 코드를 붙여넣는다.(바로 위 사진은 이미 코드를 붙여넣은 모습이다.)

source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash

#export ROS_MASTER_URI=http://localhost:11311
#export ROS_HOSTNAME=localhost
export ROS_MASTER_URI=http://10.42.0.50:11311
export ROS_HOSTNAME=10.42.0.50

 

 

 

 

 

3. 라즈베리파이 ubuntu 와 노트북 ubuntu 의 네트워크 연결

<라즈베리파이>

 

우선, 라즈베리파이 ubuntu20.04 바탕화면에서 맨 오른쪽 위에 네트워크 아이콘을 클릭한다. 거기서, 아래 사진에 나온 것과 같이 톱니바퀴 모양의 "Settings" 를 클릭한다.

그러면, 아래와 같은 창이 나온다.

여기서, 아래 화면과 같이, 창 왼쪽의 "Network"를 클릭한다.

그 다음, 아래 화면과 같이, 창 왼쪽의 "Wi-Fi"를 클릭한다.

그런 다음, 창의 오른쪽 위쪽의 점 3개 모양의 아이콘을 클릭하면, 아래 사진과 같이 몇가지 옵션들이 나온다. 여기서 "Turn On Wi-Fi Hotspot..." 을 클릭한다.

그러면, 아래 사진과 같이, 새로운 hotspot 을 만들수 있게 된다. 이때 Network Name 과 Password를 원하는 대로 입력해준다. (이때 지어준 Network Name 과 Password를 잘 기억해둔다. ) 그리고 "Turn On" 을 클릭한다. 그러면 이제 라즈베리파이에서 hotspot을 생성하게 되었다. 이제 노트북을 설정하러 가보자.

 

<노트북>

노트북 ubuntu 바탕화면에서 오른쪽 맨위의 와이파이 아이콘이나 위아래화살표 모양의 네트워크 통신 아이콘을 클릭한다. 클릭하면 아래 사진과 같이 여러 wifi 네트워크들이 나타난다. 여기서 지금 체크되어있는, "Enable Wi-Fi"를 클릭하여, 네트워크를 끈다.

그러면, 아래 사진과 같이, Disconnected 라는 메시지가 나온다.

이제 다시, 바탕화면의 오른쪽 맨 위의  위아래화살표 모양의 네트워크 통신 아이콘을 클릭한다. 그러면, 아래 사진과 같이, "Enable Wi-Fi"이 보이게 된다. 여기서 "Enable Wi-Fi" 를 클릭한다.

그러면, 아래 사진과 같이, 다시 네트워크들의 목록이 나타난다. 이제 여기서 아까 라즈베리파이에서 hotspot 을 켤때, 지어 주었던 hotspot 의 Network Name 을 찾고, 그 네트워크 이름을 클릭한다. 그 다음, 아까 지어주었던 password를 입력한다.

이걸로 이제 라즈베리파이와 노트북의 네트워크 연결은 끝났다. 이제 노트북이나 라즈베리파이 중 어느 한쪽에서 ROS topic을 publish 하면, 다른쪽에서 그 topic을 똑같이 받을 수 있다.

 

-----------------------이어서 ----------------------------

4. 라즈베리파이에 GPIO 핀 연결 및 회로 제작

(라즈베리파이 potentiometer 관련된 다음 동영상을 참고하여 회로를 제작했다 : https://www.youtube.com/watch?v=Thuw6l4FoWw)

 

 

 

아래 3개의 사진은 potentiometer 로부터 아날로그 값을 하나 받아서, 디지털신호로 변환하여, 라즈베리파이로 전송하는 기능을 수행하도록 회로를 만들었다.

 

MCP3008 핀 번호
MCP3008 과 라즈베리파이의 단자 연결표
MCP3008 과 라즈베리파이의 단자 연결

위 3개의 사진에선, 1개의 potentiometer 의 아날로그 센서값을 받기 위해서, MCP3008의 CH0(1번PIN) 만 사용하였는데, 이 프로젝트에서는 총 5개의 potentiometer 를 사용하기 위해서, MCP3008의 CH1(2번PIN), CH2(3번PIN), CH3(4번PIN), CH4(5번PIN) 도 사용하였다.

 

 

 

 

5. 장갑 제작

 

6. 노트북 ubuntu16.04에, 로봇 손가락 gazebo 시뮬레이션을 위한 환경 세팅

(노트북에 ubuntu16.04가 설치되어 있다는 것을 전제로 한다.)

(노트북 ubuntu16.04에 ROS kinetic 이 설치되어 있다는 것을 전제로 한다.)

 

 

 

7. ROS 노드파일과 패키지 구성

 

 

'기술' 카테고리의 다른 글

import 관련  (0) 2022.02.03
딥러닝 관련 유용한 사이트  (0) 2022.01.16
ssh 접속 방법  (0) 2021.12.11
라즈베리파이4 에 ROS 설치하기  (0) 2021.12.09
라즈베리파이4에 라즈비안 설치방법  (0) 2021.12.09