ROS2와 Gazebo Sim Harmonic을 이용한 아커만 조향 차량 시뮬레이션
이 프로젝트는 아커만 조향 기능을 갖춘 맞춤형 차량의 시뮬레이션을 특징으로 하며, ROS2와 Gazebo Sim Harmonic 환경을 사용하여 개발되었습니다. 이 모델은 자율 운행을 위한 다양한 센서와 내비게이션 도구를 통합하여, 이 시뮬레이션 프레임워크에서 아커만 조향 차량을 구현한 최초 사례 중 하나입니다.
| 3D 라이다 포인트 클라우드 시각화 | 창고 환경 모델 |
| ----- | ----- |
|
|
|
이 프로젝트가 마음에 드신다면, 응원의 표시로 ⭐를 눌러주세요!
목차
- ROS2와 Gazebo Sim Harmonic을 이용한 아커만 조향 차량 시뮬레이션
- 특징
- 1 아커만 조향
- 2 ROS2 통신
- 3 센서
- 4 내비게이션
- 5 외부 조이스틱을 이용한 수동 제어
- 6 시각화
- 필수 조건
- 로컬 설치
- 도커 설치
- 사용법
- 1 기본 시뮬레이션 및 수동 제어
- 2 SLAM 동시 위치추정 및 지도작성
- 3 Nav2를 이용한 내비게이션
- 향후 작업
- 갤러리
- TF 트리
- 별 기록
특징
1. 아커만 조향
- 정확한 조향성을 위한 현실적인 아커만 조향 역학을 적용한 맞춤형 차량 모델입니다.
2. ROS2 통신
- 모든 센서 데이터 및 제어 신호는 원활한 상호 운용성을 위해 ROS2 생태계에 완전히 통합되어 있습니다.
3. 센서
- IMU: 방향과 각속도를 제공합니다.
- 오도메트리: 정확한 차량 상태 피드백을 보장합니다.
- LiDAR: 장애물 감지 및 환경 스캔을 위해 장착되어 있습니다. 고급 인식 작업을 위한 3D 포인트 클라우드 생성을 지원합니다.
- 카메라:
- 전방
- 후방
- 좌측
- 우측
saye_bringup/config/ros_gz_bridge.yaml 파일 내 관련 카메라 섹션 앞의 #를 제거하여 활성화하세요 (예: /camera/left_raw, /camera/right_raw, /camera/rear_raw).4. 내비게이션
- Nav2 스택과 통합되어 자율 내비게이션을 지원합니다.
- 향상된 위치 정확도를 위한 AMCL(Adaptive Monte Carlo Localization) 사용.
- 실시간 맵핑과 환경 인식을 위한 SLAM 기술 구현.
- 최적화된 내비게이션 성능을 위한 세밀한 파라미터 조정.
5. 수동 제어 (외부 조이스틱 사용)
- 시뮬레이션 환경에서 조이스틱 기반 수동 제어를 지원하여 사용자가 차량 움직임을 인터랙티브하게 테스트할 수 있습니다.
6. 시각화
- RViz2에서 전체 모델 및 센서 데이터 시각화를 제공하여 로봇 상태 및 환경 피드백에 대한 인사이트를 제공합니다.
요구 사항
- ROS2 (Humble)
- Gazebo Sim Harmonic
- RViz2
- Nav2
로컬 설치
- Gazebo Harmonic 및 ROS (ros_gz) 설치가 되어 있는지 확인하세요:
sudo apt-get install ros-${ROS_DISTRO}-ros-gzsudo apt-get install ros-humble-ros-gzharmonic (휴믈 버전만 해당)Gazebo와 ROS 설치에 대한 자세한 내용: 링크
- 저장소 복제:
mkdir -p ackermann_sim/src && cd ackermann_sim/srcgit clone https://github.com/alitekes1/ackermann-vehicle-gzsim-ros2cd ..
- 프로젝트 빌드:
colcon build && source install/setup.bash
- 환경 변수 설정:
bash
# Set environment variables for current session
export GZ_SIM_RESOURCE_PATH=$GZ_SIM_RESOURCE_PATH:/your/path/ackermann_sim/src/ackermann-vehicle-gzsim-ros2/
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/your/path/ackermann_sim/src/ackermann-vehicle-gzsim-ros2/
` 영구 설정을 위해:
이러한 환경 변수를 영구적으로 설정하려면,
.bashrc 파일에 추가하세요:
`bash
# Add environment variables to .bashrc
echo 'export GZ_SIM_RESOURCE_PATH=$GZ_SIM_RESOURCE_PATH:/your/path/ackermann_sim/src/ackermann-vehicle-gzsim-ros2/' >> ~/.bashrc
echo 'export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/your/path/ackermann_sim/src/ackermann-vehicle-gzsim-ros2/' >> ~/.bashrc
# Apply changes
source ~/.bashrc
`
> 참고: /your/path/를 실제 설치 경로로 교체하세요.Docker 설치
Docker를 사용하여 시뮬레이션을 실행할 수도 있으며, 이는 다양한 시스템에서 일관된 환경을 보장합니다.
사전 요구 사항
- Docker
- NVIDIA 컨테이너 툴킷 (GPU 지원용)
Docker로 실행하는 단계
- 저장소를 클론합니다:
`bash
mkdir -p ackermann_sim/src && cd ackermann_sim/src
git clone https://github.com/alitekes1/ackermann-vehicle-gzsim-ros2
cd ackermann-vehicle-gzsim-ros2
`
- Docker 컨테이너 빌드 및 실행:
`bash
docker run -it \
--name ackermann_sim \
--hostname ackermann_sim \
--env="DISPLAY=$DISPLAY" \
--env="QT_X11_NO_MITSHM=1" \
--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
--privileged alitekes1/ackermann_sim:latest
`
- 동일한 컨테이너에 추가 터미널을 원할 경우
`bash
docker exec -it ackermann_sim bash
`
참고: 컨테이너 내부에서는 시뮬레이션 명령어를 정상적으로 실행할 수 있습니다.
사용법
1. 기본 시뮬레이션 및 수동 제어
- 시뮬레이션 시작:
`bash
ros2 launch saye_bringup saye_spawn.launch.py
`
- 제어차:
`bash
ros2 run teleop_twist_keyboard teleop_twist_keyboard
`2. SLAM (동시 위치 추정 및 지도 작성)
- 매핑을 위해 SLAM Toolbox를 실행하려면 시뮬레이션을 시작한 후 다음을 실행합니다:
`bash
ros2 launch saye_bringup slam.launch.py
`

3. Nav2를 이용한 내비게이션
- Nav2 스택을 사용하여 자율 내비게이션 시뮬레이션을 실행하려면, 시뮬레이션 시작 후 다음 명령을 실행하세요:
`bash
ros2 launch saye_bringup navigation_bringup.launch.py
``

참고: 위 유튜브 동영상은 4배속으로 재생됩니다. 이미지를 클릭하여 동영상에 접근할 수 있습니다.
향후 작업
- 3D SLAM 지원:
- 고급 DRL 알고리즘을 사용하여 차량이 복잡한 시나리오를 자율적으로 처리하도록 학습합니다.
- 향상된 기능:
- 추가 센서 구성 및 내비게이션 전략을 탐색합니다.
- 3D 위치 추적과 Nav2 통합
- AMCL(2D) 대신 더 정확하고 견고한 알고리즘 구현.
갤러리
3D LiDAR 포인트 클라우드 & 환경
| 3D LiDAR 포인트 클라우드 시각화 | 창고 환경 모델 |
| ----------------------------------------------------------------- | --------------------------------------------------------------- |
|
|
|
차량 및 내비게이션
| Gazebo 시뮬레이터 하모닉 | RViz2 |
| --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| |
|
|
|
|
|
|
|
TF 트리

스타 이력
--- Tranlated By Open Ai Tx | Last indexed: 2026-05-13 ---