제가 작성하는 이 글은 제가 공부하기 위해 작성하고 제 학교 후배들에게 조금이라도 ros에 대해서 접하게 하고자 작성하게 되었습니다. 그러니 만약 틀린내용이나 그러니 제가 부족한 부분이 있을수 있으니 주의해주면서 봐주시면 감사하겠습니다 -Happy Lee-
이번에는 다양한 개념을 알아보기 위해 작성하는 블로그이다. 너무 깊지 않을수 있으니 궁금한게 있으면 더 찾아보면서 공부하는게 좋을것이다.
1. RCLPY
2. ROS2BAG
3. CLI
4. Intra-process communication
5. Lifecycle
6. Qos
7. tf
멀티스레드 지원
멀티스레드가 실행이 지원이 되어 서비스와 퍼블리셔가 동일한 노드 내에서 동시에 작동하는 경우 MultiThreadedExecutor를 사용 가능하다.
비동기 서비스 호출
rclpy는 asyncio와 통합 가능하여 비동기적으로 서비스를 호출하고 처리가능
동기 : 입력과 출력, 요청과 응답이 동시에 일어남
비동기 : 입력이나 요청이 있다 해서 출력이나 응답이 바로 나타나지 않고 특정 신호가 있어야 결과가 나타나는 등으로 조작됨


미들웨어 : 분산 네트워크에서 애플리케이션 또는 구성 요소 간에 하나 이상의 종류의 통신 또는 연결을 가능하게 하는 소프트웨어. ROS2에서는 노드 간의 메시지 송수신 및 이벤트 처리를 담당
Executor는 콜백을 처리하는 "관리자"이고, spin()은 해당 Executor가 콜백을 계속해서 처리하도록 하는 "루프"라고 생각해라
BAG 파일 레코딩 : topic_name에서 수신되는 메시지를 “my_bag.bag”라는 이름의 BAG 파일에 레코딩함
ros2 bag record -o my_bag topic_name
BAG 파일 재생 : “my_bag.bag”라는 이름의 BAG 파일을 재생
ros2 bag play my_bag
BAG 파일 정보 표시 : “my_bag.bag”라는 이름의 BAG 파일의 정보를 표시함
ros2 bag info my_bag
asyncio : 비동기 프로그래밍을 위한 모듈이며 CPU 작업과 I/O를 병렬로 처리하게 해줍니다.
콜백 : 특정이벤트가 발생했을때 자동으로 호출되는 함수