일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 서울대입구역맛집
- 로보틱스
- 3D프린팅
- 대하소금구이
- 서울대맛집
- 횟집
- 서울대입구맛집
- 맛집
- raspberry pi
- Ros
- 우분투 설치
- Robotics
- 3D프린터
- 서울대입구역
- 제품설계
- 무한리필
- 설입맛집
- 포켓몬코리아
- 대방어
- 책상정리
- 팝업스토어
- 라즈베리파이
- 숙성회
- 20220222222222
- raspberry pi display
- 서울대입구
- 편백찜
- urdf
- 로스
- 콩콩절
- Today
- Total
Factory Underground
[ROS] 라즈베리 파이 4에 ROS 설치 본문
Setup ROS w/ Raspberry pi 4
INDEX
Requirement
- Raspberry pi 4 8GB model (over 4GB RAM recommanded)
- 16GB 이상 micro SD card
- Raspberry Pi 와 연결 가능한 display (7-inch raspberry pi display 사용)
- USB keyboard & mouse
- WIFI 환경
- Raspberry Pi Imager (balenaEtcher 로 대체 가능)
- Ubuntu 18.04.xx LTS
- ROS Melodic
OS setting
ROS melodic의 사용을 위해 ubuntu 18.04 버전을 설치한다.
raspberry pi에 적합한 ubuntu 이미지에 desktop 버전이 없기 때문에 server 버전을 설치하고 이후 GUI를 설치하는 방향으로 진행하였다.
1. OS 부팅 이미지 생성
- Ubuntu 이미지 다운로드 진행 (Requirement 내 Ubuntu 링크 참조)
- Pi Imager 혹은 balenaEtcher 로 SD카드에 부팅 이미지 굽기
- SD카드 삽입 후 raspi. 에 전원 인가
2. 초기 계정 설정
2-1. 초기 계정 로그인
초기 ID : ubuntu
초기 password : ubuntu2-2. 새 비밀번호로 변경
- 최초 계정 로그인시 비밀번호 변경 실행
2-3. 루트 계정 활성화
- 루트 계정 비밀번호 생성
$ sudo passwd root [sudo] password for rex: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
- 루트 계정 활성화 확인
ubuntu@ubuntu:~$ su - root Password: root@ubuntu:~#
3. WIFI setup
ethernet 연결 가능할 경우 건너뛰어도 무방함
nano 외의 편집기 사용해도 무관
편집기 실행 뒤 아래 내용 추가한 후 저장$ sudo nano /etc/netplan/50-cloud-init.yaml
"큰따옴표"는 지우지말고 내부에 내용만 변경할 것.Tab
키 적용 안되니 띄어쓰기로 입력할 것.
들여쓰기 수준은 wifis와 ethernet이 동일한 수준으로 맞추면 된다.
저장한 후 재부팅 진행wifis: wlan0: dhcp4: true optional: true access-points: "WIFI_NAME": password: "PASSWORD"
재부팅 후 ifconfig로 wifi 연결 확인$ sudo reboot
$ ifconfig
(optional)
연결이 wlan0 이 아닐 경우도 있는 듯하다.
ifconfig 명령어로 비활성화된 인터페이스의 이름을 확인할 수 있다.$ sudo ifconfig -a
4. 패키지 업데이트
이후 진행될 과정을 위해 미리 설치된 패키지의 업데이트를 진행
$ sudo apt-get update
$ sudo apt-get upgrade -y
시간이 많이 소요될 수 있음. coffee time!
5. 기타 패키지 다운로드
- 필수 패키지 설치
$ sudo apt-get install build-essential git
- ssh 설치 및 설정
$ sudo apt-get install ssh $ sudo systemctl enable ssh $ sudo systemctl start ssh $ sudo systemctl status ssh
- lrzsz 설치
$ sudo apt-get install lrzsz
- Network Manager 설치
$ sudo apt-get install network-manager
- ubuntu GUI 설치
시간이 많이 소요될 수 있음.$ sudo apt-get install ubuntu-desktop
완료 후 재시작$ sudo reboot
ROS Install
- 사전 설정
source.list 설정. package.ros.org에서 소프트웨어를 받아올 수 있도록 주소 설정
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
아래 명령어 입력했을 때 화살표 내용 나오면 성공
$ cat '/etc/apt/sources.list.d/ros-latest.list'
-> deb http://packages.ros.org/ros/ubuntu bionic main
접근 키 설정. gpg 메시지 processed 와 imiported 나올 시 성공.
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
- ROS Melodic 설치
설치 진행 전 패키지 업데이트 진행
$ sudo apt update
$ sudo apt upgrade -y (~package can be upgrade 가 나오면 진행)
기본 버전과 Gazebo와 Rviz 등이 추가된 풀 버전이 있음. 취사 선택하여 진행
# 기본 버전
$ sudo apt install ros-melodic-desktop
# 풀 버전
$ sudo apt install ros-melodic-desktop-full
시간이 많이 소요될 수 있음.
설치 완료 후 아래 진행
$ sudo apt-get install python-pip
$ sudo pip install -U rosdep
$ sudo rosdep init
rosdep init
은 권한 문제로 sudo를 사용하지 않아야될 수 있다함. 일단 sudo로 진행함.
$ sudo rosdep init
$ rosdep update
$ echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
- 의존성 패키지 설치
ROS Melodic 설치를 완료하면 진행
# 기본 버전
$ sudo apt-get install cmake python-catkin-pkg python-empy python-nose python-setuptools libgtest-dev python-rosinstall build-essential git python-rosinstall-generator python-wstool
# 풀 버전
# sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool
설치 완료하면 workspace 생성 진행.
$ mkdir -p ~/WORKSPACE_NAME/src
$ cd ~/WORKSPACE_NAME/src
$ catkin_init_workspace
$ cd ..
$ catkin_make
catkin_make
가 완료되면 배치파일에 해당 디렉토리 추가
$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
- ROS 환경 설정
배치파일에 소스 등록 외에도 명령어와 네트워크 설정을 추가
$ sudo nano ~/.bashrc
아래에 해당 내용추가. source 명령줄은 주석만 달고 그대로 사용.
# SET ROS Melodic
source /opt/ros/melodic/setup.bash
source ~/WORKSPACE_NAME/devel/setup.bash
# SET ROS NETWORK
export ROS_HOSTNAME=localhost
export ROS_MASTER_URI=http://${ROS_HOSTNAME}:11311
# SET ROS alias command
alias cw='cd ~/WORKSPACE_NAME'
alias cs='cd ~/WORKSPACE_NAME/src'
alias cm='cd ~/WORKSPACE_NAME && catkin_make'
변경한 설정 추가
$ source ~/.bashrc
- 설치 확인
설치가 정상적으로 완료되었는지 확인
$ printenv | grep ROS
기본 turtlesim 테스트.
명령줄은 각각의 터미널 창에서 입력.
$ roscore
$ rosrun turtlesim turtlesim_node
$ rosrun turtlesim turtle_teleop_key
ISSUES
(ISSUE_1) WIFI 연결 오류 발생시 대처법
netplan에 wifi 설정을 추가하는 방법으로 인터넷을 연결하였더니 GUI 설치후 wifi 연결에 문제가 발생하였다. 해결하기 위해 50-cloud-init.yaml을 아래 내용과 같이 변경하였다.
$ sudo nano /etc/netplan/50-cloud-init.yaml
network:
renderer: NetworkManager
ethernets:
eth0:
dhcp4: true
optional: true
version: 2
wifis:
wlan0:
dhcp4: true
optional: true
access-points:
"WIFI_NAME":
password: "WIFI_PASSWORD"
적용을 위해 reboot 진행해보고 안되면 다른 방법을 찾아봐야함.
(ISSUE_2) Ubuntu에서 raspberry pi touch screen 180도 회전
기존 raspbian OS에서는 /boot
에서 config.txt를 아래와 같이 변경하면 작동한다.
lcd_rotate=2
Ubuntu에서는 /boot/firmware
에서 usercfg.txt를 변경하면 된다.
$ sudo nano /boot/firmware/usercfg.txt
lcd_rotate=2
변경 후 reboot을 진행하면 적용된 것을 확인할 수 있다.