분류 전체보기 129

[C++] &의 역할, forward declaration, Header file, Macro( #define )

Ampersand &&는 변수 앞에 붙이게 되면 주소를 나타내는 역할을 한다.  forward declaration 전방 선언compile은 위에서 아래로 순차적으로 진행 하므로 main() 함수 아래에 선언된 함수가 있다면 다음과 같이 main() 함수 위에 Forward declaration을 해주어야 한다.   Header File 헤더파일헤더 파일은 C++ 프로그램에서 코드의 구조를 정리하고 재사용성을 높이며, 컴파일 효율성을 개선하는 데 중요한 역할을 합니다. 이를 통해 개발자는 더 깔끔하고 유지보수가 용이한 코드를 작성이 가능하다.   Macro 매크로C++에서 매크로는 코드의 재사용성과 가독성을 높이기 위해 사용되는 기능으로 매크로는 주로 전처리기 지시어인 #define을 사용하여 정의된다.

[ROS2] Practice of the Node, Topic, Service( client, server ) & etc

ROS 프로그래밍 규칙( 코드 스타일 )- 이름 규칙에는 snake_cas, CamelCased, ALL_CAPITALS와 같이 3종류의 네이밍을 기본으로 사용한다. - 파일 이름 및 변수명, 함수명에는 모두 소문자로 snake_case 이름 규칙을 사용한다. 가독성을 해치는 축약어는 가능한 사용하지 않으며 확장자명은 모두 소문자로 표기한다.- 타입 및 클래스는 CamelCased  이름 규칙을 사용하고 상수는 ALL_CAPITALS 이름 규칙을 사용한다. 단, ROS 인터페이스 파일은 /msg 및 /srv 또는 /action 폴더에 위치시키며 인터페이스 파일명은 CamelCased 규칙을 따른다. 그 이유는 *.msg 및 *.srv 또는 *.action 파일은 *.h(pp) 및 모듈로 변환한 후 구조체..

[ROS2] Concept of the Node, Topic, Service( client, server )

Qt CreatorQt Creator는 Qt 프레임워크를 기반으로 한 크로스 플랫폼 개발 환경(IDE)입니다. 주로 C++로 애플리케이션을 개발하는 데 사용되며, 다음과 같은 주요 기능을 제공합니다: --환경변수 일치ROS 2에서는 UDP 멀티캐스트로 통신이 이루어지기 때문에 별도의 설정을 하지 않으면 동일 네트워크상에 있는 모든 노드가 연결되게 된다. 예를들어 같은 연구실에서 동일 네트워크를 사용한다면 다른 연구원들이 사용하는 노드의 데이터에 접근이 가능하게 된다. 이를 방지하려면 서로 다른 네트워크를 이용하거나 ROS namespace를 추가하여 사용하면 되는데 DDS_DOMAIN_ID라 하며 환경변수로 설정하게 되어 있다.export DISPLAY=:0--TurtleBot 거북이( turtle )을..

[SLAM] Introduction to SLAM

Simultaneous Localization and MappingVisual localization   - 로봇에 장착된 센서만을 활용 ( 외부 장치 X )  - GPS가 잘 작동하지 않는 환경 ( Indoor environment, Downtown 등 )Mapping   - 사전에 주변 맵이 만들어지지 않은 또는 만들어질 수 없는 환경  - 경로 계획에 대한 정보를 제공 ( Private area, Disaster area 등 )   다양한 위치 추정 방법가이드 레일, QR 코드, GPS 센서  - 가이드 레일, QR 코드를 놓을 수 없는 경우가 대부분임  - GPS 전파가 잘 닿지 않는 곳이 있음( 지하, 실내공간, 도심지역 등 )  - 신뢰할 수 있지만 범용적이지 못함( 특정 상황이나 용도에만 적..