사조기가 걷기 시작함에 따라 안정적인 보행과 추가 기능 구현의 영역을 분리하기로 하였다. 본 페이지는 LiDAR 센서를 이용하여 이동하는 영역을 mapping하기 위한 소프트웨어를 개발한다. ROS Noetic 기반으로 진행한다.
RaspberryPi를 서버로 사용하며 파이에 ssh로 접속하여 화면은 MSI 랩탑 화면에 띄울 수 있도록 한다.
Hardware
- RaspberryPi4 4Gb (server) : Ubuntu20.04
- YDLidar model G4
- MSI ubuntu laptop (client) : Ubuntu20.04
Setting
가장 먼저 ROS가 설치된 ubuntu 이미지를 입힌 sd카드가 라즈베리파이에 장착되었다는 전제 하에 진행한다. 만약 아니라면 아래 링크를 타고 들어가서 설치하고 온다. ROBOTIS는 신이다.
파이의 기본 세팅은 알아서 하고 바로 라이다 세팅으로 넘어간다. YDLidar 사이트의 support를 가본다.
Downloads & Support_YDLIDAR|Focus on lidar sensor solutions
[laptop]
여기서 본인이 사용하는 LiDAR 모델에 맞는 탭으로 넘어가서 SDK를 다운받는다. zip 파일 형식인데 이거를 랩탑에 받아서 파이로 넘겨주어야 한다. Manual에서는 공식 github 에서 clone하라고 하는데 git에는 build directory가 없다. 직접 다운받아서 넘겨주는게 편하다. 다운로드 받았다면
scp ydlidar_SDK\ G4.zip ubuntu@{RPi IP}:
이러면 파이로 파일이 넘어간다. 이제부터는 파이에 ssh로 접속해서 진행한다.
ssh ubuntu@{RPi IP}
[RPi] 파이에서는 세 가지를 크게 해주어야 한다.
- YDLidar SDK build&install
# unzip이 안되면 sudo apt install unzip
unzip ydlidar_SDK\ G4.zip
cd YDLidar-SDK-master/build
cmake ..
make
sudo make install
오류가 나지 않길 빈다. 성공했으면 넘어간다.
위에서 넘겨온 압축파일을 풀어주고 build directory로 넘어간다.
- YDLidar ros driver build
ros driver도 마찬가지로 공식 git에서 clone할 수 있다.
성공했다면 ~/.bashrc파일에 또 올려준다. 추가적으로 시리얼 포트 설정도 해준다.git clone https://github.com/YDLIDAR/ydlidar_ros_driver.git cd ydlidar_ws catkin_make # %lld 관련 warning이 뜰 수도 있는데 그 파일 찾아가서 %ld로 고쳐준다. # python-empy 에러가 뜨면 아래로 make한다 catkin_make -DPYTHON_EXECUTABLE=`which python`
echo "source ~/ydlidar_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
chmod 0777 src/ydlidar_ros_driver/startup/*
sudo sh src/ydlidar_ros_driver/startup/initenv.sh
아무 오류가 없다면 설치는 끝났다! launch 파일들 구경하면서 실행하면 된다. rviz를 이용하여 화면에서 확인할 수 있는 launch file은 아래와같다.
roslaunch ydlidar_ros_driver lidar_view.launch
다만 이렇게만 하면 rviz를 킬 수 없다고 뜰 것이다.
- xhost 권한 해제
일단 rviz가 없을 수도 있으니 설치나 한 번 더 해주고 간다.
아마 이래도 해결은 안될 것이다. 이는 화면과 관련하여 xhost 허용 이슈이기 때문이다.이러고 실행하면 rviz가 client 모니터에서도 정상적으로 표출된다.sudo apt install ros-noetic-rviz
cd /etc/ssh/ sudo nano ssh_config # --- # 여기에서 주석처리되어있는 아래 줄을 # x11Forward no x11Forward yes # 로 바꿔준다 # --- save and exit sudo service sshd restart
라이다 작동과 표출에 성공했다. 추후 추가적인 진행 과정도 업로드할 예정이다.
* ssh로 연결할 때 rviz가 정상작동하기 위해서는
ssh -X ubuntu@{RPi IP}
로 꼭 -X 권한을 줘야한다. 안주면 아래와 같은 에러로 2시간을 날려먹을 수 있다.
'ROBOTICS > RPi SLAM' 카테고리의 다른 글
Mapping with hector_slam : Troubleshooting (1) | 2022.10.04 |
---|---|
Mapping with hector_slam (0) | 2022.09.02 |
댓글