OMOROBOT
  • Home
  • Manual
    • OMO R1
      • 조종기 사용법
      • ROS 구동하기
        • ROS pkg install
        • omo_r1_bringup 패키지
        • omo_r1_gazebo 패키지
        • ROS 원격 구동
        • SLAM 네비게이션
    • OMO R1mini
      • 로봇 살펴보기
      • 로봇 조립하기
      • 로봇 ON/OFF
      • 충전하기
      • 통신 명령표
      • Protocol Test Program
      • 시리얼 통신으로 로봇 다루기
      • Demonstrator GUI
      • ESP12보드
        • ESP12와 PC의 연결
      • R1mini PRO
        • Jetson nano 설치
      • ROS를 이용한 제어
        • ROS1 Melodic
          • omo_r1mini 패키지 설치
          • omo_r1mini 패키지 소개
          • 원격 접속
          • 원격으로 로봇 다루기
          • UDEV 설정
          • Camera 다루기
          • Lidar 다루기
          • rviz에 로봇 띄우기
          • Jupyter 설정
          • Jupyter 다루기
          • r1mini_gui_teleop 으로 로봇 다루기
            • 설치하기
            • 사용하기
          • SLAM 해보기
          • SLAM 해보기2
          • YOLO 설치하기
            • YOLO 설치 Error 해결방법
          • YOLO 사용하기
          • HLDS Hitachi-LG HLS-LFCD_LDS 설정
          • ----- Q&A -----
        • ROS2 Foxy
          • ROS2 설치하기 Ubuntu 20.04
          • Workspace 설치하기
          • ROS2 설치하기 (Jetson nano)
          • omo-r1mini-foxy 패키지 소개
          • Teleop 명령으로 조종하기
          • SLAM 해보기
          • SLAM 하기 - Mapping
          • SLAM 하기 - Navigation
      • [베타 버전] DC 컨버터 연결
Powered by GitBook
On this page
  • Dependency Package 설치
  • OMO_R1 패키지 설치
  • G2 Lidar 패키지 설치
  • ROS SLAM으로 맵 만들기
  • ROS SLAM Navigation 실행
  1. Manual
  2. OMO R1
  3. ROS 구동하기

SLAM 네비게이션

OMO-R1 PRO 버전은 G2 라이다가 설치되어 공급됩니다. 이 센서를 가지고 SLAM 네비게이션을 수행하는 방법을 정리하였습니다.

PreviousROS 원격 구동NextOMO R1mini

Last updated 3 years ago

Dependency Package 설치

SLAM에 필요한 패키지들을 설치합니다.

$ sudo apt-get install ros-melodic-tf ros-melodic-joy \
ros-melodic-teleop-twist-joy \
ros-melodic-teleop-twist-keyboard \
ros-melodic-laser-proc ros-melodic-rgbd-launch \
ros-melodic-depthimage-to-laserscan \
ros-melodic-rosserial-arduino ros-melodic-rosserial-python \
ros-melodic-rosserial-server ros-melodic-rosserial-client \
ros-melodic-rosserial-msgs ros-melodic-amcl \
ros-melodic-map-server ros-melodic-move-base \
ros-melodic-urdf ros-melodic-xacro ros-melodic-usb-cam \
ros-melodic-compressed-image-transport \
ros-melodic-rqt-image-view ros-melodic-gmapping \
ros-melodic-navigation ros-melodic-interactive-markers \
ros-melodic-ar-track-alvar ros-melodic-ar-track-alvar-msgs

OMO_R1 패키지 설치

$ cd ~/catkin_ws/src
$ git clone https://github.com/omorobot/omo_r1.git

빌드하기

$ cd ..
$ catkin_make 또는 catkin build

G2 Lidar 패키지 설치

catkin_ws의 src 폴더 안에 기존에 설치된 YD라이다 패키지가 있으면 삭제하고 YDLIDAR 공식 ROS지원 페이지에서 패키지를 다운로드하고 빌드합니다.

$ cd ~/catkin_ws/src
$ git clone https://github.com/YDLIDAR/ydlidar_ros.git
$ cd ..
$ catkin_make 또는 catkin build

ROS SLAM으로 맵 만들기

이제 좌측 상단의 roscore만 남기고 ctrl+c 키를 눌러 실행중인 패키지를 모두 종료합니다. 터미널을 하나 더 띄워서 ROBOT PC에 접속합니다.

좌측 상단부터 HOST PC의 roscore 우측 상단: ROBOT PC

먼저 ROBOT PC터미널(우측 상단)에서 로봇을 G2라이다와 함께 실행하기 위해 다음을 입력합니다.

$ roslaunch omo_r1_bringup omo_r1_robot_G2.launch

다른 ROBOT PC 터미널(우측 하단)에서 ROS SLAM 을 실행합니다.

$ roslaunch omo_r1_slam omo_r1_slam_G2.launch

이제 HOST PC 터미널에서 (좌측 하단) ROS SLAM rviz를 엽니다.

$ roslaunch omo_r1_slam omo_r1_slam_rviz.launch

이제 터미널은 다음과 같은 상태가 되고

RVIZ 환경에서 로봇이 나타난다.

HOST PC 터미널을 하나 더 띄우고 다음을 입력하여 키보드로 조작합니다.

$ roslaunch omo_r1_teleop omo_r1_teleop_key.launch

이제 키보드 명령으로 천천히 움직이면서 맵을 생성합니다.

너무 빠르게 움직이는 경우 아래 그림과 같이 맵이 이상하게 그려지거나 로봇의 위치가 엉뚱한곳으로 이동하게 되므로 주의하여 조작합니다.

어느정도 맵이 완성되면 HOST PC에서 teleop keyboard를 중단시키고

아래 명령어를 입력하여 map 파일을 저장합니다.

$ rosrun map_server map_saver -f map 

그러면 내 PC에 map.pgm 파일과 map.yaml 파일이 생성됩니다.

이제 이렇게 생성된 파일을 omo_r1/omo_r1_navigation/maps 에 복사합니다.

$ cp map.pgm map.yaml catkin_ws/src/omo_r1/omo_r1_navigation/maps

터미널에서 모든 패키지를 종료한다. roscore도 다시 시작해봅니다.

ROS SLAM Navigation 실행

다시 순서대로 robot을 실행하고

$ roslaunch omo_r1_bringup omo_r1_robot_G2.launch

HOST PC에서 omo_r1_navigation_G2.launch를 엽니다

$ roslaunch omo_r1_navigation omo_r1_navigation_G2.launch

또 HOST PC에서 navigation_rviz.launch를 엽니다.

$ roslaunch omo_r1_navigation omo_r1_navigation_rviz.launch

이제 RVIZ에 로봇과 맵이 나타납니다.

이제 상단 메뉴에서 2D Pose Estimate 버튼을 누르고 맵에서 로봇이 있을것으로 추정되는 위치와 방향으로 커서를 Drag 합니다.

다음으로 2D Nav Goal을 선택하여 로봇의 목표 위치와 방향을 설정합니다.

맵이 어느정도 일치하고 Planning이 가능하면 로봇이 이동하기 시작합니다.

catkin_ws의 src 폴더로 이동한 다음 의 코드를 git clone하여 복사합니다. 만약 기존에 다운로드하였다면 git pull 로 다시한번 최신버전으로 업데이트합니다.

https://github.com/omorobot/omo_r1.git
GitHub - YDLIDAR/ydlidar_ros: ydlidar ros packageGitHub
Logo
OMO R1 + G2 lidar