전체 글 90

Planner plugins

global path는 global costmap을 이용해 planner에서 결정하고local path는 로봇의 움직임을 실시간으로 조정해 장애물을 회피하고 전역 경로를 따라간다. 이는 controller에서 결정한다. 플래너는 로봇이 목적지까지 따라가는 global path를 생성하는 역할을 한다. 로봇의 구동 방식, 사용 환경에 따라 적절한 플러그인을 선택해야 한다.플러그인 이름특징 및 알고리즘권장 로봇 타입NavFn PlannerA* 또는 Dijkstra 알고리즘 사용. 가장 기본적이고 가벼운 2D 플래너입니다.차분 구동(Differential), 전방향(Omni)Smac Planner 2D2D 비용 지도(Costmap) 상에서 경로를 찾는 A* 구현체. 매끄러운 경로 생성 기능 포함.차분 구동, ..

로봇/ROS 2026.05.25

다양한 입출력 방법

프로그램 입출력프로그램 속 명령어로 입출력장치를 제어하는 방법입출력장치와 연결된 장치 컨트롤러를 프로그램으로 제어ex) 메모리에 저장된 정보를 하드 디스크에 백업 (백업: 하드 디스크에 새로운 정보 쓰기) CPU가 장치 컨트롤러의 레지스터들(입출력장치의 주소)을 어떻게 알까? 명령어들은 어떻게 표현되고 저장될까?프로그램 입출력 방식에는 메모리 맵 입출력, 고립형 입출력 2가지가 있다. 어떤 컴퓨터에 1024개의 주소가 있다면 그 주소들은 전부 메모리를 위해 사용되지 않는다. 사진과 같이 메모리를 위한 주소 공간, 입출력장치를 위한 주소 공간으로 나누어 사용하는 방법을 ‘메모리 맵 입출력’이라고 한다. 인터럽트 기반 입출력 플래그 레지스터 속 인터럽트비트를 비활성화한다면 다른 인터럽트를 받아들..

장치 컨트롤러와 장치 드라이버

입출력장치는 CPU보다 메모리를 다루기가 어렵다. 장치 컨트롤러CPU와 입출력장치 간의 통신을 중개한다.위에서 말한 단점에 대한 보완으로 일종의 번역가 역할을 한다.오류를 검출한다.입출력장치의 문제가 있지 않은지 오류를 검출한다.데이터 버퍼링버퍼링: 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 ‘버퍼’라는 임시 저장 공간에 저장해 전송률을 비슷하게 맞추는 방법 데이터 레지스터CPU와 입출력장치 사이에 주고받을 데이터가 담지는 레지스터(버퍼)RAM을 사용하기도 한다.상태 레지스터상태 정보 저장입출력장치가 입출력 작업을 할 준비가 되었는지입출력 작업이 완료되었는지입출력장치에 오류는 없는지 등 상태 정보제어 레지스터입출력장치가 수행할 내용에 대한 제어 정보 장치 드라이버장치 컨트롤러의 동작..