19. [ROS RC์นด] ํ๋ก์ ํธ Setup, DonkeyCar ๋๋ฌ๋ณด๊ธฐ
๋ณธ๊ฒฉ์ ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์์ํด๋ณด๊ฒ ์ต๋๋ค.
์ด์ ๋๋ถ์ด, ๊ฐ์ ํ๋์จ์ด๋ก ์งํ ๊ฐ๋ฅํ ๋ ๋ค๋ฅธ ํ๋ก์ ํธ์ธ Donkey Car
์ค์ ๋ ์์๋ณด๊ณ ์ ํฉ๋๋ค.
- ํ์ ์์ค์ฝ๋ clone
$ cd ~/catkin_ws/src
$ git clone https://github.com/Road-Balance/donkey_ros.git
$ cd ~/catkin_ws
$ cma
cma ์ค ๊ด๋ จ ์ข ์์ฑ ๋ฌธ์ ๋ก ์๋ฃ๋์ง ์์ ์ ์์ต๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ ๋ค์์ ์ปค๋ฉ๋๋ฅผ ํตํด ros ์ข ์์ฑ๋ค์ ์์ฝ๊ฒ ์ค์นํ ์ ์์ต๋๋ค.
$ rosdep install --from-paths src --ignore-src -r -y
[Option] DonkeyCar Setup
์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ๋ฐ๋ผ์ค์๋ฉด, ๋ฉ์๋ ์ฌ๋ฌ๋ถ๋ง์ RC์นด๊ฐ ์๊ธฐ๊ฒ ๋ฉ๋๋ค.
ROS๋ ์๋์ง๋ง, ์ด ๋์ผํ ํ๋์จ์ด๋ก ์งํํ ์ ์๋ ๋๋ค๋ฅธ ๋ฉ์๋ ๊ฐํํ์ต ํ๋ก์ ํธ, Donkey Car ํ๊ฒฝ์ ๊ตฌ์ถํด๋ด ๋๋ค.
ํ์ด์ฌ ๊ฐ์ํ๊ฒฝ
๊ฐ์ํ๊ฒฝ์ด๋? ํ์ํ ์ด์ ๋?
-
project A
- numpy=1.17.1
- django
- ...
-
project B
- pymongo
- beautifulSoup
- ...
-
project C
- numpy=1.18.5
- matplotlib
- ...
ํ์ด์ฌ์ ๊ฐ๋ฐ ํ๊ฒฝ ๋๊ตฌ๋ค
- pipenv
- pyenv
- anaconda
- virtualenv
- venv
- ๋ชจ๋ ์ค์น ๊ณผ์ ์ ํด๋น ํ์ด์ง์ ๊ธฐ๋ฐํฉ๋๋ค.
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install build-essential python3 python3-dev python3-pip python3-pandas python3-h5py libhdf5-serial-dev hdf5-tools nano ntp
$ pip3 install virtualenv
$ python3 -m virtualenv -p python3 env --system-site-packages
$ python3 -m virtualenv -p python3 donkey_env
$ echo "source env/bin/activate" >> ~/.bashrc
$ source ~/.bashrc
$ deactivate
$ source env/bin/activate
$ mkdir -p ~/donkey; cd ~/donkey
$ git clone https://github.com/autorope/donkeycar
$ cd donkeycar
$ git checkout master
$ pip install --upgrade setuptools
$ pip install --upgrade pip
$ pip install -e .[nano]
$ sudo apt-cache show nvidia-jetpack | grep Version
$ # For Jetpack 4.4,
$ pip install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 'tensorflow<2'
$ sudo apt-get install python-dev libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev libsdl1.2-dev libsmpeg-dev python-numpy subversion libportmidi-dev ffmpeg libswscale-dev libavformat-dev libavcodec-dev libfreetype6-dev
Create your car application
$ donkey createcar --path ~/donkey/mycar
________ ______ _________
___ __ \_______________ /___________ __ __ ____/_____ ________
__ / / / __ \_ __ \_ //_/ _ \_ / / / _ / _ __ `/_ ___/
_ /_/ // /_/ / / / / ,< / __/ /_/ / / /___ / /_/ /_ /
/_____/ \____//_/ /_//_/|_| \___/_\__, / \____/ \__,_/ /_/
/____/
using donkey v4.1.0 ...
Creating car folder: /home/swimming/donkeyROS/mycar
making dir /home/swimming/donkeyROS/mycar
Creating data & model folders.
making dir /home/swimming/donkeyROS/mycar/models
making dir /home/swimming/donkeyROS/mycar/data
making dir /home/swimming/donkeyROS/mycar/logs
Copying car application template: basic
Copying car config defaults. Adjust these before starting your car.
Copying train script. Adjust these before starting your car.
Copying calibrate script. Adjust these before starting your car.
Copying my car config overrides
Donkey setup complete.
Calibrate your Car
๊ธฐ๊ธฐ๋ง๋ค ์ ์ง, ๋ฐฉํฅ ์ ํ์ ์ํ PWM pulse์ ๋์ญํญ์ด ๋ค๋ฅผ ์ ์์ต๋๋ค.
์ด๋ฅผ ์ํด calibration
์ด ํ์ํ๋ฐ์, ์ด
๊ฐ์ ์ ์ ์ด๋์๋ค๊ฐ ROS ํ๋ก์ ํธ์๋ ํ์ฉํ ์ ์์ต๋๋ค ๐๐
PCA board. It should be 1 or 0.
$ cd ~/donkey/donkeycar
# servo
$ donkey calibrate --channel 1 --bus=1
# throttle
$ donkey calibrate --channel 0 --bus=1
________ ______ _________
___ __ \_______________ /___________ __ __ ____/_____ ________
__ / / / __ \_ __ \_ //_/ _ \_ / / / _ / _ __ `/_ ___/
_ /_/ // /_/ / / / / ,< / __/ /_/ / / /___ / /_/ /_ /
/_____/ \____//_/ /_//_/|_| \___/_\__, / \____/ \__,_/ /_/
/____/
using donkey v4.1.0 ...
init PCA9685 on channel 0 address 0x40 bus 1
Using PWM freq: 60
Enter a PWM setting to test ('q' for quit) (0-1500): 400
Enter a PWM setting to test ('q' for quit) (0-1500):
- ๋ณ๊ฒฝ ์ฌํญ์
mycar/myconfig.py
์ ์ ์ด์ฃผ์๋ฉด ๋ฉ๋๋ค.
- ๋ค์์ผ๋ก ์นด๋ฉ๋ผ ์ธํ ์ ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ์นด๋ฉ๋ผ์ ์ ๋ณด๋ฅผ ๋ค์ ํ ๋ฒ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋ผ์ฆ๋ฒ ๋ฆฌํ์ด ์นด๋ฉ๋ผ์ ๋์ผํ IMX219
์ด๋ฏธ์ง ์ผ์๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ธ์
๋๋ค.
์ค์ ์ ์ํด์, ์์ ๊ฐ์ด ํ๋ฉด ํฝ์
, Flip ๋ฑ์ ์ค์ ํฉ๋๋ค. ์์ ์ Flip์ด 2๊ฐ ๋๋์ง ์ค๋ช
ํ์ง์??
Drive
์ค์ ์ ๋ชจ๋ ๋ง์ณค๋ค๋ฉด, ์ด์ Donkey Car๋ฅผ ์ฃผํ์ํฌ ์ ์๋ต๋๋ค.
์๋์ ๊ฐ์ ์ปค๋งจ๋๋ฅผ ์
๋ ฅํ๊ณ , 8887
ํฌํธ๋ก
๋ค์ด๊ฐ๋ฉด, ๋ค์๊ณผ ๊ฐ์ ์น ์ปจํธ๋กค๋ฌ ํ๋ฉด์ ๋ณผ ์ ์์ต๋๋ค!!
cd ~/donkey/mycar
python manage.py drive
์ด๋ฒ ํ๋ก์ ํธ๊ฐ ๋๋๊ณ ๋ ๋ค, ๊ฐํํ์ต์ ์ฌ์ฉํ์ฌ Donkey Car๋ ๋์ ํด๋ณด์ธ์!! ๐๐