[ROS2] neuronbot2 환경구성

TaerinLog·2025년 10월 1일

neuronbot2

  • ROS2를 완벽하게 지원하며 LiDAR, 임베디드 컴퓨터(Jetson 등), 그리고 다양한 센서를 통합하여 SLAM 및 내비게이션 개발에 최적화된 ADLINK의 자율 이동 로봇 개발 플랫폼

neuronbot2 시뮬레이션 환경 구성

⚠️주의 : neuronbot2를 사용하지 않고 독자적인 환경에서 개발한다면 cartographer와 slam_toolbox 설치가 필요

  • neuronbot2_slam/package.xml에 의존성 명시가 되어 있어 따로 설치 하지 않아도 사용 가능
<depend>cartographer_ros</depend>
<depend>slam_toolbox</depend>

1. ROS2 개발 필수 도구 설치

sudo apt update && sudo apt install -y \
  build-essential \
  cmake \
  git \
  libbullet-dev \
  python3-colcon-common-extensions \
  python3-flake8 \
  python3-pip \
  python3-pytest-cov \
  python3-rosdep \
  python3-setuptools \
  python3-vcstool \
  openssh-server \
  wget

2. NeuronBot2 소스 코드 클론 및 워크스페이스 준비

# 1. 워크스페이스 디렉토리 생성 및 이동
mkdir -p ~/neuronbot2_ros2_ws/src
cd ~/neuronbot2_ros2_ws/

# 2. 패키지 목록 파일 (.repos) 다운로드
wget https://raw.githubusercontent.com/Adlink-ROS/neuronbot2_ros2.repos/humble/neuronbot2_ros2.repos

# 3. .repos 파일을 기반으로 모든 소스 코드 일괄 클론
vcs import src < neuronbot2_ros2.repos

3. 패키지 종속성 설치

cd ~/neuronbot2_ros2_ws/

# 1. ROS 2 환경 설정
source /opt/ros/humble/setup.bash

# 2. 종속성 정보 업데이트 및 설치
rosdep update
rosdep install --from-paths src --ignore-src -r -y --rosdistro humble

4. 실제 로봇용 USB 장치 초기화 (시뮬레이션 시 건너뛰기)

  • ⚠️주의 : 실제 NeuronBot2 하드웨어를 사용하는 경우에만 실행, 시뮬레이션만 한다면 건너뜀
  • 로봇의 ttyUSB 노드 권한 및 설정을 초기화
cd ~/neuronbot2_ros2_ws/src/neuronbot2/neuronbot2_tools/neuronbot2_init/
sudo ./neuronbot2_init.sh

5. 워크스페이스 빌드

cd ~/neuronbot2_ros2_ws/

# 1. ROS 2 환경 설정 재확인
source /opt/ros/humble/setup.bash

# 2. 패키지 빌드 (Release 모드로 최적화)
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

# 3. 빌드된 워크스페이스 환경 설정 적용
source ~/neuronbot2_ros2_ws/install/local_setup.bash

gedit ~/.bashrc
export GAZEBO_RESOURCE_PATH=/usr/share/gazebo-11


NeuronBot2 주요 ROS2 패키지 폴더 역할 및 동작 방식

1. neuronbot2_description

  • 로봇의 물리적 구조와 센서 정보를 정의

2. neuronbot2_bringup

  • 실제 NeuronBot2 하드웨어를 구동
    ros2 launch neuronbot2_bringup bringup_launch.py

3. neuronbot2_gazebo

  • 가상 환경(시뮬레이션)에서 NeuronBot2를 실행
    ros2 launch neuronbot2_gazebo neuronbot2_world.launch.py world_model:=mememan_world.model
  • 가상환경에서 gazebo 로봇 제어
    ros2 run teleop_twist_keyboard teleop_twist_keyboard

4. neuronbot2_slam

  • 지도 생성(SLAM)
    • Gmapping
      ros2 launch neuronbot2_slam gmapping_launch.py open_rviz:=true
    • Slam_toolbox
      ros2 launch neuronbot2_slam slam_toolbox_launch.py open_rviz:=true
    • Cartographer
      ros2 launch neuronbot2_slam cartographer_launch.py open_rviz:=true

5. neuronbot2_nav

  • ROS 2 Navigation Stack(Nav2)을 실행
  • 시뮬레이션 환경에서 사용할 경우 use_sim_time:=True 설정이 필요
    ros2 launch neuronbot2_nav localization_launch.py use_sim_time:=true
profile
taerin

0개의 댓글