반응형

전체 글 29

ROS2 참고 사이트

1. 커뮤니티 ROS discourcehttps://discourse.ros.org/ ROS DiscourseThe ROS discussion forumdiscourse.ros.org커뮤니티 게시판, 개발 관련 소식이 올라온다.  2. 문서2.1 ROS Designhttps://design.ros2.org/ DesignROS 2 Design This site is repository of articles which are designed to inform and guide the ROS 2 design efforts. The goal of the ROS 2 project is to leverage what is great about ROS 1 and improve what isn’t. If you wou..

Engineering/ROS 2025.01.10

ROS2 빌드, 파일 시스템

1. PackagePackage = Node들의 집합(src) + 실행 방법(Launch file)src폴더 아래에 두 가지 파일이 필수적으로 들어간다.package.xml: 저자 + 패키지 설명CMakeLists.txt or setup.py 위의 파일을 수동으로 만들거나 아래 명령어로 만들 수 있다.ros2 pkg create [pkg_name] --build-type [ament_cmake ament_python] --dependencies [rclcpp rclpy std_msgs ...]2. Build System vs Build toolsBuild System = 단일 패키지를 빌드하는 것.Build Tools = 복수의 패키지를 빌드 하는 것. 각 패키지에 기술되어있는 종속 graph의 토폴로지..

Engineering/ROS 2025.01.08

Docker로 ROS를 사용하면 안 되는 이유

container기술을 통해 개발 환경 종속성 문제를 해결할 수 있다. 그 중 가장 많이 쓰이는 것은 당연 Docker이다. ROS + Docker 조합은 강력하지만 여러 보안 이슈를 안고 있다. 그래서 Canonical은 'Snapcraft'같은 대안 기술을 제공한다. 1. 내부 자원 접근 보안 문제 embedded programming을 하다보면 GPIO와 같은 하드웨어에 접근이 필요하다. 이 때 관리자 권한이 필요하다. 컨테이너에 관리자 권한을 주면, 하드웨어 해킹의 문제가 생길 수 있다. 2. 네트워크 보안 문제docker container에서 통신은 storage를 사용한다. 결국 네트워킹이 어렵고 보안에 취약하다.3. 지속적인 보안 업데이트가 어렵다. 위의 해킹 문제를 막기 위해, 보안 업데이..

Engineering/ROS 2025.01.06

Softeer. 11001. GPT식 숫자 비교

https://softeer.ai/practice/11001// 문제의 keypoint 2차원 배열의 정렬 sort(pair)// 문자열 처리, split으로, atoi, stoa, stoi#include#includeusing namespace std;int N;// 3 . 기준으로 자르기 // pair로 하면 될 듯.pair arr[1001];int main(int argc, char** argv){ cin >> N; for(int i = 0; i > tmp; string int_part, float_part; // 이거 대신할 함수 STL에 적기 bool is_int_part = true; for(auto& digit: tmp){ ..

ROS2, DDS와 QoS

1. DDS(Data Distribution Service) 정의OMG 에서 표준화한 middle ware 서비스이다. 즉, middle ware(프로세스) + 프로토콜(통신규약, API)이 DDS이다. ROS2에서는 DDS의 RTPS (Realtime Publish Subscribe)를 사용한다. Open source로는 Fast DDS와 Cyclone DDS(Eclipse Foundation)가 있고 사설 DDS를 활용하면 고성능 네트워킹이 가능하다. Gurum DDS(GurumNetwork)은 국내 자체 개발 DDS다. ROS2에서 노드들은 DDS(Data Distribution Service)에 참여한다.1.1 DDS 4가지 특징IDL(Interface Description Language)를 활..

Engineering/ROS 2025.01.04

C++ STL 정리

STL은 4가지 분류로 나뉜다.ContainersAlgorithms numeric: 난수 생성 + 최적화된 array들을 기반한 알고리즘 algorithm: [begin, end) 기반으로 range 있는 container에 쓰는 알고리즘 IteratorsFunctors0. itoaC의 memset의 c++ version이다.수학적에서 관용적으로 쓰이던 표현이다. set of number 혹은 unit vector 쓴다. 그리스어로 짧은 문자이다.templatevoid iota( ForwardIt first, ForwardIt last, T value ); // (constexpr since C++20)https://en.cppreference.com/w/cpp/algorithm/iota1. copy_n..

Engineering/C++ 2024.12.19

C++17 Class Template Argument Deduction (CTAD)

C++ 17부터는 Class Template Argument Deduction이 적용된다. 말 그대로 template argument가 생략될 수 있다는 뜻이다.적용되는 분야는 다음과 같다.template으로 선언 돼 있는 변수를 초기화 할 때 (possibly cv-qualified):std::pair p{2,2.3}; // pairstd::tuple tp{"kor",2,'a'}; // std::make tuple new 표현식templatestruct A{ A(T, T);};auto y = new A{1, 2}; // allocated type is A함수 호출auto lck = std::lock_guard(mtx); // deduces to std::lock_guardstd::copy_..

Engineering/C++ 2024.12.19

Gaussian Distribution의 Covariance Matrix을 타원으로 시각화 및 샘플링 하는 방법

Gaussian을 타원형으로 시각화한다. Kalman filter, Gaussian Splatting, VAE(Variational Auto Encoder), low pass filter의 smoothing Kernel... etc. 많은 곳에서 Gaussian이 쓰인다. 이런 알고리즘들은 Covariance를 타원으로 시각화하고, 타원으로 샘플을 추출한다. 해당 포스팅은 3가지로 나뉜다.Background에선 Gaussian의 정의와 타원이 나타내는 의미에 대해서 서술한다.둘째, LU 분해를 통해 covariance matrix에서 sampling하는 방법에 관해 서술한다.셋째는 covaraince matrix에서 타원을 그리는 방법에 관해 서술한다.1. Background1.1 Gaussian Dis..

Mathematics 2024.10.26

UML 언제 써야 하는가?

Clean code의 작가 밥 아저씨의 "UML 실전에선 이것만 쓰인다"의 내용을 발췌했다.소프트웨어 공학 과목을 들으면서 공감되는 부분이 많아서 가져왔다. 1. UML이란? Unified Modeling Language로 SW에서 설계할 때 쓰이는 Diagram을 만드는 언어이다.  StarUML과 Draw.io를 통해서 그릴 수 있다.  2. Diagram이란Diagram: 그래픽이나 구조로 대상을 나타내는 이다. 다이어그램으로 전달하고 시픈 것은 Concept, Specification, Implementation 3가지 이다.Concept(개념): 소스코드와 관계가 적다. 자연어 논문과 가깝다.Animal←Dog 해석이 다분함 속한다, 속박한다. 다양한 해석이 가능하다. Specification(..

Engineering/DEV-OPs 2024.10.12

논문 어디에 제출하고 어떻게 평가 받는가?

1. 논문은 어디다 제출하는가?Conference와 Journal 두 곳에 제출할 수 있다. ConferenceJournal평가 기간3달6~2달투고 가능 기간매년 낼 수 있는 기간이 정해져 있다아무때나 컴퓨터 분야는 빠르게 발전하는 분야이다 보니, 컨퍼런스가 더 인기가 많다.저널이나 컨퍼런스에 제출 후, APC(Article Processing Charge)를 지불한다. Axiv는 논문을 미리 공개해서 피어 리뷰를 받을 수 있는 사이트이다. 2. SCI(Science Citaion Index)급 SCOPUS급 논문은 무엇인가? 두 분류 모두 Accept된 저널에 따라서 나뉜다. 출판사는 여러개의 저널을 출판하고 있다. 가령 IEEE Access와 IEEE Transaction은 같은 출판사에 다른 저널이..

Research 2024.09.18
반응형