인기 글

  • DDS와 RTPS 개념정리

    DDS와 RTPS 개념정리

    ROS2의 node간 통신으로 DDS가 이용되고 있다. 앞으로 DDS란 무엇인지 또 어떻게 동작하는지에 대해 내가 이해한 부분을 정리해보겠다. DDS(Data Distribution Service)란? DDS는 OMG(Object Management Group)에서 정의한 machine-to-machine 통신 standard이다. DDS는 publish-subscribe pattern을 바탕으로 높은 실시간성/신뢰성/퍼포먼스(빠른 속도)등을 목표로 하고 있다. DDS의 기본 communication model은 unidirection data exchange이다. data를 publish하는 쪽(DataWriter)에서 data를 subscribe하는 쪽(DataReader)으로 data update ..

  • ROS 2 설치 (Windows WSL 이용)

    ROS 2 설치 (Windows WSL 이용)

    WINDOWS 환경에서 WSL을 설치하고 ROS2-galactic을 설치하는 방법에 대해 설명한다. Ubuntu OS를 사용 중이라면 "Install WSL2"는 skip하면 된다. ROS2를 설치하는 방법에 대해서는 Debian package를 이용하는 방법과 building하는 방법에 대해 다룰 것이다. Debian package를 이용하면 쉽고 빠르게 ROS2 설치가 가능하지만, ROS2 package들의 최신 버전을 적용하거나 code를 살펴보고 싶다면 building을 통해 ROS2를 설치하는 것을 추천한다. (둘 중 하나의 방법만 따르면 된다.) Install WSL2 WSL설치 (WINDOWS에서 Linux GUI apps 이용하기) 참조 Install ROS2 prerequisites 먼저..

  • WSL2에 USB device 연결

    WSL2에 USB device 연결

    WSL2를 사용하다 보면, 아쉬운 점 중 하나가 PC에 연결된 hardware 인식이 어렵다는 점이다. VirtualHere를 이용하면 Windows에 연결된 USB device를 WSL2에서 인식할 수 있다. WSL2 kernel 버전 확인 및 업데이트 VirtualHere을 이용하기 위해서는 Kernel이 USB/IP를 지원해야 한다. WSL2 Linux kernel 5.10.60.1 버전 이전까지만 하더라도 정식 배포 버전에는 USB/IP를 지원해주지 않아서 kernel을 수정하여 USB/IP를 활성화시켜줘야 했다. 하지만 kernel 5.10.60.1부터는 USB/IP를 지원해 주기 시작했다. WSL command창에서 아래 명령어를 통해 버전을 확인해보자. $ uname -r 5.10.60.1-..

  • DDS RTPS의 구조(structure)와 메세지(message)

    DDS RTPS의 구조(structure)와 메세지(message)

    이전 글에서 DDS와 RTPS가 무엇인지와 그 관계에 대해서 간단하게 정리했다. (DDS와 RTPS 개념정리) 이번 시간에는 DDS-RTPS의 communication의 주체인 RTPS Entity의 structure와 RTPS Entity들이 주고 받는 RTPS message에 대해 알아보고 정리해보겠다. DDS-RTPS Structure DDS-RTPS의 communication의 주체인 RTPS Entity는 아래와 같은 구조로 되어있다. Entity : RTPS communication의 주체로 DDS domain상에서 고유한 id를 갖고 있다. Participant : Entity로서 Endpoint들을 담고 있는 컨테이너이다. ROS에서 node를 생성하면 RTPS Participant가 생성..

최신 글

  • Modern Robotics -  Configuration Space (2) - Topology/Representation/constraint

    Modern Robotics - Configuration Space (2) - Topology/Representation/constraint

    Definition topologically equivalent : 어떤 space를 자르기와 붙이기 없이 다른 space로 변경이 가능하다면 두 space는 topologically equivalent라고 한다. (어떤 물체를 변경하는데 구부리거나, 늘이거나, 줄일 수 있지만 구멍을 뚫을 수는 없다고 할 때, 찰흙공은 적절한 변형을 통해 접시와 같은 형태로 만들 수 있고 도넛 모양의 찰흙 모형은 적절한 변경을 통해 컵과 같은 형태로 만들 수 있다.) explicit representation : n-dimensional space를 표현하기 위해 n-coordinates를 선택하는 방법. (구 표면 위의 한 점을 latitude, longitude로 표현) implicit representation :..

  • DDS RTPS 패킷 확인해보기 (wireshark)

    DDS RTPS 패킷 확인해보기 (wireshark)

    이전 글에서 DDS RTPS의 message, structure, behavior, discovery protocol 등에 대해서 알아보았다. 2022.02.04 - [Robotics/ROS] - DDS와 RTPS 개념정리 2022.02.05 - [Robotics/ROS] - DDS RTPS의 구조(structure)와 메세지(message) 2022.02.11 - [Robotics/ROS] - DDS RTPS의 동작(behavior) 2022.02.12 - [Robotics/ROS] - DDS RTPS의 Discovery Protocol 이번에는 publisher와 subscriber를 실행시켜 보고 discovery 하고, user data를 주고받는 과정에서 RTPS protocol이 어떻게 동작하..

  • WSL2에 USB device 연결

    WSL2에 USB device 연결

    WSL2를 사용하다 보면, 아쉬운 점 중 하나가 PC에 연결된 hardware 인식이 어렵다는 점이다. VirtualHere를 이용하면 Windows에 연결된 USB device를 WSL2에서 인식할 수 있다. WSL2 kernel 버전 확인 및 업데이트 VirtualHere을 이용하기 위해서는 Kernel이 USB/IP를 지원해야 한다. WSL2 Linux kernel 5.10.60.1 버전 이전까지만 하더라도 정식 배포 버전에는 USB/IP를 지원해주지 않아서 kernel을 수정하여 USB/IP를 활성화시켜줘야 했다. 하지만 kernel 5.10.60.1부터는 USB/IP를 지원해 주기 시작했다. WSL command창에서 아래 명령어를 통해 버전을 확인해보자. $ uname -r 5.10.60.1-..

  • DDS RTPS의 Discovery Protocol

    DDS RTPS의 Discovery Protocol

    이전 시간에 DDS RTPS의 특징으로 publisher가 실시간으로 subscriber의 존재를 발견하거나 subscriber가 실시간으로 publisher의 존재를 발견할 수 있는 discover 기능을 갖추고 있다는 점을 언급었했다. 이번 시간에 어떻게 RTPS participant(ROS node)가 네트워크 상에 다른 participant(ROS node)를 찾고 매칭되는 endpoints(publisher 또는 subscriber)를 찾는지 알아보겠다. Discovery Protocol의 종류 discovery protocol은 PDP와 EDP라는 두 개의 독립적인 protocol로 나뉘게 된다. 먼저, PDP(Participant Discovery Protocol)를 통해 participai..