Computer programming/ROS22 C++, ROS2 에서 time stamp 활용, 비교 어떤 프로그램을 개선할 때 같은 기능을 얼만큼의 자원을 효율적으로 사용했는지를 비교하게 된다. 그 비교대상 중 하나가 바로 시간이다. C++의 std 라이브러리 중 chrono를 활용하는 방법, ROS2의 API를 활용하는 방법을 사용해서 time stamp를 찍어볼 수 있기 때문에 각각의 활용방법과 기능을 비교해본다. chrono 라이브러리 활용 #include // 현재 시간 획득 auto now = std::chrono::system_clock::now(); // time point 자료형을 long integer 값으로 변환 auto timestamp_milliseconds = std::chrono::time_point_cast(now).time_since_epoch().count(); // ti.. 2023. 2. 19. ROS2 빌드오류: c++: fatal error: Killed signal terminated program cc1plus 빌드 중 컴퓨터의 자원부족으로 프로그램을 강제 종료시켰을 때 발생하는 오류이다. 대응방법으로는 1. SWAP메모리를 확보하는 방법, 2. 동시에 빌드하는 패키지의 수를 조절하는 방법이 있다. 1. SWAP메모리 확보 SWAP메모리는 SDD/HDD의 일부를 RAM처럼 사용할 수 있도록 하는 방법이다. RAM 용량이 부족할 때 사용한다. 메모리에서 당장 사용되지 않는 부분(pages)을 일시적으로 하드디스크에 옮겨서 RAM을 충분히 더 활용할 수 있도록 한다. 일반적으로 4GB이하의 램에서는 RAM용량의 2배, 4GB 이상에서는 RAM과 동일한 크기의 사이즈면 충분하다고 본다. RAM사이즈가 굉장히 큰 고성능 컴퓨팅에서 SWAP은 2 GB 에서 4GB 만 있어도 충분할 것이다. 여러 블로그 글을 보고 실행해.. 2023. 2. 3. 이전 1 다음