[Mac M1] ROS2 + Gazebo 설치하기

알파고라니·2024년 4월 2일
1

Robotics

목록 보기
2/3
post-thumbnail

로봇 시뮬레이션을 위해 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 메인 페이지에 그대로 쓰여있어 이를 복사+붙여 넣기 해도 된다.
Homebrew homepage

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

$ brew doctor

2.Install Conda environment

ROS2 실행을 위한 conda 환경을 설정해주어야 한다.
Anaconda 보다 가벼운 Miniconda나 Miniforge를 사용하는 것을 추천한다.

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

Miniconda Quick command install

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

conda가 정상적으로 설치되어 실행된다면 터미널 창에 줄마다 맨 앞에 '(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가 설치되었다면, (base)환경에서 아래의 코드 블록을 실행한다.

$ conda install mamba -c conda-forge

다음과 같은 주의사항이 있다고 한다. 아마 Ros 설치 중에 오류가 난다면 이와 관련된 오류가 될 것이다.

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 시각화 툴이라고 생각하면 된다)

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

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

이제 드디어 로봇 개발을 위한 기본적인 환경 설정이 끝났다.. 화이팅..

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

profile
함께 성장할 수 있는 AI Engineer가 되고 싶습니다

7개의 댓글

comment-user-thumbnail
2024년 4월 11일

안녕하세요, 저의 경우는 가제보 설치에 실패하고, 실행 시 'zsh: command not found: gazebo' 이런 명령어를 띄우네요. 혹시 해결방법이 있을까요?

1개의 답글
comment-user-thumbnail
2024년 5월 26일

Gazebo실행만 하면 이런 오류가 나는데 왜그럴까요ㅜㅜ

dyld[92540]: Library not loaded: @rpath/libOgreMain.1.9.0.dylib
Referenced from: <7D01D4C4-8CAF-33D4-97A0-57B845E5A9A0> /opt/homebrew/Cellar/ogre1.9/1.9-20160714-108ab0bcc69603dba32c0ffd4bbbc39051f421c9_10/lib/libOgreRTShaderSystem.1.9.0.dylib
Reason: tried: '/opt/homebrew/Cellar/gazebo11/11.14.0_19/lib/../lib/libOgreMain.1.9.0.dylib' (no such file), '/opt/homebrew/Cellar/gazebo11/11.14.0_19/lib/../lib/libOgreMain.1.9.0.dylib' (no such file), '/opt/homebrew/Cellar/gazebo11/11.14.0_19/lib/../lib/libOgreMain.1.9.0.dylib' (no such file), '/opt/homebrew/Cellar/gazebo11/11.14.0_19/bin/../lib/libOgreMain.1.9.0.dylib' (no such file), '/opt/homebrew/Cellar/gazebo11/11.14.0_19/bin/../lib/libOgreMain.1.9.0.dylib' (no such file)Library not loaded: @rpath/libOgrePaging.1.9.0.dylib
Referenced from: <542418B1-4A59-3309-8582-20807B6BA559> /opt/homebrew/Cellar/ogre1.9/1.9-20160714-108ab0bcc69603dba32c0ffd4bbbc39051f421c9_10/lib/libOgreTerrain.1.9.0.dylib

1개의 답글
comment-user-thumbnail
2024년 11월 6일

안녕하세요 덕분에 맥북에 ros2를 설치했습니다.(저는 2018 인텔 맥북입니다. ㅎㅎ)

글 내용에서 궁금한 부분이 있어서 문의드립니다.

질문 :

rviz2는 가상환경 humble에서 설치를하고 gazebo는 기본 가상환경인 base에 설치하셨습니다.

말씀중에서 "이는 ROS와 별게 프로그램이기 때문에 따로 설치해 주도록 하자."라는 말씀을 하셨습니다.

혹시 어떤 이유에서 따로 설치하신건지 궁금해서 문의드립니다!

읽어주셔서 감사합니다!

답글 달기