분류 전체보기(10)
-
[ 프로그래밍 ] 내가 쓰는 프로그래밍 도구
1. Terminator 터미널을 상하좌우로 분할하는게 편해서 쓴다. 많이 쓰는 단축키는 다음과 같다. Ctrl+Alt+T : 새 터미널 생성 Ctrl+E : 좌우로 분할 Ctrl+O : 상하로 분할 Ctrl+Shift+W : 해당 탭 닫기 Ctrl+Tab : 분할된 터미널 간 이동 아래의 커맨드를 통해 terminator를 기본 터미널로 설정할 수 있다. sudo update-alternatives --config x-terminal-emulator 2. zshell 현재 위치가 아닌 마지막 폴더 명만 보여져서 깔끔하다. git 브랜치명(e.g. git: (master))을 보여준다. 현재 로컬 저장소를 기준으로 변경된 사항이 있으면 노란색 X 표시가 생긴다. (변경사항 유무 확인에 유용) 3. Vi..
2021.06.08 -
[ ROS ] ROS를 이해해보자 #3
0. 머리말 지난 번에는 Topic을 주고 받는 Publisher와 Subscriber를 소개하였으며, Topic을 이용한 통신 방식에 대한 특징들도 알아보았다. 이번에는 직접 코드를 적용해서 경험해보도록 하자. 앞선 글에서 짤막한 코드만으로는 Publisher와 Subscriber를 사용하기에 어려울 수 있다고 생각하여 같이 해보는 글을 준비했다. 시작에 앞서, 나는 Ubuntu 18.04, ROS Melodic을 사용했다. 그리고, 이 글은 ROS wiki의 튜토리얼(C++)을 기반으로 진행했다. 1. 다운로드 우선, 아래의 커맨드를 통해 워크 스페이스(e.g. catkin_ws)를 만들고 그 안에 있는 src 폴더에 튜토리얼 패키지를 다운로드해주자. catkin_ws인 워크 스페이스의 이름은 원하는..
2021.04.28 -
[ SLAM ] 모바일 로봇의 좌표계 축 - Map, Odom, Base_link
0. 머리말 모바일 로봇 분야에서 로봇의 위치를 파악하는 것은 아주 중요하고 핵심적인 일이다. 그래서 우리는 로봇의 위치를 정확히 나타내기 위해서 기준이 되는 좌표계(Coordinate)를 사용하며, 로봇 분야에서는 이에 해당하는 좌표계 개념이 존재하여 일반적으로 통용된다. 이렇게 보편적으로 약속된 좌표계 개념을 통해 우리는 로봇이 정확히 어디에 위치해있는지 효율적으로 파악할 수 있다. 하지만 이러한 기준 없이 개인마다 다른 좌표계 축(Coordinate Frame)을 사용했다면, 로봇의 위치을 추정하는 코드를 검토하거나 결과를 분석할 때 많은 혼동을 야기했을 것이다. 개인적으로는 여러 좌표계 축의 의미를 정확히 이해하여, 동료와 소통할 때 혼동없이 같은 생각을 공유하는 것이 중요하다고 느꼈었다. 그래서..
2021.04.08 -
[ SLAM ] Graph SLAM
0. 머리말 Graph SLAM에서는 Node를 로봇의 위치, Edge를 로봇의 위치 변화로 하는 Graph를 만든다. 그리고, Node와 Edge로 이루어진 Graph를 최적화하여 가장 적합한 Pose의 Node들을 계산한다. SLAM(Simultaneous Localization and Mapping)이란 자신의 위치를 추정(Localization)하고, 동시에 주변의 환경 지도를 작성(Mapping)하는 기술을 말한다. 자율 주행 자동차, 로봇 분야에서 다양하게 사용되고 있으며, 다방면으로 개발되고 있는 기술이다. SLAM에는 여러 종류가 있으나, 오늘은 Graph SLAM에 관하여 얘기해보도록 하겠다. 1. Graph SLAM Graph SLAM은 수학적 개념인 Graph를 이용하여 SLAM을 수..
2021.03.23 -
[ SLAM ] Ceres Solver를 이용한 Graph Optimization
0. 머리말 SLAM(Simultaneous Localization and Mapping)은 위치 추정(Localization)과 지도 작성(Mapping)을 동시에 수행하는 것을 의미한다. 위치 추정은 로봇이 자신의 위치를 추정하기 위해 관측된 데이터(observation)를 바탕으로 자신의 위치(pose)를 추정하는 것을 말하며, 추정된 자신의 위치들과 해당 위치에서 관측된 데이터를 이용하여 동시에 지도를 그려나가는 것이 SLAM이다. Graph SLAM은 여러 SLAM 방법 중 하나이며, 수학적 개념인 Graph를 기반으로 하여 SLAM을 수행하기 때문에 Graph SLAM이라 한다. A Graph is made up of vertices (also called nodes) which are con..
2021.03.23 -
[ ROS ] ROS 커맨드 정리
ROS를 사용하면서 다양한 커맨드를 활용하는데, 그중에서 자주 쓰는 커맨드만 정리해봤다. roscd [패키지 이름] : 해당 패키지의 디렉토리로 이동 roscore : ROS master / parameter server / rosout 시작 rosrun [패키지명] [노드명] : 해당 패키지의 해당 노드 실행 roslaunch [패키지명] [런치 파일] : 해당 런치 파일 실행 rostopic list : 현재 존재하는 모든 토픽명 출력 rostopic pub [토픽명] [메세지 타입] [값] : 설정한 이름과 메세지 타입, 값을 가지는 토픽 송신 rostopic echo [토픽명] : 해당 토픽 출력 rosservice call [서비스명] [메세지 타입] [값] : 설정한 이름과 메세지 타입, 값을..
2021.03.19