Setting

가장 먼저 ROS가 설치된 ubuntu 이미지를 입힌 sd카드가 라즈베리파이에 장착되었다는 전제 하에 진행한다. 만약 아니라면 아래 링크를 타고 들어가서 설치하고 온다. ROBOTIS는 신이다.

ROBOTIS e-Manual

파이의 기본 세팅은 알아서 하고 바로 라이다 세팅으로 넘어간다. 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] 파이에서는 세 가지를 크게 해주어야 한다.

  1. YDLidar SDK build&install

    위에서 넘겨온 압축파일을 풀어주고 build directory로 넘어간다.

    # unzip이 안되면 sudo apt install unzip
    unzip ydlidar_SDK\\ G4.zip
    cd YDLidar-SDK-master/build
    cmake ..
    make
    sudo make install
    

    오류가 나지 않길 빈다. 성공했으면 넘어간다.

  2. YDLidar ros driver build

    ros driver도 마찬가지로 공식 git에서 clone할 수 있다.

    git clone <https://github.com/YDLIDAR/ydlidar_ros_driver.git>
    cd ydlidar_ws
    catkin_make
    # %lld 관련 warning이 뜰 수도 있는데 그 파일 찾아가서 %ld로 고쳐준다.
    

    성공했다면 ~/.bashrc파일에 또 올려준다. 추가적으로 시리얼 포트 설정도 해준다.

    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를 킬 수 없다고 뜰 것이다.

  3. xhost 권한 해제

    일단 rviz가 없을 수도 있으니 설치나 한 번 더 해주고 간다.

    sudo apt install ros-noetic-rviz
    

    아마 이래도 해결은 안될 것이다. 이는 화면과 관련하여 xhost 허용 이슈이기 때문이다.

    cd /etc/ssh/
    sudo nano ssh_config
    # ---
    # 여기에서 주석처리되어있는 아래 줄을
    # x11Forward no
    x11Forward yes
    # 로 바꿔준다
    # --- save and exit
    sudo service sshd restart
    

    이러고 실행하면 rviz가 client 모니터에서도 정상적으로 표출된다.

    ssh로 연결할 때 RVIZ가 정상작동하기 위해서는

    ssh -X ubuntu@{RPi IP}
    

    로 꼭 -X 권한을 줘야한다. 안주면 아래와 같은 에러로 2시간을 날려먹을 수 있다.

    img.png


일단 구동을 성공하였다.

VID_533460222_061924_517.mp4

이어서 map 생성을 시도할 예정이다.