안녕하세요!!
오늘은 ROS의 기본인 Pub과 Sub을 통한 노드간 연결을 공부하고자 합니다.
ROS의 장점이 오픈소스가 다양하다고 한적이 있는데요
그중 다양한 라이센스에서 주로 긁어 오더라도 MIT라이센스를 긁어 와야합니다.

🤖 ROS의 기본 개념 및 노드 간 연결 공부하기
오늘은 ROS의 핵심 개념인 **Publisher(발행자)**와 **Subscriber(구독자)**를 통해 노드 간의 연결을 살펴보고, 오픈소스 라이선스의 비교도 해볼 거예요! 다양한 예시와 함께 ROS의 주요 개념을 쉽게 풀어보겠습니다. 🌟
🧩 ROS의 주요 개념
- Publisher (발행자)
특정 주제(topic)에 메시지를 발행하는 노드입니다.
📌 예시: 로봇의 카메라 노드가 이미지 데이터를 발행. - Subscriber (구독자)
특정 주제를 구독하여 메시지를 수신하는 노드입니다.
📌 예시: 이미지 처리 노드가 카메라 데이터를 구독하여 처리. - Node (노드)
ROS에서 실행되는 독립적인 프로세스로, 특정 작업을 처리하는 하나의 유닛입니다.
📌 예시: 센서 데이터 수집 노드, 모터 제어 노드. - Topic (주제)
노드 간 비동기식 메시지 통신을 위한 채널입니다.
📌 예시: /camera/image_raw (카메라 이미지 데이터), /cmd_vel (속도 명령). - Service (서비스)
동기식 요청-응답을 위한 인터페이스입니다.
📌 예시: /compute_path (경로 계산), /set_led (LED 상태 설정).
🛠️ 오픈소스 라이선스 비교: GPL vs MIT
오픈소스 라이선스를 고를 때 GPL과 MIT 라이선스의 차이를 알고 있어야 해요. 두 라이선스 모두 유명하지만, 각각의 특징이 다르니 비교해보겠습니다! 🤔
- GPL (GNU General Public License)
- 📂 소스 코드 공개 의무: 소프트웨어를 배포할 때 수정된 소스 코드도 공개해야 합니다.
- 🔄 파생 작업 규칙: 파생 작업도 GPL 라이선스를 따라야 합니다.
- 🎯 사용 예: 리눅스 커널, Git, MySQL
- MIT License
- 🚫 소스 코드 공개 의무 없음: 소스 코드를 공개할 필요 없이 자유롭게 수정 및 배포할 수 있습니다.
- 🛠️ 유연성: 상업적 사용에도 제한이 없고 자유롭게 사용할 수 있습니다.
- 🎯 사용 예: jQuery, Rails, X 윈도 시스템
⚖️ 라이선스 선택 TIP
MIT 라이선스는 자유롭게 수정하고 상업적 목적으로도 사용이 가능해서 ROS 프로젝트에서 많이 사용되는 라이선스입니다. GPL은 소스 코드 공개 의무가 있기 때문에 상업적인 프로젝트에서는 신중해야 할 수 있어요! 😊
🚀 결론
ROS는 오픈소스의 유연성을 최대한 활용할 수 있는 플랫폼입니다. Pub/Sub을 통해 노드 간의 데이터를 효과적으로 연결하고, 각 라이선스의 특성을 잘 이해하여 프로젝트에 맞는 선택을 하는 것이 중요합니다.
여러분이 ROS를 더 잘 활용할 수 있도록 계속해서 좋은 정보들 공유할게요! 질문이나 추가적으로 필요한 내용이 있으면 언제든지 댓글 남겨주세요! ✨😊
Writing a simple publisher and subscriber (Python) — ROS 2 Documentation: Humble documentation
Navigate into ros2_ws/src/py_pubsub/py_pubsub. Recall that this directory is a Python package with the same name as the ROS 2 package it’s nested in. Now there will be a new file named publisher_member_function.py adjacent to __init__.py. Open the file u
docs.ros.org
여기에 모든 자료가 있습니다!!
Document니까 확인 해주세용!

publisher와 subscriber 연결확인
계산도 가능합니다!!

두개의 수를 입력하면서 연산처리까지 갖추었습니다.
노드간 통신의 기본으로 언제부터 연결 됐는지도 직관적으로 확인할 수 있겠죠?

'KG_KAIROS > 리눅스' 카테고리의 다른 글
🖥️셸(Shell)? 조개 껍데기인가요? (0) | 2025.03.12 |
---|---|
🌍 운영체제(OS)란? 간단 정리 (0) | 2025.03.08 |
🚀ROS(Robot Operating System)란 무엇인가요? (0) | 2024.09.23 |
🌟 리눅스, 이젠 어렵지 않아요! 🌟 (0) | 2024.09.19 |