no image
Code diagram tool - drawio
Code diagram? code diagram은 어떠한 코드가 주어졌을 때 흐름과 구조를 파악할 수 있는 구조다. 하나의 소스코드 내에서 알고리즘이 어떻게 구현되는지 시각적으로 확인할 수 있다. 대형 프로젝트의 경우 클래스와 함수, 구조체 등 복잡한 관계로 연결되어 작동하게 된다. 이런 상황에서 데이터의 흐름이 어떻게 진행되는지 시각적으로 아는데 code diagram이 도움 된다. GVINS라는 하나의 알고리즘을 drawio로 code diagram을 작성한 적이 있다. 그때는 웹에서 Github와 연동해서 했는데 잘 작동하지 않아 상당히 불편했었다. 하지만 이번에 vscode에 drawio 비공식적 extention을 지원하는 걸 알았고 사용해 보았다. 진짜 너무 좋다. 편의성 vscode환경에서 ..
2024.03.13
no image
Mendeley Ubuntu 환경
Mendeley Mendeley는 reference관리를 메인으로 여러 편의 기능을 갖춘 툴이다. Word와 chrome, edge에서 확장 프로그램으로 웹에서도 레퍼런스를 편리하게 가져오는 등 사용자의 편의를 생각한 툴이다. 확장 프로그램에 로그인 문제로 인해 리뷰가 좋진 않지만 차차 서비스를 개선해 나갈 것이니.. 다양한 학회의 Citation Style도 지원하고 Cloud에 논문도 저장할 수 있으니 한 번 써보고 결정해도 좋을 듯 하다. Mendeley 회원가입 회원가입 절차는 간단하다. 학교에서 라이센스를 구매한 경우라면 학교 IP가 잡히는 곳에서 로그인하길 권장한다. Mendeley - Reference Management Software Mendeley brings your research ..
2024.03.07
no image
[Course on SLAM] Chapter 4 / Graph-based SLAM
수식이 틀어지는 경우, 수식에 우클릭을 하고 math setting -> math renderer -> SVG를 선택 후 새로고침 바랍니다 : )Graph-based SLAM4.1 Problem formulation아래 사진은 모바일 로봇이 미지의 환경을 돌아다니며 자신의 이동을 추정하고 물체를 탐지하는 SLAM에서의 한 상황이다.그렇게 만든 지도는 로봇 자신이 어디있는지 아는 데 사용된다.이를 graph 로 구성된 관계로 그려보면 다음과 같다.이 그림은 실제 로보틱스에서 localization과 mapping 문제를 잘 나타낸다.왼쪽은 물체의 상대적인 위치와 방향을 그려놓은 것이다.오른쪽은 왼쪽과 같은 상황에 대해서 edge와 node인 그래프로 표현한 것이다.파란색인 edge는 motion에 대한 측..
2024.02.04
[ROS1] C++ 패키지 관련 오류 정리
오류 정리 ROS2 python만 써왔더니 ROS1 C++은 다른 세계... CMakeList 관련해서 우여곡절이 좀 있어서 정리. 계속해서 적용해 나갈 예정.. 1. 커스텀 메세지 적용 내 폴더에 msg를 만드는 방법이 가장 간편하지만 관련된 커스텀 메세지를 하나의 패키지에 묶어두는게 속편하다. GVINS의 경우 gnss_comm이라는 메세지 패키지가 따로 존재했다. 메세지 패키지를 catkin_make하면 local 시스템의 ROS에 등록이 되니까 의존성만 잘 기입 해주면 된다. 본인이 만든 패키지의 CMakeLists.txt를 gedit으로 열어준다. 중요한 것은 왠만하면 spacebar를 쓰자. 괜히 Tab키 썼다가 오류날 수 있음. find_package 괄호 안에 커스텀 메세지 패키지 이름을 ..
2024.01.31
ROS
no image
[C++] Mutex
MUTEX GVINS 코드를 분석하면서 Mutex를 처음 접했다. Visual, inertial, gnss, pose... 수많은 함수가 각각의 데이터에 접근해야 하기 때문에 발생하는 문제를 방지해 준다. 여러 쓰레드가 데이터에 접근을 하다 보면 일명 꼬이는 상황이 발생한다. 이렇게 되면 시스템이 불안정 해지기 때문에 Mutex를 이용해서 해당 영역에 대한 접근을 제한한다. 유튜브 강의를 시청 후 간단히 정리하였다. 강의 정보는 글 하단에 기재. 일반적인 mutex 사용 #include std::mutex mutex1 mutex1.lock(); // // // Critical section(mutex로 보호하고 싶은 라인) // // mutex1.unlock(); 일반적인 mutex 단점 -> 하나의 쓰..
2024.01.21
no image
GVINS 논문 요약
GVINS? 최근 실외 자율주행을 연구하기로 결심하면서 장시간 실외 주행에서도 강인함을 보여주는 SLAM알고리즘을 탐색했다. 실외 자율주행에서 Visual-Inertial SLAM은 어려운 도전과제이다. 특히 대표적인 단점으로는 long-term 주행 시 누적되는 drift가 상당하다는 점이다. 이를 해결하기 위해서 GNSS 메세지를 수신받아 fusion 하여 trajectory의 정밀도를 올려준다. 논문의 정확한 이름은 Tightly Coupled GNSS-Visual-Inertial Fusion for Smooth and Consistent State Estimation이다. GVINS: Tightly Coupled GNSS–Visual–Inertial Fusion for Smooth and Cons..
2024.01.17
[ROS] VINS-Mono_Melodic Build
Problem VINS-Mono를 Docker를 이용하여 Kinetic 버전에서 빌드를 했다. 하지만 그래픽 카드 문제인지 하루를 갈아넣어도 해결되지 않는 디스플레이 문제 때문에 Melodic으로 빌드를 시도했다. libGL관련 오류였는데, docker-nvidia2를 사용을 해도... 구글에 나온 방법을 다 시도해봐도 되지 않는걸 우째하리..(CLI에서 nvidia-docker를 사용..) 연구실에 있는 데스크탑 에서는 GPU가 없이 CPU만으로 잘만 디스플레이 되던데, 그래서 이건 내 노트북의 GPU(3070ti)문제라고 생각했다. 아무래도 최신 그래픽카드이다보니 ubuntu 18.04를 설치했을때도 디스플레이 문제때문에 20.04를 쓰고있긴 했다. 거두절미하고 Docker ros-melodic을 받..
2023.10.22
ROS
no image
[ROS1] VINS-Mono 진행하며 얻은 점
Compressed 이미지 CLI에서 변환하기 rosrun image_transport republish compressed in:=camera/color/image/ raw out:=cam0/image_raw 자체적으로 만든 compresseed image to raw image 노드에서 TimeStamp를 누락시켜서 삽질을 했다. grep으로 토픽에서 "sec"를 뽑아 시간이 잘 퍼블리시 되고 있는지 확인한다. rostopic echo /cam0/image_raw | grep "sec" 이미지 사이즈를 항상 확인해준다. rqt에 들어가서 이미지뷰로 들어간담에 저장버튼을 누른다. 이후 이미지의 속성에서 픽셀값 확인. Docker관련 항상 Commit하는 습관을 들일 것. Github와 CI되는지 확인 ..
2023.10.19
ROS
[Docker] docker : You don't have enough free space in /var/cache/apt/archives/.
빈 터미널에 입력 sudo docker container prune sudo docker image prune sudo docker volume prune
2023.10.16
ROS