본문 바로가기

Computer programming5

ROS: Subscribe 파라미터 5개 해석 예제코드 (lio_sam mapOptimization.cpp에서 따옴. 깃헙: https://github.com/TixiaoShan/LIO-SAM) subCloud = nh.subscribe("lio_sam/feature/cloud_info", 1, &mapOptimization::laserCloudInfoHandler, this, ros::TransportHints().tcpNoDelay()); subCloud: 생성되는 subscriber node 객체 이름 nh: 노드핸들러. 사전에 ros::NodeHandle nh; 로 선언됨 subscribe : subscriber를 생성하는 노드핸들러 메소드. subscribe할 메시지 토픽, 메시지타입을 표시 "lio_sam/feature/cloud_info.. 2023. 3. 28.
유용한 이미지 사이트 (PNGEgg, Palette) 1. 배경없는 이미지 사이트 https://www.pngegg.com/ PNGEgg - Exclusive sticker png images www.pngegg.com 2. 이미지 자동 채색 사이트 https://palette.fm/ 2023. 2. 28.
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.
Trace Route 가 경로를 추적하는 방법! Trace Route 경로 추적 방법. TTL=1로 보내면 다음 라우터에서 ICMP를 나에게 보내 주고. TTL=2로 보내면 다음 다음 라우터에서 ICMP를 나에게 보내 주고. TTL=3로 보내면 다음 다음 다음 라우터에서 ICMP를 나에게 보내 주고. . . . ->경로를 확인할 수 있다. 윈도우 명령어 tracert 리눅스 명령어 traceroute 둘 다 나갈 때 사용하는 프로토콜은 다르다. 올 때는 무조건 ICMP. visual trace ?? 인가.. 그런 프로그램도 있다. =-============================================ Fire walking 방화벽 정책 확인하는 방법. 내 컴퓨터에서 방화벽까지의 홉 수를 알고 있어야 한다. (tracert를 활용한다던지.... 2021. 2. 7.