개발환경 & 준비물 :
- 라즈베리파이3B+
- ydlidar X4
- ubuntu-18.04.4-preinstalled-server-armhf+raspi3.img.xz
- ROS melodic
step1. 라즈베리파이에 우분투 OS 설치
https://www.youtube.com/watch?v=zasvSKaobVI&t=94s (유튜브 구선생 라즈베리 파이에 우분투 18.04 설치하기)
영상을 4분 12초까지 따라해주세요.
영상과 다른 점 :
- 4분 12초 이후 네트워크 설정, ssh 설정은 따라 하지 않고 라즈베리파이에 랜선을 연결했습니다.
- 우분투 img 파일이 다릅니다.
step1.5. 우분투 데스크탑 설치 (생략가능)
다음 링크를 따라 우분투 서버에 데스크탑을 설치해줍니다.
https://itstillworks.com/install-desktop-ubuntu-server-6780086.html
데스크탑의 장점 : - 설치되는 과정이 눈에 잘 보인다. (내폴더에 들어가서 확인 가능)- 오류가 떴을 때 이유를 확인하기 쉽다.
- 원격접속을 하지 않았고, 라즈베리파이 웹서핑 속도가 너무 느린 경우, 웹 창에 접속해서 필요한 코드를 복사, 붙여넣기하기가 어려운데, 데스크탑을 설치하면 (라즈베리파이가 아닌 인터넷 속도가 빠른) 다른 PC 메모장에 필요한 코드를 받고, 이것을 USB에 담고, 라즈베리파이로 옮겨서 코드 복붙을 할 수 있다.
물론 서버에서도 에디터를 켜서 USB로 옮겨온 메모장을 확인해볼 수 있지만 저는 아직 그게 좀 어색해서 데스크탑을 깔고 눈에 바로 보이는 메모장 파일을 열어서 코드를 복붙했습니다. 저는 라즈베리파이 웹서핑 속도가 사용을 못할 만큼 너무 느리고 중간에 이상하게 멈춰버리는 현상이 많이 일어나던데 이건 제 장비 문제일수도 있습니다.
step2. 라즈베리파이에 ROS melodic 설치
터미널에 다음과 같이 입력합니다.혹시 중간에 에러가 뜬다면 리부트하고 처음부터 다시 입력해주세요.
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install ros-melodic-desktop-full
sudo apt-get install python-pip
sudo pip install -U rosdep
sudo rosdep init
rosdep update
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
source /opt/ros/melodic/setup.bash
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
터미널에 roscore를 입력했을 때 실행된다면 설치가 정상적으로 완료된 것입니다.
출처 : https://www.youtube.com/watch?v=s-bSanf7VqM&t=1s
step3. ydlidar 설치
참고한 메뉴얼 :
git clone의 경우 메모장 복붙했을 때 오류가 뜰 때가 있었습니다. 직접 타이핑하면 해결 가능.
라즈베리파이에서 구동할 땐 5V 전원도 공급해줘야 작동합니다.
// vm ware로 구동하는 경우 VMware 맨 위 툴바에 VM 클릭 removable devices - Silicon CP~~ connect 클릭
$ cd
$ git clone https://github.com/YDLIDAR/YDLidar-SDK.git
$ cd YDLidar-SDK/build
$ cmake ..
$ make
$ sudo make install
$ cd
$ git clone https://github.com/YDLIDAR/ydlidar_ros_driver.git ydlidar_ws/src/ydlidar_ros_driver
$ cd ydlidar_ws
$ catkin_make
$ source ./devel/setup.sh
$ echo "source ~/ydlidar_ws/devel/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
$ echo $ROS_PACKAGE_PATH
$ chmod 0777 src/ydlidar_ros_driver/startup/*
$ sudo sh src/ydlidar_ros_driver/startup/initenv.sh
//두번째 실행할 때부터는 아래 코드부터 입력해도 ydlidar가 작동합니다.
$ chmod 766 /dev/ttyUSB0
$ roslaunch ydlidar_ros_driver X4.launch
// 새로운 터미널을 열고
$ rosrun rviz rviz
// (rviz 툴바 file -> open -> 현재 구동 중인 launch 파일 클릭 (경로 : home/ydlidar_ws/src/ydlidar_ros_driver/launch)
끝
만약 ubuntu 16.04를 사용하고 있다면 아래 코드 사용
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
git clone https://github.com/YDLIDAR/ydlidar_ros
cd ydlidar_ros
git checkout X4
cd ../..
catkin_make
roscd ydlidar/startup
sudo chmod 0777 *
sudo sh initenv.sh
sudo chmod 666 /dev/ttyUSB0
roslaunch ydlidar lidar_view.launch
에러가 뜬 경우 :
0. PC로 구동할 땐 데이터 케이블만 연결해줘도 되는데 라즈베리파이에 라이다 연결시엔 라이다에 5V 전원 케이블도 연결해줘야 합니다. (power 관련 에러)
1. 경로 설정이 꼬인 경우
ex) home에서 git clone ....을 해주어야 하는데 YDLidar-SDK/build에서 코드를 입력한 경우 등등..
파일이나 폴더를 삭제한 후 다시 매뉴얼 경로에서 다시 명령을 입력해도 되고, 현재 경로를 반영해서 코드를 수정할 수 있다면 그렇게 해도 됩니다.
ex1) sudo sh src/ydlidar_ros_driver/startup/initenv.sh 를 입력하는데 현재 ydlidar_ws에 위치해있지 않다면 우선 cd ydlidar_ws로 이동해줍니다.
ex2) home이 아니라 YDLidar-SDK 폴더에서 명령어 git clone https://github.com/YDLIDAR/ydlidar_ros_driver.git ydlidar_ws/src/ydlidar_ros_driver을 실행한 경우
내폴더에서 검색해서 startup폴더가 어디있는지 확인해봅니다.
아마 home/YDLidar-SDK/ydlidar_ws/src/ydlidar_ros_driver/startup일 것입니다.
그럼 sudo sh src/ydlidar_ros_driver/startup/initenv.sh 이 코드를 홈에서 실행한다고 가정하면 sudo sh YDLidar-SDK/ydlidar_ws/src/ydlidar_ros_driver/startup/initenv.sh 로 실행하면 원래 목적대로 initenv.sh 파일이 설치됩니다.
2. 구글링하면서 ydlidar 관련 여러 코드를 실행해보다가 환경설정 부분(echo ...)이 섞인 경우
nano ~/.bashrc를 입력하고 맨 아래쪽에 있는 bash파일 경로(?) 중에 필요한 코드만 남겨두고 나머지를 삭제해주세요.(나중에 다시 쓸 수도 있으니까 맨 앞에 #만 적어서 주석처리)
똑같은 코드가 중복돼 있으면 하나만 남기고 삭제해주세요
'작업' 카테고리의 다른 글
라즈베리파이에서 LED 구동하기 (0) | 2021.09.08 |
---|