Study: Robotics(Robot)

    [Positioning] 위성항법시스템(GNSS) 정리(2): 오차 및 오차보정 측위 기법(GPS, DGPS, RTK 등)

    💡 본 문서는 '위성항법시스템(GNSS) 정리(2): 오차 및 오차보정 측위 기법(GPS, DGPS, RTK 등)'에 대해 정리해 놓은 글입니다. 이전 내용에서는 '위성항법시스템(GNSS)'의 이론에 대해 정리해 보았으며, 여기서 다룬 측위기법을 기반으로 오차보정하는 방법 및 실제 사용에 대해 정리하였으니 참고하시기 바랍니다. 1. GPS 신호 1.1. 반송파 신호 반송파(搬送波, carrier wave)란 정보를 전달하려 신호(주파수)를 변조해 전자기파로 바꾼 것이다. 변조는 반송파에 정보를 나타내는 모양을 부여하며, 수신자가 모양을 이해하고 정보를 복구한다. 각 위성은 서로 다른 주파수의 신호를 동시에 생성하며, 민간용 GPS 위성은 L1, L2, L5의 세 가지 주파수 대역을 사용한다. 예를 들어..

    [Positioning] 위성항법시스템(GNSS) 정리(1): GPS, GNSS 개념

    💡 본 문서는 '위성항법시스템(GNSS) 정리(1): GPS, GNSS, RTK 등'에 대해 정리해놓은 글입니다. 어떤 분야던 자신의 위치를 판단할 때 가장 먼저 고려하는 시스템인 '위성항법시스템(GNSS)'의 이론을 정리하였으니 참고하시기 바랍니다. 1. 용어 정리 본격적인 내용에 들어가기 앞서 용어를 몇 가지 정리하고자 한다. 측량(Surveying): 지구 상의 여러 점들의 위치 관계와 특성을 결정하고 표현하며, 측정, 재현하는 기술이다. 측량에는 측량용 사진 촬영, 지도 제작, 건설 사업의 도면 작업 등을 포함한다. 측위(Positioning): 지물의 위치를 구하는 것으로 주로 이동체가 자신의 위치와 속도, 경로 등을 알아내는 위치 결정 기술이다. 항법(Navigation): 현재 위치로부터 목..

    [ROS] Why ROS2? (feat. ROS1 vs ROS2)

    💡 본 문서는 'Why ROS2?'에 대해 정리해놓은 글입니다. ROS2를 소개하기에는 8년 이상 개발되어 많이 늦은감은 있지만, 현 상황에서 ROS1이 아닌 ROS2를 공부해야하는 이유를 정리하였으니 참고하시기 바랍니다. 1. ROS1 VS ROS2 1.1 ROS1 vs ROS2 (홍보용: 간략한 기능 위주) 1.2 ROS1 vs ROS2 (개발자용: 세부 기능 및 지원 플렛폼) 2. ROS Distro 별 사용률 2.1 ROS Distro 별 사용률 (개발자 관점: Commit 수) 2.2 ROS Distro 별 사용률 (사용자 관점: package의 트래픽) 3. 마무리 ROS1는 2020년 마지막 버전을 공식 릴리즈하였으며, EOL의 경우 2025년이면 지원 종료됨 ROS2에서는 ROS1에서 지원..

    [Planning] Navigation map 없이 특정 지점으로 이동하는 방법 정리 ( navigation without map )

    💡 본 문서는 'map 없이 특정 지점으로 이동하는 방법 정리 ( navigation without map ) (오픈소스 소프트웨어 & 하드웨어: 로봇 기술 공유 카페 (오로카))' 포스팅을 바탕으로 작성한 글이니 참고하시기 바랍니다. 이제 어떻하면 ros navigtion 패키지를 슬램으로 만들어둔 map 없이 동작 시킬수 있까? map 을 이용해 localization 을 해주는 amcl 을 대체할 방법을 찾으면 되는 겁니다. 아래 방법 1,2,3이 이에 해당 합니다. 그리고 당연한 이야기지만 map 기반 localization 을 하지 않고 순수 odom 만 가지고 로봇의 위치를 추정하게 되면 map과 라이다로 오돔의 오차를 보정하는 localization 을 건너 뛰는 셈이 되니 로봇의 위치 추정..

    [ROS] Robot Operating System 개념 정리

    ROS 란? 로봇의 응용프로그램을 개발하기 위한 운영체제와 같은 로봇 소프트웨어 플렛폼. 하드웨어 추상화 하위 디바이스 제어 센싱, 인식, 지도작성, 모션플래닝 등의 기능 구현 프로세스 간의 메시지 파싱 패키지 관리 개발환경에 필요한 라이브러리와 다양한 개발 및 디버깅 도구 제공 Master 란? 노드와 노드 사이의 연결과 메시지 통신을 위한 네임 서버와 같은 역할. roscore가 실행명령어이며, 마스터를 실행하면 각 노드의 이름을 등록하고 필요에 따라 정보를 받을 수 있음. 마스터 없이는 노드 간의 접속, 토픽과 서비스와 같은 메시지 통신을 할 수 없음. 마스터는 마스터에 접속하는 슬레이브들과의 접속상태를 유지하지 않는 HTTP기반의 프로토콜인 XMLRPC를 이용하여 통신. 즉, 슬레이브인 노드들이 ..