🐢 ROS2(humble)이란
들어가기 앞서 필자가 이번 ROS2(humble)에 대해 왜 작성하게 되었는지 잠시 말하겠다.
졸업을 앞두고 회사에 입사하게 되었다. 들어간 부서에서 로봇과 AI 개발을 하게 되었는데, 이와 관련해서 Ros와 Robotics에 대한 학습이 필요하게 되었다. 그래서 필자가 공부하고 간단하게 만든 결과물들을 공유해볼까 한다.
쓸데없는 말이 좀 길었다. Ros가 무엇인지에 대해 알아보자.
본 내용은 아래의 위키독스에 내용을 참고하여 작성하였음을 알립니다.
1.1 ROS2란 무엇인가
ROS2(Robot Operating System 2)는 로봇을 위한 개방형 프레임워크로, 로봇 소프트웨어를 개발, 관리, 배포하기 위한 도구와 라이브러리를 제공합니다. 본래 R…
wikidocs.net
💡 ROS2란 무엇인가?
ROS2(Robot Operating System 2)는 로봇을 위한 개방형 프레임워크이며, 로봇 소프트웨어를 개발, 관리, 배포하기 위한 도구와 라이브러리를 제공한다. 본래 ROS는 2007년, 스탠포드 인공지능 연구소에서 시작되었으며, 이후 Willow Garage에서 발전되었다. 2017년에 출시된 ROS2는 ROS1의 단점을 개선한 버전으로, 분산처리, 실시간 운영, 멀치 플랫폼 지원 등현대 로봇 시스템의 요구사항을 반영하고 있다.
ROS2는 로봇을 만들고 제어할 때 중요한 역할을 한다. 복잡한 로봇 시스템을 개발할 때 가장 큰 도전 과제 중 하나는 모듈 간의 통신을 관리하고, 하드웨어와 소프트웨어를 원활하게 연동하는 것이다. ROS2는 이러한 문제를 해결하기 위해 설계되었다. 노드 간 통신, 센서 데이터 처리, 모터 제어 등의 작업을 효율적으로 관리한다. 또한, 다양한 센서 및 액추에이터와의 연동을 쉽게 하기 위해 수많은 드라이버와 인터페이스를 제공한다.
ROS2의 구성은 크게 노드, 토픽, 서비스, 액션과 같은 기본적인 통신 요소로 나뉘며, 각 노드는 독립적인 프로세스로 동작하여 서로 데이터를 주고받을 수 있다. 이러한 구조 덕분에 로봇 소프트웨어는 확장 가능하고 모듈화 된 형태로 개발될 수 있다.
ROS2에는 다양한 부속 유틸리티 도구도 함께 제공된다. rVIZ는 로봇의 상태나 센서 데이터를 시각화하는 데 유용하며, Gazebo는 가상 환경에서 로봇을 시뮬레이션할 수 있는 도구이다. 또한, rosbag을 사용하여 데이터를 기록하고 재생할 수 있어, 실제 로봇이나 시뮬레이션 환경에서 데이터를 수집하고 분석하는 데 매우 유용하다. 이 외에도 tf라는 좌표 변환 도구는 로봇이 다양한 센서 데이터 간의 상대적 위치를 관리하고 추적하는 데 필수적이다.
이러한 이유로, ROS2는 로봇 개발의 표준 플랫폼으로 자리 잡았으며, 다양한 분야에서 로봇 소프트웨어 개발을 효율적이고 체계적으로 지원하고 있다.
버전릴리스명릴리스 날짜특징 및 주요 개선 사항
버전 | 릴리스명 | 릴리스 날짜 | 특징 및 주요 개선 사항 |
ROS 1.0 | 최초 릴리스 | 2007 | 스탠포드와 Willow Garage에서 개발 시작. 로봇 소프트웨어의 표준 플랫폼. |
ROS 1.1 | Box Turtle | 2010년 3월 | ROS 공식 릴리스 시작. Ubuntu를 주요 배포판으로 사용. |
ROS 1.2 | C Turtle | 2010년 8월 | 더 많은 패키지와 드라이버 지원. 소프트웨어 품질 개선. |
ROS 1.3 | Diamondback | 2011년 3월 | 안정성 및 성능 향상. 추가 드라이버 및 센서 지원. |
ROS 1.4 | Electric Emys | 2011년 8월 | 다양한 새로운 도구와 라이브러리, 시스템 안정성 강화. |
ROS 1.5 | Fuerte | 2012년 4월 | 멀티 플랫폼 지원, 더 많은 언어 바인딩 (Python, C++ 등). |
ROS 1.6 | Groovy Galapagos | 2012년 12월 | catkin 빌드 시스템 도입, 패키지 관리가 더 쉬워짐. |
ROS 1.7 | Hydro Medusa | 2013년 9월 | rVIZ, Gazebo 등의 시뮬레이션 툴 강화. |
ROS 1.8 | Indigo Igloo | 2014년 7월 | 장기 지원(LTS) 버전. 다양한 드라이버와 라이브러리 개선. |
ROS 1.9 | Jade Turtle | 2015년 5월 | 일부 새로운 기능 도입, 그러나 LTS가 아님. |
ROS 1.10 | Kinetic Kame | 2016년 5월 | 장기 지원(LTS), ROS1의 성숙된 버전, 광범위한 패키지 지원. |
ROS 1.11 | Lunar Loggerhead | 2017년 5월 | 최신 기능 실험, ROS1의 점진적 업데이트. |
ROS 1.12 | Melodic Morenia | 2018년 5월 | 장기 지원(LTS), 더욱 안정적인 ROS1 최종 단계로 간주됨. |
ROS2 | Ardent Apalone | 2017년 12월 | ROS2 첫 번째 릴리스, 멀티 플랫폼 지원, DDS 기반 통신 도입. |
ROS2 | Bouncy Bolson | 2018년 7월 | 실시간 지원, 다양한 개선 사항 및 실험적 기능 추가. |
ROS2 | Crystal Clemmys | 2018년 12월 | ROS2 안정성 개선, 멀티 로봇 시스템 지원 강화. |
ROS2 | Dashing Diademata | 2019년 5월 | 장기 지원(LTS), 배포 안정성 강화, 주요 기능의 성숙. |
ROS2 | Eloquent Elusor | 2019년 11월 | 네트워크 성능 개선, 소프트웨어 품질 향상. |
ROS2 | Foxy Fitzroy | 2020년 6월 | 장기 지원(LTS), 더 많은 하드웨어 및 드라이버 지원. |
ROS2 | Galactic Geochelone | 2021년 5월 | 새로운 API 추가, 보안 기능 강화. |
ROS2 | Humble Hawksbill | 2022년 5월 | 장기 지원(LTS), 성능 최적화 및 안정성 향상. |
ROS2 | Iron Irwini | 2023년 5월 | 최신 기능 실험 및 성능 최적화. |
ROS1은 점진적으로 개선되며 노드, 토픽, 서비스와 같은 기본적인 통신 모델을 확립하였고, ROS2는 그 기반 위에 실시간 처리, 분산 시스템, 보안 등 현대 로봇 개발에 필요한 기능들을 추가하여 더욱 성능과 안정성을 높였다. ROS2는 특히 DDS(데이터 분산 서비스)를 사용하여 다양한 네트워크 환경에서 안정적인 통신을 보장한다.
ROS1은 더 이상 새 버전이 릴리스 되지 않으며, ROS2가 주력으로 계속 발전 중이다.
🐢 ROS2(humble) 설치하고 직접 해보기
필자는 참고로 ubuntu(22.04) 환경에서 ros2를 이미 설치하고 사용 중이다.
그래서 참고했던 사이트를 공유하고자 한다. ROS2에서 직접 설치랑 튜토리얼을 제공하는 사이트이다.
링크를 타고 들어가면 설치부터 여러 가지 도구들과 코드들을 직접 활용해 ros를 활용해 볼 수 있는 Tutorials이 있으니 이해하기 쉬울 것이다.
https://docs.ros.org/en/humble/index.html
ROS 2 Documentation — ROS 2 Documentation: Humble documentation
You're reading the documentation for an older, but still supported, version of ROS 2. For information on the latest version, please have a look at Jazzy. ROS 2 Documentation The Robot Operating System (ROS) is a set of software libraries and tools for buil
docs.ros.org
그리고 아래의 사이트는 위의 링크를 한글화 한 블로그이다. (필자가 생각하기에는 그렇다..)
여하튼 이 블로그도 참고하면 좋을 것이다. 필자도 블로그를 참고하며 ROS2 사이트에서 이해가 잘되지 않는 부분들을 많이 도움 받았다.
https://velog.io/@i_robo_u/ROS2-Humble-%EC%84%A4%EC%B9%98%EB%B0%A9%EB%B2%95
현직자가 알려주는 ROS2 Humble 설치방법
ROS wiki에 설치 방법이 잘 나와있지만 초심자에겐 뭐가 뭔 말인지 모를 수가 있다. 특히 영어를 번역한 한글이면 더더욱! 로봇 개발을 하다보면 ROS2를 종종 재설치해야 하는 경우가 있는데 그럴
velog.io
📍결론
ROS2에 대해 간단하게 무엇인가에 대해 알아보고 실제로 설치하고 사용하기 위해 참고했던 사이트와 블로그에 대해 알아보았다. 앞으로 ROS2에 실제 쓰는 통신 모델들과 다양한 도구들에 대해 알아보고 그걸 직접 적용해 보는 것들을 작성할 예정이다. 앞으로 ROS2에 대한 모든 것은 humble 버전을 토대로 작상할 예정이니 참고 바란다.
그럼 다들 즐거운 개발이 되기를 바란다.