목표
라즈베리파이로 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 설치 시도" 부분 부터 읽고 따라하면 된다.
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 로부터 아날로그 값을 하나 받아서, 디지털신호로 변환하여, 라즈베리파이로 전송하는 기능을 수행하도록 회로를 만들었다.
위 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 |