https://jihong.tistory.com/661
rtabmap ros 연습
sudo apt install ros-humble-rtabmap-rosros2 launch realsense2_camera rs_launch.pyros2 launch rtabmap_launch rtabmap.launch.py rtabmap_args:="--delete_db_on_start" rgb_topic:=/camera/camera/color/image_raw depth_topic:=/camera/camera/depth/image_rect_raw ca
jihong.tistory.com
위에 이어서 작성
1. RealSense카메라 노드를 실행한다.
- ros2 launch : ros2의 launch파일을 실행하는 명령어
- realsense2_camera : ROS2의 패키지 이름.
- rs_launch.py : realsense 카메라 노드를 실행하는 python launch파일 이름
- ===> 즉, RealSense 카메라를 Ros2 환경에서 구동할때 사용하는 기본 명령어이다.
ros2 launch realsense2_camera rs_launch.py \
enable_gyro:=true \
enable_accel:=true \
unite_imu_method:=linear_interpolation
2. Ros2에서 RTAB-MAP을 실행.
- ros2 launch rtabmap_launch rtabmap.launch.py : RTAB-MAP 패키지의 launch파일 실행
- rtabmap_args:="--delete_db_on_start" : 시작할때 기존의 RTAP-MAP db파일을 삭제하고 새로 시작한다. ( 해당 옵션이 없으면, 기존 맵 데이터가 남아서 결과가 꼬일수도 있다. )
- rgb_topic:=/camera/camera/color/image_raw : RTAB-MAP에서 사용하는 RGB 이미지 토픽 설정
- camera_info_topic:=/camera/camera/depth/image_rect_raw : RTAB-Map에서 사용할 depth 이미지 토픽 설정
- camera_info_topic:=/camera/camera/color/camera_info : RGB 카메라 정보 토픽을 지정
- approx_sync:=True : RGB와 Depth 이미지를 Approximate Time Synchronization방식으로 동기화.
- Approximate Time Synchronization방식 : 조금 차이 나는 시간이라도, 충분히 비슷하면 자동으로 한쌍으로 묶어준다. 대부분의 실제 시스템에는 이것이 안정적이다.
- Exact 방식: 정확히 같은 timestamp의 메시지만 한쌍으로 묶어준다.
- ===> 실제 센서 구동시에 timestamp가 항상 100%일치하지 않기때문에 사용한다. 즉, True옵션을 사용하면, timestamp가 일정한 threshold이내에서만 차이가 난다면, 이를 무시하고 자동으로 RGB와 Depth를 자동으로 맞춰준다.
이렇게 한다면, 데이터 유실없이 안정적으로 SLAM이 돌아간다.
ros2 launch rtabmap_launch rtabmap.launch.py rtabmap_args:="--delete_db_on_start" rgb_topic:=/camera/camera/color/image_raw depth_topic:=/camera/camera/depth/image_rect_raw camera_info_topic:=/camera/camera/color/camera_info approx_sync:=True
3. ROS 2에서 좌표계 사이의 고정변환( static transform )을 퍼블리시할때 사용하는 명령어.
- ROS 2에서 제공하는 static transform 퍼블리셔 노드를 실행.
- 좌표계 간의 변환 관계를 한번한 broadcast하고 계속 유지 시켜줌.
ros2 run tf2_ros static_transform_publisher \
0 0 0 0 0 0 \
base_link \
camera_color_optical_frame
ros2 run tf2_ros static_transform_publisher \
0 0 0 -1.5708 0 -1.5708 \
base_link \
camera_color_optical_frame
4. 카메라 움직이며 지도 작성
5. file을 눌러서 3d맵으로 export한다.
rtabmap-databaseViewer ~/.ros/rtabmap.db


6.
- 만약에 보이는 축을 변경하고 싶다면, filters에서 Normals, Curvatures and Orientation 선택한다. 그리고 Transform: Rotate 선택한다. 2번째 사진은 x축을 90도 회전한것이다.
meshlab cloud.ply


'gazebo > SLAM' 카테고리의 다른 글
| pySLAM (1) | 2025.12.06 |
|---|---|
| rtabmap ros 연습 (0) | 2025.06.20 |
| Mono SLAM ( Monocular Simultaneous Localization and Mapping ) (0) | 2025.02.25 |
| SLAM 종류 (0) | 2025.02.24 |
| SLAM ( Simultaneous Localization and Mapping ) 이란? (0) | 2025.02.24 |