반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 운영체제 #working set #working set algorithm #file system
- turtlebot4
- python
- 데이터베이스 #정규화 #이상현상 #함수종속
- 프로그래머스
- Slam
- create3
- Gazebo
- rviz
- morai #자율주행 #데브코스 #planning&control #ros #ubuntu
- planning
- 데브코스
- Raspberry Pi
- 자율주행 #opencv #perception #control #제어 #인지
- Linux
- TOF
- 디지털시스템설계 #verilog #module #port #구조문
- ROS2
- pathplanning
- turtlebot
- ubuntu
- 운영체제 #page replacement algorithm
- control
- 자율주행
- ros #rviz #onedayproject #Lane Keeping #Lane Changing #차선 변경
- 자윯주행
- 프로그래머스 #데브코스 #자율주행
- ROS
- 인턴
- MORAI
Archives
쓰레기 개발자
Turtlebot4 navigation (nav2) 본문
SLAM으로 생성된 map을 이용하여 navigation을 할 것이다.
로봇이 자신의 위치를 인지하는것을 localization 이라고 한다. 우선 SLAM과 Localization의 차이를 본다면,
- SLAM : 로봇이 움직이면서 자신의 위치를 인지함과 동시에 map 생성도 한다. SLAM이 Simultaneous Localization and Mapping의 약자라는걸 생각해보면 된다.
- Localization : 위치를 인지하려면 이미 map이 생성 돼있어야한다. 따라서 아무리 많이 돌려도 map이 업데이트 되지 않는다.
Navigation을 하기 위해 ROS2 내부에 있는 패키지인 nav2를 사용할 것이다. nav2의 주요 기능으로는 다음과 같다.
- SLAM : 위 설명과 동일.
- Localization : 위 설명과 동일.
- Global Planning : start point부터 goal point까지 맵에 있는 장애물을 고려한 최적 경로 생성
- Local Planning : Global path를 따라가되, 동적인 장애물이 인식될 경우 실시간으로 감지하고 경로 수정
- Obstacle Avoidance : 로봇이 장애물과 충돌하지 않도록 회피하는 알고리즘 적용
- Recovery Behaviors : 길이 막혔을 때 회전하거나 후진 등을 하는 대체 행동 수행
nav2 적용
turtlebot4는 서술했듯이 raspberry pi 4를 사용한다. 따라서 Gazebo에서 실행을 하기엔 무리가 있다. 따라서 다음 명령어로 nav2 패키지를 실행한다.
ros2 launch turtlebot4_navigation nav_bringup.launch.py slam:=off localization:=true map:=<맵이름>.yaml
SLAM으로 생성된 map의 이름을 위 코드의 맵 이름에 넣는다. 예를 들어 내가 생성한 맵 이름은 0205 였으므로 0205.yaml로 넣어줬다.
nav2의 모든 노드가 실행되면 로컬 도커에서
ros2 launch turtlebot4_viz view_robot.launch.py
로 rviz 시각화를 해준다. 로컬 도커에서 하는 이유는 전에 썼던 글 참고.
https://dhfz1794.tistory.com/34
Turtlebot4로 SLAM + 로컬에서 시각화(Rviz)
회사의 Turtlebot4에는 라즈베리파이4와 Create3가 있다. 하지만 라즈베리파이4의 성능이 좋지 않아서 SLAM과 Turtlebot4 관련된 로봇 구동 노드들은 라즈베리파이4에서, Rviz 같은 시각화 툴과 Gazebo 같은
dhfz1794.tistory.com
rviz가 실행되고 터틀봇의 초기 위치와 heading 방향을 상단의 2D Pose Estimate로 설정하면 다음과 같이 현재 위치를 잡아준다.

그 후에 상단에 Nav2 Goal을 설정해주면 goal point가 설정되고, 목표 지점을 향해 path planning이 자동으로 된다. 다음 동영상과 같이 동적 장애물을 굉장히 가까운 거리에서 주었는데도 local path planning을 나름 잘하는 모습을 보여준다.
반응형
'인턴' 카테고리의 다른 글
Turtlebot4에 TOF 센서 연결하는법 - 2 (0) | 2025.02.27 |
---|---|
Turtlebot4에 TOF 센서 연결하는법 - 1 (0) | 2025.02.06 |
[Troubleshooting] Turtlebot4 fixed red light error (2) | 2025.02.05 |
Turtlebot4로 SLAM + 로컬에서 시각화(Rviz) (0) | 2025.01.26 |
Turtlebot4 설치부터 기본 세팅까지 (0) | 2025.01.18 |