학습 환경 설정
이번 단계에서는 SLAM 학습을 위한 환경을 설정합니다. M2 Pro MacBook을 사용하므로, 필요한 소프트웨어를 설치하고 설정하는 과정입니다.
1. Homebrew 설치
Homebrew는 macOS에서 패키지를 설치하고 관리하는 데 유용한 패키지 관리자입니다. 먼저 Homebrew를 설치합니다.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2. ROS 설치
ROS (Robot Operating System)는 로봇 소프트웨어 개발을 위한 오픈 소스 프레임워크입니다. M2 Pro에서는 ROS Noetic을 설치하는 것이 적합합니다.
1. Homebrew를 통해 ROS 설치
brew tap osrf/ros2
brew install ros-noetic-desktop-full
2. ROS 환경 설정
echo "source /opt/ros/noetic/setup.bash" >> ~/.bash_profile
source ~/.bash_profile
3. Gazebo 설치
Gazebo는 로봇 시뮬레이션을 위한 강력한 도구입니다. Homebrew를 통해 설치합니다.
brew install gazebo
4. Python 설치 및 환경 설정
Python은 SLAM 알고리즘을 구현하는 데 사용됩니다. 기본적으로 macOS에는 Python이 설치되어 있지만, 필요한 라이브러리를 관리하기 위해 가상 환경을 설정합니다.
1. Python3 설치 확인 (필요시 Homebrew로 설치)
brew install python
2. 가상 환경 생성
python3 -m venv slam_env
3. 가상 환경 활성화
source slam_env/bin/activate
4. 필요한 Python 라이브러리 설치
pip install numpy scipy matplotlib opencv-python
5. TurtleBot3 설치
TurtleBot3 관련 패키지들을 Homebrew를 통해 설치하거나, 소스를 직접 다운로드하여 빌드할 수 있습니다.
1. TurtleBot3 소스 코드를 다운로드하고 빌드합니다.
mkdir -p ~/turtlebot3_ws/src
cd ~/turtlebot3_ws/src
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
cd ~/turtlebot3_ws
source /opt/ros/noetic/setup.bash
catkin_make
2. 환경 설정
echo "source ~/turtlebot3_ws/devel/setup.bash" >> ~/.bash_profile
source ~/.bash_profile
echo "export TURTLEBOT3_MODEL=burger" >> ~/.bash_profile
source ~/.bash_profile
6. ROS와 Gazebo 연동 테스트
설치한 소프트웨어가 정상적으로 동작하는지 확인합니다.
1. ROS 코어 실행
roscore &
2. Gazebo 빈 세계 실행
roslaunch gazebo_ros empty_world.launch
3. TurtleBot3 시뮬레이션 실행
roslaunch turtlebot3_gazebo turtlebot3_world.launch
4. SLAM 노드 실행
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping
5. RViz에서 결과 확인
roslaunch turtlebot3_slam turtlebot3_slam.launch
이 과정에서 문제가 발생하면 에러 메시지를 참고하여 필요한 조치를 취합니다. 환경 설정이 완료되면 다음 단계로 넘어갈 준비가 된 것입니다.
'-----ETC----- > SLAM' 카테고리의 다른 글
[SLAM] 6일차: Graph-Based SLAM 이론과 실습 (0) | 2024.06.04 |
---|---|
[SLAM] 5일차: Particle Filter SLAM 이론과 실습 (0) | 2024.06.03 |
[SLAM] 4일차: TurtleBot3를 이용한 ROS와 Gazebo를 활용한 SLAM 실습 (0) | 2024.06.03 |
[SLAM] 3일차: EKF-SLAM (Extended Kalman Filter SLAM) 이론과 실습 (0) | 2024.06.03 |
[SLAM] 1일차: SLAM 기본 개념 및 수학적 기초 (0) | 2024.06.03 |