반응형

Engineering/ROS 7

ROS2 Node 스케줄링, 구조, 인터페이스 파라미터

지난 포스팅에서 Package와 Node에 관해 정리했다.요약하면, Package는 Node들의 집합과 이를 실행하는 launch file이다. Node는 ROS가 프로그램을 스케쥴링 하는 기준이다. 노드 안에 있는 기능들, ROS 2 Entities[Service, Publish, Subscribe, Action]들은 callback 함수이다. Node는 ROS 2 Entities, 자원, 상태를 들고 있는 논리적 컨테이너이다. 엔티티들은 스케쥴링의 대상이 아니라, 일감(Event)1. Node SchedulingROS1에서의 Node는 우리가 RCL(ROS Client Library)를 활용하여 만드는 Process이다. 하나의 Node안에서 publisher subscriber가 스케쥴링 돼서 돌아..

Engineering/ROS 2025.01.14

ROS2 표준 시간, 좌표계

1. 공간적 표준 (좌표, SI 단위)ROS2는 SI단위를 사용한다. meter, second, volt...1.1 좌표계정말 중요한 개념이다. 원본은 책과 rep-103을 참고하자.오른손 좌표계를 사용한다.컴퓨터 비전 분야에서는 Z forward, X right, Y down 좌표계를 사용한다. (깊이를 계산할 때 Z를 앞으로 둬야 편하게 계산 가능하기 때문이다. image plane을 x y로 두면 편하다.)오른쪽을 가르키게 손을 고정하면, 오른손 좌표계 왼손 좌표계가 나온다.윈도우 계열(DirectX 계열, 언리얼 엔진), Apple의 Metal은 왼손 좌표계를 쓴다.Khronos 의 Vulkan, Opengl은 오른손 좌표계를 쓴다. computer vision은 위아래가 바뀐 오른손 좌표계를 쓴..

Engineering/ROS 2025.01.12

ROS2 참고 사이트

1. 커뮤니티 ROS discourcehttps://discourse.ros.org/ ROS DiscourseThe ROS discussion forumdiscourse.ros.org커뮤니티 게시판, 개발 관련 소식이 올라온다.  2. 문서2.1 ROS Designhttps://design.ros2.org/ DesignROS 2 Design This site is repository of articles which are designed to inform and guide the ROS 2 design efforts. The goal of the ROS 2 project is to leverage what is great about ROS 1 and improve what isn’t. If you wou..

Engineering/ROS 2025.01.10

ROS2 빌드, 파일 시스템

1. PackagePackage = Node들의 집합(src) + 실행 방법(Launch file)src폴더 아래에 두 가지 파일이 필수적으로 들어간다.package.xml: 저자 + 패키지 설명CMakeLists.txt or setup.py 위의 파일을 수동으로 만들거나 아래 명령어로 만들 수 있다.ros2 pkg create [pkg_name] --build-type [ament_cmake ament_python] --dependencies [rclcpp rclpy std_msgs ...]2. Build System vs Build toolsBuild System = 단일 패키지를 빌드하는 것.Build Tools = 복수의 패키지를 빌드 하는 것. 각 패키지에 기술되어있는 종속 graph의 토폴로지..

Engineering/ROS 2025.01.08

Docker로 ROS를 사용하면 안 되는 이유

container기술을 통해 개발 환경 종속성 문제를 해결할 수 있다. 그 중 가장 많이 쓰이는 것은 당연 Docker이다. ROS + Docker 조합은 강력하지만 여러 보안 이슈를 안고 있다. 그래서 Canonical은 'Snapcraft'같은 대안 기술을 제공한다. 1. 내부 자원 접근 보안 문제 embedded programming을 하다보면 GPIO와 같은 하드웨어에 접근이 필요하다. 이 때 관리자 권한이 필요하다. 컨테이너에 관리자 권한을 주면, 하드웨어 해킹의 문제가 생길 수 있다. 2. 네트워크 보안 문제docker container에서 통신은 storage를 사용한다. 결국 네트워킹이 어렵고 보안에 취약하다.3. 지속적인 보안 업데이트가 어렵다. 위의 해킹 문제를 막기 위해, 보안 업데이..

Engineering/ROS 2025.01.06

ROS2, DDS와 QoS

1. DDS(Data Distribution Service) 정의OMG 에서 표준화한 middle ware 서비스이다. 즉, middle ware(프로그램) + 프로토콜(통신규약, API)이 DDS이다. ROS2에서는 DDS의 RTPS (Realtime Publish Subscribe) 프로토콜을 사용한다. Open source로는 Fast DDS와 Cyclone DDS(Eclipse Foundation)가 있고 사설 DDS를 활용하면 고성능 네트워킹이 가능하다. 국내 자체 개발 Gurum DDS(GurumNetwork)도 존재한다. ROS2에서 노드들은 DDS(Data Distribution Service)에 참여하고 publisher subscriber 1개당 1개의 QOS profile을 갖는다. ..

Engineering/ROS 2025.01.04
반응형