전체 글 39

Py Tree - Status

행동 트리의 상태(Status)상태의 중요성행동(Behaviour)의 가장 중요한 부분은 update() 메서드에서 행동의 상태를 결정하는 것입니다. 이 상태는 이후 행동 트리의 나머지 부분을 통해 진행될 방향에 영향을 미칩니다. 아직 트리에 대해 다루지는 않았지만, 바로 이 상태가 행동 트리에서 의사 결정을 이끄는 요소입니다.상태 열거형(Enum)class py_trees.common.Status( value )[source]행동의 상태를 나타내는 열거형입니다.FAILURE = 'FAILURE'행동 검사가 실패했거나, 그 동작의 실행이 실패한 결과로 끝났음을 의미합니다.INVALID = 'INVALID'행동이 초기화되지 않았거나 비활성 상태에 있음을 의미합니다. 즉, 현재 틱(tick)이 발생하지 않고..

카테고리 없음 2025.03.18

Py Tree - initialise

행동 트리(Behaviour Tree)의 주요 초기화 포인트주요 집중 사항:initialise() 메서드는 행동이 이미 실행 중이 아닐 때만 작동합니다.부모의 tick() 메서드가 언제 initialise(), stop(), terminate() 메서드를 호출할지 결정합니다.부모의 tick() 메서드는 항상 update()를 호출합니다.update() 메서드는 행동의 상태(Status)를 결정하는 역할을 합니다.초기화 과정초기화에 세 가지 메서드가 사용되므로 초기화 코드를 어디에 배치해야 할지 구분하기 어려울 수 있습니다. 각 메서드의 역할을 자세히 살펴보겠습니다:__init__ 메서드목적: 행동을 오프라인 DOT 그래프 생성에 충분하도록 인스턴스화합니다.중요성: 나중에 행동 트리를 DOT 그래프로 렌더..

카테고리 없음 2025.03.18

쿼터니언

쿼터니언(Quaternion)은 3차원 공간에서의 회전을 표현하는 데 사용되는 수학적 개념입니다. 실수부 하나와 3개의 허수부로 구성되어 있어서 총 4개의 성분을 가지고 있습니다.쿼터니언 q는 다음과 같이 표현됩니다: q = w + xi + yj + zk여기서:w는 실수부 (스칼라 부분)x, y, z는 허수부 (벡터 부분)i, j, k는 허수 단위간단한 예시를 통해 설명해드리겠습니다:쿼터니언이 주로 사용되는 분야:3D 그래픽스와 게임 개발로보틱스와 드론 제어우주선의 자세 제어가상/증강 현실(VR/AR)쿼터니언은 오일러 각(Euler angles)과 비교했을 때 다음과 같은 장점이 있습니다:짐벌 락(Gimbal lock) 현상을 피할 수 있음 연속적인 회전 보간이 더 자연스러움수치적으로 더 안정적임짐벌 락..

카테고리 없음 2025.02.17

c++ virtual function

virtual 키워드에 대해 자세히 설명해드리겠습니다.virtual은 C++에서 동적 바인딩(런타임 다형성)을 구현하는 핵심 키워드입니다. 주요 특징과 사용 목적은 다음과 같습니다:동적 바인딩 (Dynamic Binding)프로그램 실행 중에 어떤 함수를 호출할지 결정기본 클래스의 포인터나 참조로 파생 클래스의 함수를 호출 가능가상 함수 테이블 (vtable)virtual 함수가 있는 클래스는 vtable을 가짐객체마다 vptr(가상 함수 테이블을 가리키는 포인터)를 가짐메모리와 성능에 약간의 오버헤드 발생실제 예제를 통해 살펴보겠습니다:  이 예제에서 주목할 점들:virtual 소멸자기본 클래스의 소멸자를 virtual로 선언하여 적절한 정리를 보장메모리 누수 방지override 키워드가상 함수를 오버..

카테고리 없음 2025.02.17

ROS2 - tf(transform frame)

이 텍스트는 ROS2의 tf2(Transform Frame 2) 튜토리얼에 대한 설명입니다. 주요 내용을 분석해드리겠습니다:tf2 튜토리얼은 C++와 Python 두 가지 프로그래밍 언어로 제공됩니다.튜토리얼은 두 가지 트랙으로 나뉘어 있습니다:C++ 트랙Python 트랙학습 방법에 대한 조언:한 번에 하나의 트랙을 완료하는 것이 권장됩니다C++와 Python 모두를 배우고 싶다면, 각각의 트랙을 따로 완료하는 것이 좋습니다즉, C++ 트랙을 한 번 완료하고, 그 다음 Python 트랙을 완료하는 식으로 진행하면 됩니다tf2는 ROS2에서 매우 중요한 컴포넌트입니다. 이는 로봇의 다양한 부분들 간의 3D 변환(transformation)을 관리하는 시스템으로, 로봇의 각 부분의 위치와 방향을 추적하고 계..

카테고리 없음 2025.02.12