본문 바로가기
Robotics AI

[Mac M1] ROS2 + Gazebo 설치하기

by 3n952 2024. 4. 2.

로봇 시뮬레이션을 위해 ROS2와 Gazebo를 다운받으려는데 자꾸 오류가 났다.

UTM으로 ubuntu 22.04버전을 다운 받아 가상 머신에서 docker로 ROS2를 실행해 보았으나,

Gazebo를 설치하고 실행하는 과정에서 계속 오류가 났었다..

ARM chip에서 ubuntu22.04와 gazebo의 호환성에서 발생한 것 같은데 확실하진 않다.

 

외않데..?

 

그래서 그냥 로컬에 직접 설치하여 이를 해결했다.

이번 포스팅에서는 Mac M1칩 환경에서 ROS2를 로컬에 직접 설치하는 방법에 대해 소개한다.

설치 단계는 크게 다음과 같다. 

1. homebrew installation
2. conda environment installation
3. ROS2 installation using Robostack
4. gazebo installation

 

 

1. Install Homebrew 

Homebrew는 Mac OS에서 소프트웨어의 설치 및 업데이트에 용이하고 이를 통해 프로그래밍 언어, 라이브러리 등을 쉽게 설치할 수 있게 하는 패키지매니지 tool이다. 

더욱이 homebrew는 Apple(또는 Linux)에서 제공하지 않는 유용한 패키지 관리자를 설치한다는 점에서 유용하게 쓰인다.

 

우선 터미널 창을 열어 다음 커맨드를 실행한다.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

 

이를 통해 homebrew가 설치된다.

homebrew 메인 페이지에 그대로 쓰여있어 이를 복사+붙여 넣기 해도 된다.

https://brew.sh/

 

Homebrew

The Missing Package Manager for macOS (or Linux).

brew.sh

 

만약 터미널 창에 Next step란에 Run ~~ Commands in your terminal이라고 뜨면 그걸 그대로 복붙 해서 터미널에서 실행하면 된다.

그 후 터미널에 다음 커맨드를 실행한다.

brew doctor

 

이를 통해 brew를 정상적으로 작동할 수 있는지 판단해 준다. (의사처럼 진단한다 해서 doctor인 것 같다..)

 

2. Install conda environment

ROS2 실행을 위한 conda 환경을 설정해주어야 한다.

Anaconda 보다 가벼운 Miniconda나 Miniforge를 사용하는 것을 추천한다.

 

Mac m1 환경에서 Miniconda를 설치하는 방법은 아래 사이트에서 친절하게 설명해 주기 때문에 그대로 따라 하기만 하면 된다.

(주의: 아래 그림처럼 'Mac OS'를 선택했는지 확인할 것. )

https://docs.anaconda.com/free/miniconda/index.html

 

Miniconda — Anaconda documentation

These three commands quickly and quietly install the latest 64-bit version of the installer and then clean up after themselves. To install a different version or architecture of Miniconda for Windows, change the name of the .exe installer in the curl comma

docs.anaconda.com

 

conda가 정상적으로 설치되어 실행된다면 터미널 창에 줄마다 맨 앞에 '(base)'라는 문구가 나온다.

왼쪽 -> 오른쪽 (base)가 생겼다

 

3. Install ROS2 using Robostack

Robostack 홈페이지에 다음과 같이 설명되어 있다.

Welcome to RoboStack - a bundling of the Robot Operating System (ROS) by Open Robotics for Linux, Mac and Windows using the Conda package manager. We provide ROS packages for ROS1 Noetic and ROS2 Humble (as well as unsupported Melodic/Foxy/Galactic packages), as well as a variety of ROS related plugins for Jupyter notebooks.

 

다양한 OS platform에서 제공되며 Conda 환경에서 쉽게 ROS를 실행할 수 있게 한다고 한다.

 

Conda가 설치되었다면, 아래의 코드 블록을 실행한다.

conda install mamba -c conda-forge

 

다음과 같은 주의사항이 있다고 한다. 아마 여기서 오류가 난다면 이와 관련된 오류가 될 것이다.

 

Mamba를 설치했다면 Conda 가상환경을 만들어주자.

# ex) conda create -n robot_env
conda create -n "가상환경 이름"

 

가상환경 설치가 끝났다면 설치된 가상환경을 활성화시켜 주자.

# ex) conda activate robot_env
conda activate "앞에서 지은 가상환경 이름"

 

이렇게 해주면 앞에 있던 '(base)'가 '(가상환경 이름)'으로 바뀔 것이다. 가상환경을 잘 활성화시켰다는 의미!

그 후 conda environment configuration에 conda-forge와 robostack 채널을 추가하고, default 채널은 지워줘야 한다.

이때 주의할 것은 가상환경이 잘 활성화되어있는지 파악하는 것이다!

 

# this adds the conda-forge channel to the new created environment configuration 
conda config --env --add channels conda-forge

# and the robostack channel
conda config --env --add channels robostack-staging

# remove the defaults channel just in case, this might return an error if it is not in the list which is ok
conda config --env --remove channels defaults

 

이제 드디어 ROS2를 설치할 수 있게 되었다.

ROS2 설치 커맨드는 다음과 같다.

# Install ros-humble into the environment (ROS2)
conda install ros-humble-desktop

 

그 후 초기화를 위해 가상환경을 deactivate 했다가 다시 활성화시켜주자.

# deactivate 먼저
condaa deactivate

# 다시 가상환경 activate
conda activate "가상환경 이름"

 

그 후 가상환경 내에서 ROS Package를 관리해 주고 도와주는 tool을 설치해 준다.

conda install compilers cmake pkg-config make ninja colcon-common-extensions catkin_tools rosdep

 

이렇게 되면 ROS2 설치가 끝났다!!

잘 설치되었는지 확인하기 위해서 Rviz를 실행시켜 보자.

rviz2

 

성공적으로 설치가 완료되었다면 다음과 같이 RViz가 새 창으로 열리게 된다.

(Rviz는 로봇 시뮬레이션을 위한 3D 시각화 툴이라고 생각하면 된다)

 

Rviz2 실행화면

 

 

4. Install Gazebo

Gazebo는 오픈 소스로 제공되는 가상 시뮬레이션 툴이다. 

이를 통해 사용자 원하는 로봇을 가상 시뮬레이션에 삽입한 후, 삽입된 로봇과 사용자가 작성한 프로그램이 메시지를 주고받으며 동작하는 모습을 확인할 수 있게 해 준다. 이는 ROS와 별게 프로그램이기 때문에 따로 설치해 주도록 하자.

다행히도 한 줄만으로 간단하게 Gazebo를 설치할 수 있다고 한다.

(그러나 아래의 커맨드로 간단하게 설치하는 것은 OS X 10.11 이상 버전에서 작동한다고 하니, 그 이전 버전인 경우 default standard library와 rebuilding dependencies를 바꿔야 한다고 합니다.. 참고하시길..)

 

별개의 프로그램이기 때문에 ROS설치를 위한 가상환경에서 벗어나야 한다.

우선 deactivate를 해주자. 

conda deactivate

 

그럼 당연히 (base) 환경으로 바뀔 것이다.

이제 gazebo를 설치해 주자.

curl -ssL http://get.gazebosim.org | sh

 

이거 설치하는데 시간이 걸린다. 미뤘던 방 청소를 하고 오자..

 

설치가 끝났다면  실행이 되는지 보기 위해 (base) 환경에서 gazebo를 실행해 주자.

gazebo

 

설치가 성공적으로 되었다면 다음과 같은 화면이 뜬다!

gazebo 실행화면

 

이제 로봇공부를 시작할 수 있을 것 같다..

 


References
[1] 참고영상: https://www.youtube.com/watch?v=GEgVpdZj3tY
[2] gazebo tutorial: https://classic.gazebosim.org/tutorials?tut=install_on_mac

'Robotics AI' 카테고리의 다른 글

[Coppeliasim] Coppeliasim 설치하기  (0) 2024.08.20
[ROS 2] 개념 및 용어 정리  (0) 2024.05.09
ROS(robot operating system)의 등장 배경  (2) 2024.03.27