분류 전체보기

좌표계의 이해(Coordinate Frame)
항공기의 운동을 기술하는 데 있어서 좌표계에 대한 정의가 우선적으로 이뤄져야 한다. 우리가 흔히 말하는 x, y 축 또한 특정한 기준을 정하고 좌표를 설명하게 된다. 항공기에서 흔히 사용되는 좌표계를 알아보고 정리해보고자 한다. 관성 좌표계(Inertial reference frame) 뉴턴의 제 2법칙을 적용할 수 있는 유일한 좌표계이다. 뉴턴의 제 2법칙 : 물체의 운동량의 시간에 따른 변화율은 그 물체에 작용하는 힘과 같다. 즉 가속도에 대해 정의를 내릴 수 있는 좌표계라 볼 수 있다. 지구 중심에 원점을 두는 경우는 ECI(Earth Centered Inertial reference frame) 좌표계라 한다. 회전하지 않는 좌표계 항성에 대해 고정된 좌표계의 방향 xI 축 : 춘분점 방향, zI..
[ROS1 NOTE] Node의 원리와 생성
Node의 생성 ros의 기본 작동 원리는 node의 생성에서부터 시작한다. 사람으로 비유하자면 이름을 정해주고(ros::init()) 그 사람이 어떠한 행동(publish, subscribe)을 할지 정해주게 된다. ros::init(argc, argv, "node_name");

[ROS1 NOTE] mavros_msgs.msg
mavros_msgs를 사용하기 위해서는 우선적으로 mavros가 무엇인지 알아야 한다. This package provides communication driver for various autopilots with MAVLink communication protocol. Additional it provides UDP MAVLink bridge for ground control stations (e.g. QGroundControl). 공식 문서를 보게 되면, MAVLink 통신 프로토콜임을 알 수 있다. 자율주행 드론이나 GCS(Ground Control Station)을 통해 제어를 하기 위해서는 제어 컴퓨터를 통해 명령을 보내야 한다. 이러한 명령을 무분별하게 보내는 것이 아닌 특정한 형식을 갖춰서..

[ROS1 NOTE] geometry_msgs
Points, Vectors, Poses에 사용되는 메세지의 형태이다. Pose # A representation of pose in free space, composed of position and orientation. Point position Quaternion orientation 대상의 위치(position)와 자세(orientation)에 대한 정보를 담고 있다. PoseStamped # A Pose with reference coordinate frame and timestamp Header header Pose pose PoseStamped와 Pose의 차이는 Header를 포함하고 있다는 점이다. Header에 포함되는 정보로는 'frame_id', 'stamp', 'seq'가 있다. ..
[C++ NOTE] #include (지시문)
#include #inlcude "header_file.h" include 파일에 포함되는 내용 - 외부 변수와 복잡한 데이터 형식의 선언을 통합하는 데 유용 - include 파일 안에서 한 번만 정의하고 명명하면 됨 , ""의 차이 을 사용하는 경우 1) 컴파일러와 함께 제공되는 헤더 파일을 include할 경우 ""을 사용하는 경우 1) 현재 파일과 동일한 directory에 위치한 경우 * 본 문서는 학습을 하며 기록하기 위함이 목적이므로 기능 해석에 있어서 정확하지 않은 정보가 있을 수 있습니다. 참고하여 사용하시기 바랍니다.
[C++ NOTE] pragma
#pragma once 소스 코드 파일을 컴파일 할 때 컴파일러에 헤더 파일이 한 번만 포함되도록 지정한다. 여러 번 include 될 경우, 그때마다 정의가 추가되어 중첩되는 문제가 발생할 수 있다. 단, 일부 구형 컴파일러에서는 지원을 안하는 경우가 있어서 안전성과 범용성을 보장하지 않는다. 유사한 기능을 가진 코드 - #ifndef #ifndef HEADER_H_ // equivalently, #if !defined HEADER_H_ #define HEADER_H_ // Code placed here is included only once per translation unit #endif // HEADER_H_ #ifndef는 if not defined와 같은 의미로 해당 구간에 있는 헤더 파일에 ..