Zeta Edu Ros2 Version Logo
latest

Robot Hardware and ROS 2 Installation

  • 하드웨어 스펙
    • 로봇의 구성요소
    • 주요 부품들
    • 블럭 다이어그램
    • 요약
  • 하드웨어 체크
    • 전제조건
    • 로봇의 구성요소
    • 1 배터리 표시기, 충전포트, 전원스위치
    • 2 스피커
      • 테스트
    • 3 카메라
    • 4 라이다
    • 5 모터 혹은 IMU
    • 요약
  • 로봇 조립
    • 전제조건
    • 로봇의 하단 부분 조립
    • 로봇의 중단 부분 조립
    • 로봇의 상단 부분 조립
    • 검증
    • 요약
  • 로봇 셋업
    • 전제조건
      • 1 로봇에 우분투 22.04 OS 설치
        • 1.1 PC에서
        • 1.2 로봇에서
      • 2 로봇 WiFi 설정하기
      • 2 로봇 openssh-server 설정하기
    • 요약
    • 다음 단계
  • PC 셋업
    • 전제조건
      • 1 Ubuntu USB 메모리 스틱 만들기
      • 2 PC에 Ubuntu 설치하기
      • 4 PC에서 로봇 ssh 연결
    • 요약
    • 다음 단계
  • Ubuntu (Debian 패키지)
    • 자료
    • 로케일 설정
    • 소스 설정
    • ROS 2 패키지 설치
    • 환경 설정
      • 설정 스크립트 소싱
    • 예제 시도
      • 대화형-수신자
    • 설치 후 다음 단계
    • ROS 1 브릿지 사용
    • 추가 RMW 구현 (선택 사항)
    • 문제 해결
    • 제거
  • 로봇 조립 경연대회
    • 대회 규칙
    • 점수 배정

ROS 2 CLI Tutorial

  • 설정
    • source setup
    • source 자동화 하기
    • 환경 변수 확인
    • 도메인 아이디 설정
    • DDS 설정
    • Summary
  • 터틀심과 rqt
    • turtlesim 설치
    • turtlesim 시작
    • turtlesim 사용해보기
    • rqt 설치
    • rqt 사용
    • spawn서비스 사용해보기
    • set_pen서비스 사용하기
    • Remapping
    • turtlesim 닫기
    • 정리
  • 노드 이해하기
    • 배경
      • 1 ROS 2 그래프
      • 2 ROS 2에서의 노드
    • 사전 준비
    • 작업
      • 1 ros2 run
      • 2 ros2 node list
        • 2.1 리매핑
      • 3 ros2 node info
    • 요약
    • 다음 단계
  • 토픽 이해하기
    • 배경
    • 사전 준비
    • 작업
      • 1 설정
      • 2 rqt_graph
      • 3 ros2 topic list
      • 4 ros2 topic echo
      • 5 ros2 topic info
      • 6 ros2 interface show
      • 7 ros2 topic pub
      • 8 ros2 topic hz
      • 9 정리
    • 요약
    • 다음 단계
  • 서비스 이해하기
    • 배경
    • 필수 준비물
    • 작업
      • 1 설정
      • 2 ros2 service list
      • 3 ros2 service type
        • 3.1 ros2 service list -t
      • 4 ros2 service find
      • 5 ros2 interface show
      • 6 ros2 service call
    • 요약
    • 다음 단계
    • 관련 콘텐츠
  • 매개변수 이해하기
    • 배경
    • 필수 준비물
    • 작업
      • 1 설정
      • 2 ros2 param list
      • 3 ros2 param get
      • 4 ros2 param set
      • 5 ros2 param dump
      • 6 ros2 param load
      • 7 노드 시작 시 매개변수 파일 로드
    • 요약
    • 다음 단계
  • 액션 이해하기
    • 배경 정보
    • 전제 조건
    • 작업
      • 1 설정
      • 2 액션 사용
      • 3 ros2 node info
      • 4 ros2 action list
        • 4.1 ros2 action list -t
      • 5 ros2 action info
      • 6 ros2 interface show
      • 7 ros2 action send_goal
    • 요약
    • 다음 단계
    • 관련 콘텐츠
  • rqt_console 를 사용하여 로그 보기
    • 배경 지식
    • 전제 조건
    • 작업
      • 1 설정
      • 2 rqt_console에서 메시지
      • 3 로거 레벨
        • 3.1 기본 로거 레벨 설정
    • 요약
  • 노드 실행
    • 배경 지식
    • 전제 조건
    • 작업
      • 런치 파일 실행
      • (선택 사항) Turtlesim 노드 제어
    • 요약
    • 다음 단계
  • 데이터 녹화 및 재생
    • 배경 지식
    • 전제 조건
    • 작업
      • 1 설정
      • 2 토픽 선택
      • 3 ros2 bag record
        • 3.1 단일 토픽 녹화
        • 3.2 여러 토픽 녹화
      • 4 ros2 bag info
      • 5 ros2 bag play
    • 요약
    • 다음 단계
    • 관련 콘텐츠
  • 로봇 구성요소의 역할 탐구
    • 목표
    • 과제 설명
    • 프레젠테이션 준비
    • 평가 기준 및 점수 배점
    • 제출 가이드라인
    • 결론

ROS 2 Client libraries Tutorial

  • colcon 을 사용하여 패키지 빌드하기
    • 배경
    • 전제 조건
      • colcon 설치
      • ROS 2 설치
    • 기초사항
      • 워크스페이스 생성
      • 일부 소스 추가
      • 환경 소스
      • 워크스페이스 빌드
      • 테스트 실행
      • 환경 소스
      • 데모 실행
    • 직접 패키지 생성하기
    • colcon_cd 설정하기
    • colcon 탭 완성 설정하기
    • 팁
  • 작업 공간 생성
    • 배경 지식
    • 전제 조건
    • 작업 내용
      • 1. ROS 2 환경 소스화
      • 2. 새 디렉터리 생성
      • 3. 샘플 리포지토리 복제
      • 4. 패키지 종속성 해결
      • 5. colcon으로 작업 공간 빌드
      • 6. 오버레이 소스화
      • 7. 오버레이 수정
    • 요약
    • 다음 단계
  • 패키지 만들기
    • 배경 지식
      • 1 ROS 2 패키지란 무엇인가요?
      • 2 ROS 2 패키지는 무엇으로 이루어져 있나요?
      • 3 작업 공간의 패키지
    • 전제 조건
    • 작업
      • 1 패키지 만들기
      • 2 패키지 빌드
      • 3 설정 파일 소스화
      • 4 패키지 사용
      • 5 패키지 내용 검사
      • 6 package.xml 사용자 정의
    • Summary
    • 다음 단계
  • 간단한 publisher/subscriber 작성 (C++)
    • 배경
    • 전제 조건
    • 작업
      • 1. 패키지 만들기
      • 2. 퍼블리셔 노드 작성
        • 2.1 코드 검토
        • 2.2 종속성 추가
        • 2.3 CMakeLists.txt
      • 3. 구독자 노드 작성
        • 3.1 코드 검토
        • 3.2 CMakeLists.txt
      • 4 빌드 및 실행
    • 요약
    • 다음 단계
    • 관련 콘텐츠
  • 간단한 publisher/subscriber 작성 (Python)
    • 배경 지식
    • 전제 조건
    • 작업
      • 1. 패키지 생성
      • 2. 퍼블리셔 노드 작성
        • 2.1. 코드 검토
        • 2.2. 종속성 추가
        • 2.3. 엔트리 포인트 추가
        • 2.4. setup.cfg 확인
      • 3 서브스크라이버 노드 작성
        • 3.1. 코드 검토
        • 3.2. 엔트리 포인트 추가
      • 4 빌드 및 실행
        • 요약
        • 다음 단계
        • 관련 콘텐츠
  • 간단한 service and client 작성 (C++)
    • 배경
    • 사전 준비 사항
    • 작업
      • 1 패키지 생성
        • 1.1 package.xml 업데이트
      • 2 서비스 노드 작성
        • 2.1 코드 분석
        • 2.2 실행 파일 추가
      • 3 클라이언트 노드 작성
        • 3.1 코드 분석
        • 3.2 실행 파일 추가
      • 4 빌드 및 실행
    • 요약
    • 다음 단계
    • 관련 콘텐츠
  • 간단한 service and client 작성 (Python)
    • 배경
    • 사전 준비 사항
    • 작업
      • 1 패키지 생성
        • 1.1 package.xml 업데이트
        • 1.2 setup.py 업데이트
      • 2 서비스 노드 작성
        • 2.1. 코드 검토
        • 2.2. 엔트리 포인트 추가
      • 3 클라이언트 노드 작성
        • 3.1 코드 살펴보기
        • 3.2 엔트리 포인트 추가
      • 4 빌드 및 실행
    • 요약
    • 다음 단계
    • 관련 컨텐츠
  • 커스텀 msg와 srv 파일 생성하기
    • 배경
    • 사전 준비 사항
    • 작업
      • 1 새 패키지 생성하기
      • 2 커스텀 정의 생성하기
        • 2.1 msg 정의
        • 2.2 srv 정의
      • 3 CMakeLists.txt
      • 4 package.xml
      • 5 tutorial_interfaces 패키지 빌드하기
      • 6 msg 및 srv 생성 확인하기
      • 7 새 인터페이스 테스트하기
        • 7.1 Num.msg 를 pub/sub으로 테스트하기
        • 7.2 AddThreeInts.srv 를 서비스/클라이언트와 테스트하기
    • 요약
    • 다음 단계
  • 사용자 정의 인터페이스 구현
    • 배경 지식
    • 전제 조건
    • 작업
      • 1 패키지 생성
      • 2 msg 파일 생성
        • 2.1 msg 파일 빌드
        • 2.2 (추가) 여러 인터페이스 설정
      • 3 동일 패키지에서 인터페이스 사용
        • 3.1 코드 설명
        • 3.2 퍼블리셔 빌드
        • 3.3 인터페이스와 연결
      • 4 실행해 보기
      • 5 (추가) 기존 인터페이스 정의 사용
    • 요약
    • 다음 단계
    • 관련 컨텐츠
  • 클래스에서 매개변수 사용하기 (C++)
    • 배경
    • 전제 조건
    • 작업
      • 1 패키지 생성
        • 1.1 package.xml 업데이트
      • 2 C++ 노드 작성
        • 2.1 코드 검토
        • 2.2 실행 파일 추가
      • 3 빌드 및 실행
        • 3.1 콘솔을 통한 변경
        • 3.2 런치 파일을 통한 변경
    • 요약
    • 다음 단계
  • 클래스에서 매개변수 사용하기 (Python)
    • 배경
    • 전제 조건
    • 작업
      • 1 패키지 생성
        • 1.1 package.xml 업데이트
      • 2. 파이썬 노드 작성
        • 2.1 코드 검토
        • 2.2 엔트리 포인트 추가
      • 3 빌드 및 실행
        • 3.1 콘솔을 통한 변경
        • 3.2 런치 파일을 통한 변경
    • 요약
    • 다음 단계
  • ros2doctor 를 사용하여 문제 식별
    • 배경
    • 필수 조건
    • 작업
      • 1 설정 확인
      • 2 시스템 확인
      • 3 전체 보고서 얻기
    • 요약
    • 관련 콘텐츠
    • 다음 단계
  • ROS 기초 개별 미션
    • 목표
    • 과제 설명
    • PPT 형식
    • 평가 기준
    • 결론

ROS 2 Intermediate

  • rosdep를 사용하여 종속성 관리
    • rosdep가 무엇인가요?
    • package.xml 파일에 대한 간략한 설명
      • <depend>
      • <build_depend>
      • <build_export_depend>
      • <exec_depend>
      • <test_depend>
    • rosdep가 어떻게 작동하나요?
    • 내 package.xml에 어떤 키를 넣어야 하는지 어떻게 알 수 있나요?
    • 만약 내 라이브러리가 rosdistro에 없다면 어떻게 해야 하나요?
    • rosdep 도구를 어떻게 사용하나요?
      • rosdep 설치
      • rosdep 작동
  • 액션 생성하기
    • 배경
    • 사전 준비 사항
    • 작업
      • 1 액션 정의하기
      • 2 액션 빌드하기
    • 요약
    • 다음 단계
    • 관련 내용
  • 액션 서버 및 클라이언트 작성하기 (C++)
    • 배경 정보
    • 전제 조건
    • 작업
      • 1 액션 서버를 위한 action_tutorials_cpp 패키지 생성
        • 1.1 action_tutorials_cpp 패키지 생성
        • 1.2 가시성 제어 추가
      • 2 액션 서버 작성
        • 2.1 액션 서버 코드 작성
        • 2.2 액션 서버 컴파일
        • 2.3 액션 서버 실행
      • 3 액션 클라이언트 작성
        • 3.1 액션 클라이언트 코드 작성
        • 3.2 액션 클라이언트 컴파일
        • 3.3 액션 클라이언트 실행
    • 요약
    • 관련 컨텐츠
  • 액션 서버 및 클라이언트 작성하기 (Python)
    • 배경
    • 필수 사항
    • 작업
      • 1 액션 서버 작성
        • 1.2 피드백 게시
      • 2 액션 클라이언트 작성
        • 2.2 피드백 받기
    • 요약
    • 관련 콘텐츠
  • Launch
    • 런치파일 생성하기
      • 필수 사항
      • 배경
      • 작업
        • 1 설정
        • 2 런치 파일 작성
        • 3 ros2 launch
        • 4 rqt_graph를 사용하여 시스템 검토
      • 요약
    • ROS 2 패키지에 런치 파일 통합하기
      • 전제 조건
      • 배경 지식
      • 작업
        • 1 패키지 생성
        • 2 런치 파일을 저장할 구조 생성
        • 3 런치 파일 작성
        • 4 런치 파일 빌드 및 실행
      • 문서화
    • 대체 사용법 익히기
      • 배경 지식
      • 전제 조건
      • 대체 사용법 사용하기
        • 1 패키지 생성 및 설정
        • 2 상위 런치 파일
        • 3 대체 사용법 예제 런치 파일
        • 4 패키지 빌드
      • 예제 실행
      • 런치 인수 수정
      • 문서화
      • 요약
    • 이벤트 핸들러 사용
      • 배경 정보
      • 전제 조건
      • 이벤트 핸들러 사용
        • 1. 이벤트 핸들러 예제 런치 파일
      • 패키지 빌드
      • 예제 실행
      • 문서화
      • 요약
    • 대규모 프로젝트 관리
      • 배경
      • 전제 조건
      • 소개
      • 런치 파일 작성
        • 1 최상위 구성
        • 2 매개변수
        • 3 네임스페이스
        • 4 노드 재사용
        • 5 매개변수 오버라이드
        • 6 리매핑
        • 7 구성 파일
        • 8 환경 변수
      • 런치 파일 실행
        • 1. setup.py 업데이트
        • 2. 빌드 및 실행
      • 요약
  • tf2
    • tf2 소개
      • 데모 설치
      • 데모 실행
      • 무슨 일이 일어나고 있나요?
      • tf2 도구
        • 1. view_frames 사용
        • 2. tf2_echo 사용
      • rviz2 및 tf2
    • tf2 정적 브로드캐스터 작성 (Python)
      • 배경
      • 필수 준비물
      • 작업
        • 1 패키지 생성
        • 2 정적 브로드캐스터 노드 작성
        • 3 빌드
        • 4 실행
      • 정적 변환을 게시하는 올바른 방법
      • 요약
    • tf2 정적 브로드캐스터 작성 (C++)
      • 배경
      • 필수 준비물
      • 작업
        • 1 패키지 생성
        • 2. 정적 변환자 노드 작성
        • 3. 빌드
        • 4. 실행
      • 정적 변환을 게시하는 올바른 방법
      • 요약
    • 브로드캐스터 작성하기 (Python)
      • 배경
      • 필수 준비 사항
      • 작업
        • 1 브로드캐스터 노드 작성
        • 2 런치 파일 작성
        • 3 빌드
        • 4 실행
      • 요약
    • 브로드캐스터 작성하기 (C++)
      • 배경
      • 필수 준비 사항
      • 작업
        • 1 브로드캐스터 노드 작성
        • 2 런치 파일 작성
        • 3 빌드
        • 4 실행
    • 리스너 작성하기 (Python)
      • 배경
      • 전제 조건
      • 작업
        • 1. 리스너 노드 작성
        • 2. 런치 파일 업데이트
        • 3. 빌드
        • 4. 실행
      • 요약
    • 리스너 작성하기 (C++)
      • 배경
      • 전제 조건
      • 작업
        • 1. 리스너 노드 작성
        • 2. 런치 파일 업데이트
        • 3. 빌드
        • 4. 실행
      • 요약
    • 프레임 추가 (Python)
      • 배경
      • tf2 트리
      • 작업
        • 1 고정 프레임 브로드캐스터 작성
        • 2. 동적 프레임 브로드캐스터 작성
      • 요약
    • 프레임 추가 (C++)
      • 배경
      • tf2 트리
      • 작업
        • 1 고정 프레임 브로드캐스터 작성
        • 2 동적 프레임 브로드캐스터 작성
      • 요약
    • 시간 사용하기 (Python)
      • 배경 정보
      • 작업
        • 1 리스너 노드 업데이트
        • 2 리스너 노드 수정
        • 3 결과 확인
      • 요약
    • 시간 사용하기 (C++)
      • 배경 정보
      • 작업
        • 1 tf2와 시간
        • 2 변환 대기
        • 3 결과 확인
      • 요약
    • 시간을 여행하다 (Python)
      • 배경 정보
      • 시간 여행
      • lookup_transform()에 대한 고급 API
      • 결과 확인
      • 요약
    • 시간을 여행하다 (C++)
      • 배경 정보
      • 시간 여행
      • lookupTransform()에 대한 고급 API
      • 결과 확인
      • 요약
    • 디버깅
      • 배경 정보
      • 디버깅 예제
        • 1 예제 설정 및 시작
        • 2 tf2 요청 찾기
        • 3 프레임 확인
        • 4 타임스탬프 확인
      • 요약
    • Quaternion fundamentals
      • 배경
      • 필수 전제 조건
      • 쿼터니언의 구성 요소
      • ROS 2에서의 쿼터니언 유형
      • 쿼터니언 연산
        • 1 롤(roll), 피치(pitch), 요(yaw)로 생각한 다음 쿼터니언으로 변환하기
        • 2 쿼터니언 회전 적용
        • 3 쿼터니언 반전
        • 4 상대 회전
      • 요약
    • tf2_ros::MessageFilter로 stamped 데이터 유형 사용하기
      • 배경
      • 작업
        • 1 PointStamped 메시지 브로드캐스터 노드 작성
        • 2 메시지 필터/리스너 노드 작성
        • 3 실행
      • 요약
    • 작업 공간 설정
    • tf2 학습
    • tf2 디버깅
    • tf2와 센서 메시지 사용
  • ROS 중급 개별 미션
    • 목표
    • 과제 설명
    • PPT 형식
    • 평가 기준
    • 결론

Zeta2 Robot Packages

  • zeta2 bringup
    • 전제조건
      • 1 라이다 세팅
      • 2 zeta2_bringup 패키지 설치
    • 요약
    • 다음 단계
  • zeta2 autonomous
    • 전제조건
      • 1 필요한 패키지들 설치
      • 2 slam tool box 매핑
      • 3 cartographer 매핑
      • 4 navigation2 실행
    • 요약
    • 다음 단계

Navigation2 Packages

  • Navigation2 Start
    • 전제조건
      • 1 navigation2 를 위한 로봇 셋업
        • 1.1 TF
        • 1.2 Odometry(odom)
        • 1.2.1 zeta2 로봇에서의 odom
        • 1.3 Sensor
        • 일반적인 센서 메시지
        • 매핑과 로컬라이제이션
        • Costmap 2D Overview
        • 1.4 Footprint
        • 1.5 Navigation Plugins
        • 플래너와 컨트롤러 서버
    • 요약
    • 다음 단계
  • Navigation2 플래너
    • 전제조건
      • 1 Planners 의 종류
      • 2 Planners 기본 사용법
        • 매개변수
        • 기본 플러그인
        • Example
    • 요약
    • 다음 단계
  • NavFn Planner
    • 매개변수
    • 예시
      • 다음 단계
  • Smac 플래너
    • 제공되는 플러그인
      • Smac 2D 플래너
        • 매개 변수
        • Example
      • Smac Hybrid-A* Planner
        • 매개변수
        • Example
      • Smac State Lattice Planner
        • 매개변수
        • Example
    • 설명
      • 다음 단계
  • Theta Star Planner 설정
    • 매개변수
      • Example
        • 다음 단계
  • Navigation2 컨트롤러
    • 전제조건
      • 1 Controllers 의 종류
      • 2 Controllers 기본 사용법
        • 매개변수
        • 제공된 플러그인
        • 기본 플러그인
        • Example
    • 요약
    • 다음 단계
  • DWB 컨트롤러
    • 컨트롤러
      • DWB 컨트롤러
        • 매개변수
      • XYTheta 이터레이터
        • 매개변수
      • 운동학 매개변수
        • 매개변수
      • Publisher
        • 매개변수
    • 플러그인
      • LimitedAccelGenerator
        • 매개변수
      • StandardTrajectoryGenerator
        • 매개변수
    • 트라젝토리 크리틱
      • BaseObstacleCritic
        • 매개변수
      • GoalAlignCritic
        • 매개변수
      • GoalDistCritic
        • 매개변수
      • ObstacleFootprintCritic
        • 매개변수
      • OscillationCritic
        • 매개변수
      • PathAlignCritic
        • 매개변수
      • PathDistCritic
        • 매개변수
      • PreferForwardCritic
        • 매개변수
      • RotateToGoalCritic
        • 매개변수
      • TwirlingCritic
        • 매개변수
      • 다음 단계
  • Regulated Pure Pursuit
    • 규제된 순수 추적 매개변수
    • Example
  • 모델 예측적 경로 적분 컨트롤러
    • MPPI 파라미터
      • Trajectory Visualization
      • Path Handler
      • Ackermann Motion Model
      • Constraint Critic
      • Goal Angle Critic
      • Goal Critic
      • Obstacles Critic
      • Cost Critic
      • Path Align Critic
      • Path Angle Critic
      • Path Follow Critic
      • Prefer Forward Critic
      • Twirling Critic
    • Example
    • 사용자에게 알림
      • 일반적인 지혜의 말씀
      • 예측 지폐, 코스트맵 크기 및 오프셋
      • 장애물, 인플레이션 레이어 및 경로 추적
  • Rotation Shim Controller
    • Rotation Shim Controller 매개변수
    • Example
  • Graceful Controller
    • Graceful Controller 매개변수
    • Example
  • Simple Commander API
    • 개요
    • Commander API
    • 코스트맵 API
    • 풋프린트 충돌 체크 API
    • 예제와 데모
      • example_nav_to_pose.py
      • example_nav_through_poses.py
  • Navigation2 Conclusion
    • 전제조건
      • 1 플래너
      • 2 컨트롤러
      • 3 smoother(스무더)
    • 요약
  • 네비게이션 미션
    • 목표
    • 과제 설명
    • PPT 형식
    • 평가 기준
    • 결론
  • 미래의 로봇 시나리오 프로젝트
    • 목표
    • 과제 설명
    • PPT 형식
    • 평가 기준
    • 결론
Zeta Edu Ros2 Version
  • Navigation2 Conclusion
  • Edit on GitHub

Navigation2 Conclusion

목표: navigation2 에 대한 결론

전제조건

앞의 과정을 다 끝내고 와야 합니다. ROS2에 대한 기본 개념이 없으면 이해하기 힘들 수 있습니다.

우리는 기존에 zeta2_bringup 패키지의 zeta2_bringup.launch.py 파일을 실행하는 것으로 로봇이 기본적인 모든 구성 요소들을 불러올 수 있었습니다.

다양한 navigation 의 planner 와 controller 또한 알아 봤습니다.

1 플래너

다양한 플래너들을 공부했습니다. 지금 이 로봇에 완벽하게 최적화가 되어있지는 않을 것입니다.

앞으로 다른 로봇을 자율 주행하기 위해서라면 다양한 플래너 들 중에서 상황에 맞는 플래너를 선택하고 그에 맞는 값들을 잘 선정해야 할 것입니다.

2 컨트롤러

다양한 컨트롤러들을 공부했습니다. 지금 이 로봇에 완벽하게 최적화가 되어있지는 않을 것입니다.

앞으로 다른 로봇을 자율 주행하기 위해서라면 다양한 컨트롤러 들 중에서 상황에 맞는 컨트롤러를 선택하고 그에 맞는 값들을 잘 선정해야 할 것입니다.

3 smoother(스무더)

navigation2의 스무더는 플래너가 생성한 경로를 미세하게 조정하고 개선하는 역할을 합니다.

이는 로봇이 부드럽고 연속적인 경로를 따르고, 갑작스러운 움직임을 최소화하며 전체적인 내비게이션 성능을 향상시킵니다.

하지만 이런 작은 로봇 같은 경우에는 오히려 스무더가 있으니 계산량도 늘어나고 원하는 결과가 나오지 않을 수 있습니다.

체험해보고 싶다면 zeta2_navigation_smoother.launch.py 예제도 실행해 볼 수 있습니다.

자세한 내용은 smoother server 의 내용을 참고하시길 바랍니다.

요약

navigation2 를 사용하기 전에

먼저 어떤 로봇인지 로봇의 형태나, 로봇의 목적, 로봇의 사양을 선정하고 navigation2 에 사용될

planner 와 controller, smoother 까지 잘 선정하고 테스트 해보면 자신의 로봇에 맞는 자율주행을 개발할 수 있을 것입니다.

Previous Next

© Copyright . Revision bf63d301.

Built with Sphinx using a theme provided by Read the Docs.