728x90
- 터미널을 통한 여러 프로그램 설치와 실행
- Shell : 명령어 처리기로써, OS 상에서 사용자가 입력한 명령을 읽고 해석하여 대신 실행시키는, 사용자와 커널 사이의 매개체 역할을 하는 프로그램으로써 사용자가 커널에 직접 명령을 내릴 수 있게 함
bash, sh, csh, ksh등의 종류가 있다
- sh(Bourne Shell) : shell의 한 종류로 초기의 unix shell로 태어났다는 의미 (프롬프트 : $)
- Prompt : 사용자의 입력을 받아들일 준비가 됐음을 나타내는 것
- bash(Bourne Again Shell)는 shell의 한 종류. 가장 대표적으로 사용 (프롬프트 : #)
- shell script : shell을 통해 컴퓨터에 시킬 명령을 텍스트 형식으로 저장하여 한줄씩 순차적으로 읽어 실행되도록 작성된 프로그램
- script : interpreter방식으로 동작하는, compile되지 않는 프로그램
7/29
$ sudo apt install net-tools
- ifconfig 사용을 위해 net-tools 패키지 설치
- apt는 Advanced Package Tool의 약자로써
- apt-get은 apt에 비해 더 많은 옵션들을 가지고 있고 안정적이다
- apt에서는 사용자의 편리를 위해 자주 사용하는 기능들을 추출함. 사용시 하단에 진행바가 표시됨
$ ifconfig
- ifconfig는 interface configuration(네트워크 인터페이스 구성)의 약자로 네트워크 인터페이스 관련 정보를 조회 및 수정할 수 있는 명령어
$ apt-get install gedit // gedit 설치
$ gedit ~/.bashrc
- gedit을 활용한 bashrc파일 수정
- bashrc파일은 bash를 사용할 때 참고할 사항을 정의해놓은 파일로써, bash가 실행될 때 마다, 즉 새로운 terminal 창이 열릴 때 마다 수행되는 shell script임
- '~' 은 사용자의 home directory를 의미
- 또한 프롬프트 옆에 '~'표시가 있으면 이는 현재 사용자가 자신의 home directory에 있음을 알림
- '~/' 은 현재 사용자의 home folder를 의미 ex) User name이 'LIM'인 경우 /home/LIM
- CTRL + O, CTRL + X
- Master_URI : roscore를 실행시킬 컴퓨터의 주소
- ROS_HOSTNAME : 현재 사용중인 컴퓨터의 주소
$ source ~/.bashrc
- 수정 후 변경사항 저장
- bashrc 파일 수정 후 터미널을 다시 열어야 변경사항이 적용됨
- 대신 script 파일을 수정한 후에 변경사항을 바로 적용시키는 source명령어를 사용
$ roscore
- roscore는 ROS의 기본 실행 명령으로써 패키지에서 하나의 node를 실행하는데 사용함
- Node란 ROS에서 실행되는 최소 단위의 프로세스를 의미
- 각 node들은 변수의 형태를 가지는 message를 통해 다른 node들과 데이터를 주고 받음
$ roslaunch turtlebot3_bringup turtlebot3_robot.launch
- 터틀봇3에서 기본 패키지 실행
- roslaunch는 여러 nodes를 실행하고 실행 옵션을 결정함
- turtlebot3_bringup은 turtlebot3의 기본 기능을 시작하기 위한 roslaunch scripts를 제공
- 위 과정에서 패키지가 실행되지 않는 오류 발생
7/30
1) 노트북 설정
$ sudo apt-get install ros-melodic-joy ros-melodic-teleop-twist-joy \
ros-melodic-teleop-twist-keyboard ros-melodic-laser-proc \
ros-melodic-rgbd-launch ros-melodic-depthimage-to-laserscan \
ros-melodic-rosserial-arduino ros-melodic-rosserial-python \
ros-melodic-rosserial-server ros-melodic-rosserial-client \
ros-melodic-rosserial-msgs ros-melodic-amcl ros-melodic-map-server \
ros-melodic-move-base ros-melodic-urdf ros-melodic-xacro \
ros-melodic-compressed-image-transport ros-melodic-rqt-image-view \
ros-melodic-gmapping ros-melodic-navigation ros-melodic-interactive-markers
- 의존 패키지 설치
$ source /opt/ros/melodic/setup.bash
$ sudo apt-get install ros-melodic-turtlebot3-msgs
$ sudo apt-get install ros-melodic-turtlebot3
- 터틀봇3 패키지 설치
$ echo "export TURTLEBOT3_MODEL=waffle_pi" >> ~/.bashrc
- 터틀봇 모델 설정
- ifconfig ~ source ~/.bashrc 부분은 전과 동일
2) SBC(Single Board Computer) 설정
- 컴퓨터에 Micro SD card 연결
- https://www.raspberrypi.org/downloads/ : 라즈베리파이 공식 사이트에 접속하여 Micro SD card에 Raspberry Pi Imager 다운로드
- OS로 Raspbian(Raspberry PI OS) 선택 후 저장소에서 SD카드 선택 후 쓰기 시작
- 쓰기 완료 후 SD card를 라즈베리파이에 삽입 후 모니터, 키보드 등을 연결한 후 전원 인가
- 초기 설정 진행 (이름 : kusmo)
- 노트북과 같은 네트워크(와이파이)에 연결한 후 터미널 실행
$ ifconfig
- 노트북에서와 마찬가지로 IP 확인 = 192.168.0.25
- 노트북에서 터미널 실행 후 아래 명령어를 통해 라즈베리파이와 연결
$ ssh kusmo@192.168.0.25
$ sudo apt-get install ntpdate
$ sudo ntpdate ntp.ubuntu.com
- NTP 시간 동기화
- NTP(Network Time Protocol) : Network로 연결되어 있는 컴퓨터들끼리의 Clock시간을 동기화 시킬 때 사용하는 프로토콜
$ sudo raspi-config
- 환경설정 진행
- Advanced Options -> Expand Filesystem 선택 후 종료(사진 첨부)
$ gedit ~/.bashrc
export ROS_MASTER_URI=http://{192.168.0.3}:11311
export ROS_HOSTNAME={192.168.0.25}
- gedit을 통해 bashrc파일을 연 후 맨 아랫줄에 위 두 줄 추가
- 첫번째 IP는 노트북의 IP, 두번째 IP는 라즈베리파이의 IP
$ source ~/.bashrc
- 수정사항 적용
3) OpenCR 설정
- OpenCR을 노트북에 연결
$ sudo dpkg --add-architecture armhf
$ sudo apt-get update
$ sudo apt-get install libc6:armhf
- 라즈베리파이에 OpenCR 펌웨어를 올리기 위해 필요한 패키지 설치
$ export OPENCR_PORT=/dev/ttyACM0
$ export OPENCR_MODEL=burger
$ rm -rf ./opencr_update.tar.bz2
$ wget https://github.com/ROBOTIS-GIT/OpenCR-Binaries/raw/master/turtlebot3/ROS1/latest/opencr_update.tar.bz2
$ tar -xvf opencr_update.tar.bz2
- 펌웨어 다운로드
- wget은 웹에서 파일 다운로드를 도와주는 Linux Command Line Utility
$ cd ./opencr_update
$ ./update.sh $OPENCR_PORT $OPENCR_MODEL.opencr
- OpenCR에 펌웨어를 올림
4) Bring Up
- 노트북에서 roscore 실행
$ roscore
$ ssh kusmo@192.168.0.25
- 라즈베리파이에 연결
$ roslaunch turtlebot3_bringup turtlebot3_robot.launch
- 터틀봇3 application 시작을 위한 기본 패키지 bring up
- 이 과정에서 roslaunch 명령어를 인식하지 못하는 오류 발생
7/31
- 컴퓨터에서 16GB크기의 SD카드의 전체 공간이 MB단위로 작게 표시가 되어 이를 해결하고자 함
- Window key + R 에서 diskpart를 실행
- 실행 후 list disk를 통해 현재 컴퓨터에 설치된 저장공간 리스트 확인
- SD 카드에 해당하는 디스크 선택 ex) 4번 disk에 SD카드가 있으면 'select disk 4' 입력
- clean을 통해 디스크 포맷. 이제 파일 탐색기에서 용량이 표시되지 않는 드라이브로 변경 됨
- 이후 아래 명령어들을 실행했어야 하나 하지 않아서 컴퓨터가 SD카드를 표시하지 않게 됨
create partition primary // 새로운 파티션 생성
list partition // 생성된 파티션의 번호 확인. 기본적으로는 1번으로 표시됨
select partiion1 // 1번 파티션 선택
active // 해당 파티션 활성화
format fs=ntfs quick // ntfs 파일시스템으로 포맷
exit // diskpart를 빠져나옴
- format fs=ntfs quick에서 ntfs를 fat32로 바꾸면 FAT32 파일시스템으로 포맷됨
- FAT32는 NTFS이전의 파일시스템
참고 자료 :
https://www.notion.so/2-5-324b0c03317640cea18601c889b1515e
https://psychoria.tistory.com/752
https://robertchoi.gitbook.io/ros/build
'Project > KUSMO' 카테고리의 다른 글
[KUSMO] 9/27 (0) | 2022.09.28 |
---|---|
[KUSMO] 8/13 ~ 15 (Ubuntu 20.04 듀얼부팅, SLAM, Navigation, Simulation) (0) | 2022.08.17 |
[KUSMO] 8/9 ~ 8/12 (Raspberry PI OS 관련 문제) (0) | 2022.08.16 |
[KUSMO] 8/1 ~ 8/5 (Raspberry PI OS 관련 문제) (0) | 2022.08.06 |
[KUSMO] 7/27 (KUSMO 소개, Ubuntu 18.04 듀얼 부팅) (0) | 2022.07.27 |