티스토리 친구하기

본문 바로가기

분류 전체보기

(140)
정적 오차상수 (정상상태 오차, System type) 1. 정적 오차상수 정적 오차상수(Steady-state error constant)는 시스템의 입력과 출력 간의 정적인 오차를 설명하는 상수입니다. 시스템이 안정 상태에 도달하고 입력 신호가 일정한 값을 유지할 때, 정적 오차상수는 입력과 출력 간의 오차를 정량화하는 데 사용됩니다. 제어 시스템 구조 아래와 같은 기준 입력신호들로 시스템의 정상상태 오차를 해석할 수 있습니다. n = 0 : 단위 계단함수 - 위치 입력을 주는 것 (시스템이 내가 지정한 위치로 이동하길 원한다) n = 1 : 단위 램프함수 - 속도 입력을 주는 것 (시스템이 내가 지정한 속도로 이동하길 원한다) n = 2 : 단위 포물선함수 - 가속도 입력을 주는 것 (시스템이 내가 지정한 가속도로 이동하길 원한다) 위에서 그린 제어시스..
비감쇠 고유진동수, 감쇠비 1. 비감쇠 고유진동수 비감쇠 고유진동수(Natural frequency of vibration in the undamped system)는 시스템이 감쇠되지 않은 상태에서 진동하는 주파수를 나타내는 값입니다. 일반적으로 'ω_n'으로 표기됩니다. 비감쇠 고유진동수는 진동 시스템의 물리적 특성과 관련되어 있으며, 시스템이 외부 강요 없이 자유롭게 진동할 때의 주파수를 의미합니다. 이는 시스템의 질량, 탄성, 관성 등에 의해 결정됩니다. 예시) 1. 흔들림 현상: 마찰이 없다고 가정했을 때, 진자, 진자 시계, 그네 등은 일정한 높이에서 놓으면 계속 흔들립니다. 1초당 5번 흔들린다면, 고유진동수는 5Hz 입니다. 만약 비감쇠 고유진동수에 가까운 주파수로 흔들림이 발생하면 공진 현상 때문에 더 큰 진폭으로..
ROS2 topic 2 [ROS2 토픽 2] 5. ros2 topic info `ros2 topic info` 명령어는 지정된 ROS 2 토픽에 대한 세부 정보를 출력합니다. 이 명령어를 사용하면 선택한 토픽의 이름, 메시지 유형, 토픽이 발행되는 노드의 이름 등을 확인할 수 있습니다. 예를 들어, `ros2 topic info /my_topic` 명령어는 `/my_topic` 토픽에 대한 정보를 출력합니다. 결과에는 토픽의 name, 토픽이 사용하는 메시지 Type, 발행자(Publisher) 노드의 이름 등이 포함됩니다. 이 정보는 토픽이 어떤 종류의 데이터를 전달하고 있는지, 어떤 노드가 해당 토픽을 사용하고 있는지 등을 파악하는 데 도움을 줍니다. `ros2 topic info` 명령어를 사용하여 ROS 2 토픽에 대한 정보를 확인하면 시스..
ROS2 topic 1 [ROS2 토픽 1] Background ROS 2는 복잡한 시스템을 많은 모듈식 노드로 분할합니다. Topic은 노드가 message(메시지)를 교환하는 버스 역할을 하며, ROS graph의 필수적인 요소입니다. 노드는 데이터를 임의의 수의 topic에 publish(게시)할 수 있습니다. 동시에 임의의 수의 topic에 대해 subscription(구독) 할 수 있습니다. Topic은 노드 간, 즉 시스템이 다른 부분들간에 데이터를 이동시키는 주요한 방법 중의 하나입니다. 1. Setup 새로운 터미널을 열고 아래의 명령어를 입력합니다. # Open a new terminal and run: ros2 run turtlesim turtlesim_node # Open another terminal and run: ros2 ..
ROS2 node와 executable `executable`과 `node`는 ROS 2 시스템에서 서로 다른 개념입니다. `Executable`은 컴퓨터에서 실행 가능한 프로그램이며, ROS 2에서는 특정 노드를 실행하는데 사용됩니다. ROS 2에서 노드는 실행 가능한 프로그램으로, 노드 실행 파일은 `executable`로 빌드됩니다. 이러한 노드 실행 파일을 실행하기 위해서는 `ros2 run` 명령어를 사용합니다. `Node`는 ROS 2에서 시스템에서 실행되는 프로세스입니다. 노드는 노드 실행 파일에 의해 실행되며, 다른 노드들과 메시지를 주고받아 작업을 수행합니다. 노드는 ROS 2에서 기능을 수행하는 주요 단위이며, 여러 개의 노드가 하나의 시스템을 구성할 수 있습니다. 따라서 `executable`은 ROS 2에서 노드를 실행할..
ROS2 Node [ROS2 노드] ROS2 그래프(Graph)는 로봇 시스템의 구성 요소 간 통신 및 데이터 교환을 관리하는 ROS2의 핵심 개념 중 하나입니다. ROS2 그래프는 다음과 같은 구성 요소로 이루어져 있습니다. 1. 노드(Node) 실행 가능한 프로세스(executable process)로, ROS2 그래프 상에서 통신하는 단위입니다. 노드는 토픽(topic), 서비스(service), 액션(action) 등을 이용하여 다른 노드와 데이터를 주고받습니다. 2. 토픽(Topic) 노드 간에 비동기식으로 데이터를 주고받는 메커니즘입니다. 하나의 토픽은 하나 이상의 발행자(publisher)와 하나 이상의 구독자(subscriber)로 구성됩니다. 3. 서비스(Service) 노드 간에 동기식으로 데이터를 주고받는 메커니즘입니다..
ROS2 Creating a package 2 [ROS2 패키지 만들기 2] Create a package [패키지 만들기] ROS2에서 새로운 패키지를 만들려면 다음 단계를 따르면 됩니다. 1. 새로운 터미널 창을 열고 ROS 2 워크스페이스의 디렉토리로 이동합니다. 예를 들어, 다음과 같이 작성할 수 있습니다. $ cd ~/ros2_ws/src 2. `ros2 pkg create` 명령어를 사용하여 새로운 패키지를 생성합니다. 패키지 이름은 소문자로 작성해야 하며, 여러 단어의 경우 하이픈(`-`)을 사용합니다. 예를 들어, `package_name`라는 이름의 패키지를 만들고 싶다면 다음과 같이 작성할 수 있습니다. # CMake ros2 pkg create --build-type ament_cmake # Python ros2 pkg create --build-type am..
ROS2 executable ROS 2에서 `executable`은 빌드된 바이너리 파일로, 하나 이상의 노드를 실행하는 데 사용됩니다. `executable`은 ROS 2 노드의 실행 가능한 인스턴스이며, ROS 2 시스템에서 독립적으로 실행됩니다. `executable`은 C++로 작성된 노드 또는 Python으로 작성된 노드일 수 있습니다. ROS 2에서는 `executable`을 빌드하기 위해 CMakeLists.txt 파일에 `add_executable` 명령어를 사용합니다. `add_executable` 명령어는 빌드하려는 `executable`의 이름과 해당 `executable`을 빌드하는 데 필요한 소스 파일을 지정합니다. 또한 해당 `executable`이 사용하는 모든 메시지, 서비스 및 의존성 패키지도 선언해야..