로봇하는 코딩
m1 mac에서 ros2사용하기 본문
m1 mac native 환경에서 ros를 사용하는 다양한 방법이 있겠지만 그중에 쉽게 사용할 수 있는 miniforge를 이용하여 ros를 사용하는 방법을 기술하려고 합니다.
우선 miniforge가 설치되어 있다는 것을 가정합니다.
혹시나 설치가 되어 있지 않으시다면 https://github.com/conda-forge/miniforge
GitHub - conda-forge/miniforge: A conda-forge distribution.
A conda-forge distribution. Contribute to conda-forge/miniforge development by creating an account on GitHub.
github.com
해당 깃허브를 참고하시길 바랍니다!
miniforge를 설치하면 conda와 mamba라는 명령어를 사용하실 수가 있습니다. robostack의 공식 문서를 보면 mamba를 사용하도록 되어있는데, conda를 사용해 주세요. manba의 경우 디폴트로 도입되는 python 버전이 3.8로 되어 있어 설치하다 보면 패키지의 요건인 python3.10의 요건에 미치지 않기 때문에 에러가 발생합니다. 또한, base환경에 ros를 설치해서도 안됩니다.
*다른 ros버전을 사용하고 싶으시다면 맨 아래 공식 사이트를 참고해주세요*
우선 가상환경을 만드시고 가상환경을 activate한 상태에서 channel을 추가해줍니다.(해당 작업을 수행해야 ros를 설치 가능)
conda config --env --add channels robostack-staging
이후 본인이 원하는 ros버전을 선택해 설치합니다.
# ros1
conda install ros-noetic-desktop
# ros2
conda install ros-humble-desktop
이후 가상환경 initalize를 위해 deactivate한 후 다시 activate해준 뒤, ros 환경에 도움이 되는 tool을 설치합니다.
conda install compilers cmake pkg-config make ninja colcon-common-extensions catkin_tools rosdep
해당 명령어까지 문제없이 실행되셨다면 설치는 끝난 겁니다.
이후 정상적으로 설치되었는지 확인하려면
- ROS1
터미널을 2개 열어서 각각의 터미널에서 아래와 같은 명령어를 입력하셔서 rviz가 정상적으로 뜨면 됩니다.
conda activate 가상환경_이름
roscore
conda activate 가상환경_이름
rviz
- ROS2
새로운 터미널을 열어서 아래와 같은 명령어를 입력하셔서 rviz가 정상적으로 뜨면 됩니다.
conda activate 가상환경_이름
rviz2
아직까지 ros는 linux에서 구동하는게 최고라고 하지만 초반에 공부하거나 간단히 사용하는 용도로 mac에도 설치해서 사용해도 크게 문제 없는 듯 합니다.
- robostack 공식문서: https://robostack.github.io/GettingStarted.html