일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ros tf
- 라즈베리파이
- ROS 초보
- ros rqt
- piracer
- Node
- ros 제어
- ROS 노드
- ros rviz
- ros 로봇
- 리눅스
- ROS 기초
- ros 동적 파라미터
- ros 3d
- ros 파라미터
- ROS
- ros 입문
- ros network
- 우분투
- ros launch
- ros 실시간
- ros node
- 가상환경
- ros 정적 파라미터
- ros 공부
- ROS topic
- ros rqt_tf_tree
- 노드
- ros link
- ros cfg
- Today
- Total
대원의 블로그
[PiRacer #1] PiRacer 라즈베리파이 설정하기 본문
지난 이야기
공학적 설계 수업을 들으며, 직접 자작 자동차를 만들기 전에 간접 체험을 하는 용도로 PiRacer를 조당 1개씩 제공을 해주었다. 인터넷에서 조립 매뉴얼을 찾아서 하드웨어 조립은 끝난 상태이고, 이제 내부 소프트웨어 설정을 진행해볼려고 한다.
PiRacer 설정하기
우리가 만든 PiRacer AI Kit에 대한 정보는 여기(https://www.waveshare.com/wiki/PiRacer_AI_Kit)에서 확인할 수 있다.
이 자동차를 DonkeyCar라고 부르는거 같은데 그 이유는 정확히 알 수 없다.
여기서 알려주는 기본적인 세팅 과정은 다음과 같다.
라즈베리파이를 설정할려고 하는데 저번에 시도했을 때는 내가 뭔가 잘못해서 그런지 몰라서 중간에 그만두고 다시 첨부터 도전할려고 한다.
Setup Rasberry Pi
우선 본격적으로 시작하기에 앞서 라즈베리파이에 라즈비안 설치해주면 된다. 그 방법은 생략...
(SSD에 라즈비안 OS를 구우면 더 잘 된다는 얘기가 있어서 시도 중이다.)
SSD가 확실히 좀 더 빠른거 같기도 하고 아무튼 Pi connect를 이용해서 화면 미러링을 시도하고서 작업을 하였다.
* 원격접속은 Pi-connect가 제일 편하니까 이거 사용하길....
step 1. install libraries
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential python3 python3-dev python3-pip python3-virtualenv python3-numpy python3-picamera
sudo apt-get install python3-pandas python3-rpi.gpio i2c-tools avahi-utils joystick libopenjp2-7-dev libtiff5-dev gfortran
sudo apt-get install libatlas-base-dev libopenblas-dev libhdf5-serial-dev git ntp
우선 여기서 python3-picamera가 없다고 나오는데 python3-picamera2로 하면 해결이 될 것이다.
아마 picamera가 예전 버전이고 picamera2가 최근 버전이라서 그런거 같다.
step 2. Install libraries for OpenCV
sudo apt-get install libilmbase-dev libopenexr-dev libgstreamer1.0-dev libjasper-dev libwebp-dev
sudo apt-get install libatlas-base-dev libavcodec-dev libavformat-dev libswscale-dev libqtgui4 libqt4-test
libjasper-dev가 없다고 나오는데 이것도 최신 라즈베리파이엔 필요없는 라이브러리라고 한다.
그래서 비슷하게 jpep 2000을 처리하는 라이브러fl인 libopenjp2-7-dev를 대신 설치해주었다.
qt4는 아무 예전 버전이므로 이제는 qt5나 qt6를 사용하면 된다 따라서 밑의 코드와 같이 해주면 된다.
sudo apt-get install libatlas-base-dev libavcodec-dev libavformat-dev libswscale-dev libqt5gui5 libqt5test5
Step 3. Setup virtual environment
python3 -m virtualenv -p python3 env --system-site-packages
echo "source env/bin/activate" >> ~/.bashrc
source ~/.bashrc
가상환경을 열어주는 과정인데 step 1에서 깔았던 virtualenv를 이용하는 것으로
- python3 -m virtualenv: virtualenv 모듈을 활용
- -p python3: python의 버전을 지정
- env: 가상환경 이름
- --system-site-packages: 기존에 깔려있던 라이브러리를 가상환경에 그대로 사용
이렇게 이해하면 될 것이다.
밑의 2개의 코드는 가상환경을 자동을 실행되도록 도와주는 코드이다.
(*정확히 어떤식으로 작동하는 건지는 잘 모르겠음)
Step 4. Install Donkeycar python codes
우선 프로젝트 파일을 만들어준다.
mkdir projects
cd ~/projects
그러고 나서 깃허브에 있는 Donkeycar 코드를 다운받는다.
git clone https://github.com/waveshare/donkeycar
cd donkeycar
git checkout master
pip install -e .[pi]
pip install tensorflow==1.13.1
pip install numpy --upgrade
tensorflow 1.13.1 버전은 더이상 다운을 받을 수가 없어서, 그냥 최신버전으로 다운 받았다.
전체적으로 예전에 작성된 매뉴얼이여서 예전 라이브러리와 버전에 관한 것이 많은듯하다.
numpy는 2.1.2 버전으로 업그레이드되었다.
Step 5. Install OpenCV
OpenCV를 다운받아준다.
sudo apt install python3-opencv
만약에 이걸로 안 받아지면
pip install opencv-python
이걸로 다운을 받아보라고 하는데 나는 바로 잘 받아졌다.
다운을 다 받았다면 밑의 코드를 통해서 잘 다운받아졌는지 확인한다.
python -c "import cv2"
확인을 했더니 넘파이가 버전이 2를 넘지 않아야 한다고 해서 일단 넘파이의 버전을 다운그레이드시켜보았다.
pip uninstall numpy
pip install numpy==1.24.2
다른 버전을 깔려고 노력했는데 (Chat gpt가 알려준 버전으로) 잘 안되는 와중에 자동으로 1.24.2 버전이 깔려있다는 것을 알았다. 그냥 여러개 시도해보고 되는거 하면 될듯하다.
python -c "import cv2"
다시 이 코드를 돌려보았는데 이제 에러가 뜨지 않는다.
에러가 없다는 것은 OpenCV가 이제 문제 없이 깔렸다는 것이다.
Step 6. Install Service of OLED Display
cd ~
git clone https://github.com/waveshare/pi-display
cd pi-display
sudo ./install.sh
PiRacer를 보면 작은 OLED디스플레이가 리어휠쪽에 붙어 있다. 이것을 활용하기 위한 코드를 다운 받는다.
근데 마지막 코드에서 attribute 에러가 뜨는데 이것도 예전에 만들어진 코드여서 그려려니하고 일단 넘어갔다.
OLED 정도 안 나와도 일단 큰 문제가 없다고 생각하기 때문에...
Step 7. Create DonkeyCar
cd ~/projects/donkeycar
donkey createcar --path ~/mycar
이제 donkey createcar를 이용하여 PiRacer를 실행할때마다 mycar에 파일이 생성되도록 한다.
여기까지가 PiRacer를 작동시키기 위한 라즈베리파이의 기본 세팅이다.
온라인으로 작동시켜보기
이제 온라인 web을 통해서 작동시키는 방법이다.
pi@raspberrypi:~$ source ~/env/bin/activate
(env) pi@raspberrypi:~$ cd mycar/
(env) pi@raspberrypi:~/mycar$ python manage.py drive
이걸 했는데 OSError: libbcm_host.so: cannot open shared object file가 떠서 어떻게 해야할지 찾아봤는데 우선 libbcm_host.so 자체가 라즈베리파이에 없는거 같아서 설치를 했다.
sudo apt-get install libraspberrypi-bin
근데 뭔가 잘 안 되는거 같아서 따로 또 시간을 들여서 해야 할듯하다.
여기까지.
'프로젝트 > 자작자율주행차' 카테고리의 다른 글
[PiRacer #2] PiRacer 라즈베리파이 재설정하기 (8) | 2024.10.13 |
---|