Programming

[License] 오픈소스 라이센스 정리

오픈 소스 라이센스 오픈 소스 소프트웨어 라이센스는 코드를 공개하고 다른 이들이 자유롭게 사용, 수정, 및 배포할 수 있도록 하는 규정이다. 이는 소프트웨어의 자유로운 공유와 협업을 촉진하여 오픈 소스 소프트웨어 커뮤니티를 활성화하는 데에 도움을 준다. 다양한 오픈 소스 라이센스가...

[CMake] CMake 사용법

ⓘ Note! 이 포스트는 Linux 운영체제를 기반으로 작성되었습니다.

[ubuntu] ubuntu에서 AnySign4PC 실행하기

ubuntu에서 AnySign4PC 실행하기 국내 공공기관 웹사이트에 접속하다 보면 AnySign4PC를 설치해야 하는 경우가 종종 있다. 최근에 정부24 홈페이지에서 서류를 출력하려고 하니, AnySign4PC를 설치하지 않으면 로그인할 수 없는 문제가 있었다. Windows에서...

[ROS2] (20)-C++ 클래스에서 parameter 사용하기

파라미터 사용하기 노드를 만들다보면 때로는 파라미터가 필요할 때가 있다. 여기서는 C++ 클래스에서 파라미터를 만드는 방법과 런치 파일에서 파라미터를 설정하는 방법을 알아볼 것이다.

[ROS2] (19)-패키지 내에서 msg파일 만들어 사용하기

패키지 내에서 msg 파일 만들기 .msg, .srv 파일들은 별도의 패키지로 구성하는 것이 선호되지만, 때로는 같은 패키지 내에서 해당 파일들을 만들어서 사용해야 하는 경우도 있다. 다만, 이전 포스팅에서 언급한 것처럼 CMake 패키지로만 메시지 파일들을 정의할 수 있다. 여기...

[ROS2] (18)-직접 msg, srv 파일 만들기

msg, srv 파일 만들기 이전 4개의 포스팅에서는 이미 정의된 msg, srv 파일을 이용한 노드를 만들어 보았다. 이번 포스팅에서는 직접 msg, srv 파일을 만들어서 메시지의 구조를 정의해보자.

[ROS2] (16)-C++로 서비스와 클라이언트 만들기

서비스와 클라이언트 만들기 서비스에서 서비스를 request 하는 것을 client 노드라 하고, respond 하는 것을 service 또는, server 노드라고 한다. 요청과 응답의 구조는 .srv 파일에 의해 결정된다. 이번 포스팅에서는 클라이언트가 2개의 정수를 넘겨주면 ...

[ROS2] (13)-ROS2 패키지 만들기

패키지란 패키지는 ROS2 코드를 포함하고 있는 용기라고 생각할 수 있다. 패키지를 만들면 ROS2 작업물을 쉽게 배포할 수 있고, 다른 사람들이 쉽게 빌드해서 사용할 수 있다. ROS2에서는 패키지를 만들 때, ament를 빌드 시스템으로 사용하고 colcon을 빌드 툴로 사용한...

[ROS2] (12)-Workspace 설정하기

workspace 란 Workspace는 ROS2 패키지를 포함하고 있는 디렉토리를 의미한다. ROS2를 사용하기 위해서는 ROS2 installation workspace를 작업하고자 하는 터미널에 source해야 한다. [ROS2] (2)-ROS2 환경설정 에서 터미널 창마...

[ROS2] (11)-데이터 기록한 뒤 재생하기

데이터 기록하여 재생하기 ros2에서는 여러 개의 토픽 데이터를 데이터 베이스에 저장해두었다가 나중에 다시 재생시켜볼 수 있다. 이를 통해 실험 결과를 재생성하거나 작업 결과물을 다른 사람들과 공유할 수도 있다.

[ROS2] (10)-launch 파일로 실행하기

launch 파일의 필요성 지금까지는 노드를 실행할 때마다 새로운 터미널 창을 열어서 노드를 실행해주었다. 튜토리얼에서는 노드가 몇 개 없지만, 노드의 개수가 많아지면 이렇게 매번 터미널 창을 열어서 실행시키는 것이 쉽지 않다.

[ROS2] (9)-rqt_console 활용하기

rqt_console 실행하기 rqt_console은 로그 메시지를 확인할 수 있는 GUI 툴이다. rqt_console을 이용하면 로그 메시지를 더 정돈된 형태로 확인할 수 있고, 메시지들을 저장하고 불러올 수도 있다.

[ROS2] (8)-Action의 개념

Action이란? Action이란 ROS2의 통신 방법의 한 종류로, 오랫동안 진행되는 작업이 있을 때 사용하기에 적합하다. 액션은 goal, feedback, result 라고 하는 3가지 파트로 구성되어 있다.

[ROS2] (7)-Parameter의 개념

parameter란? parameter는 노드의 설정값과 비슷한 개념으로, 해당 노드에서 사용되는 변수라고 이해할 수 있다. 파라미터는 다양한 데이터 형식으로 저장될 수 있고, 동적으로 재설정될 수 있다.

[ROS2] (6)-Service의 개념

Service란? 서비스는 노드 간에 통신하는 또 다른 방법이다. 토픽이 단방향으로 계속해서 메시지를 전달하는 것과는 다르게 서비스는 요청이 있을 때에만 메시지를 전달한다. 서비스를 요청하는 노드를 client, 요청에 응답하는 노드를 server라고 한다. 하나의 서비스에 여러 ...

[ubuntu] ubuntu에서 모니터가 인식되지 않는 문제

ubuntu 모니터 인식 문제 어제까지 잘 사용했었는데, 오늘 컴퓨터를 켜보니 듀얼 모니터 중 1개는 화면이 아예 나오지 않고, 나머지 1개는 화면은 나오지만 해상도가 바뀌어 있었다. 설정-디스플레이에 들어가보니 이전에는 모니터의 정확한 모델명까지 인식했었는데 오늘은 ‘알수없는 모...

[ROS2] (5)-Topic의 개념

Topic 이란? Topic은 노드가 다른 노드와 주고받는 메시지의 일종이다. 가장 큰 특징은 publisher와 subscriber가 있는 일방적이고, 연속적인 소통이라는 것이다. publisher는 메시지를 주기만 하고, subscriber는 메시지를 받기만 한다. 하나의 노드...

[ROS2] (4)-Node의 개념

Node 란 노드란 최소 기능을 수행하는 프로그램이라고 할 수 있다. 예를 들어, 모터를 제어하거나 센서 데이터를 받아오는 것과 같이 한 가지의 목적을 수행하는 작은 단위의 프로그램이다. 노드가 반드시 최소 기능만을 수행할 필요는 없다. 각자의 목적에 따라 여러가지의 기능을 수행하...

[ROS2] (3)-turtlesim 예제

ROS2 turtlesim 예제 turtlesim 예제를 통해 ROS2가 어떠한 방식으로 동작하는지, ROS2를 활용해서 어떤 일들을 할 수 있는지를 느껴보기로 한다. 해당 예제에 사용된 명령어 및 개념들은 이후에 상술하기로 한다.

[ROS2] (1)-ubuntu에 ROS2 Foxy Fitzroy 설치하기

ubuntu에 ROS2 Foxy Fitzroy 설치하기 ubuntu에 ROS를 설치하는 방법에 대해 정리한다. 현재(2021년 8월 27일 기준)는 ROS2의 Foxy Fitzroy 버전이 가장 최신의 LTS(Long Term Support) 버전이다. Foxy버전이 ROS2의 최...

[ubuntu] ubuntu에 terminator 설치하기

ubuntu에 terminator 설치하기 ubuntu에서 유용한 프로그램 중 하나인 terminator 설치방법에 대해 알아본다. terminator는 terminal 창을 한 번에 여러 개 띄워주는 프로그램이다. linux 운영체제에서는 terminal을 자주 활용하게 되므로,...

[ubuntu] ubuntu에 sticky notes 설치하기

ubuntu에 sticky notes 설치하기 나는 해야할 일들을 관리하고, 잊지 않기 위해서 주로 post-it 형태의 메모장을 사용한다. 이러한 형태의 프로그램인 sticky notes를 ubuntu에 설치하는 방법을 정리한다.

[ubuntu] ubuntu에 VS Code 설치하기

ubuntu에 VS Code 설치하기 프로그래밍을 하기 위해서는 개발 환경을 구성하는 것이 필요하다. 나의 경우, visual studio code를 선호하기 때문에 VS Code로 개발 환경을 구축하기로 했다. VS Code는 일종의 text 편집기이기 때문에 프로그램이 아주 가...

[Git] (3)-Git 기초 사용법

Git 기초 사용법 Git의 기초 사용법에 대해 알아본다. Git 저장소를 만드는 방법, Git 저장소가 구분하는 파일의 상태에 대해 알아본다.

[Git] (2)-Git 설치 및 설정하기

Git 설치하기 Git을 사용하기 위해서는 먼저 설치를 해야한다. 운영체제별로 설치하는 방법에 차이가 있는데, 여기에서는 ubuntu에서 설치하는 방법을 알아본다.

[ubuntu] 외장하드에 ubuntu 설치하기

외장하드에 ubuntu 설치하기 외장하드에 ububtu를 설치하여 사용하는 방법에 대해 정리한다. 기존에도 외장하드에 ubuntu를 설치하여 사용하고 있었으나, 최신버전이 아닌 18.04.5 LTS 버전을 사용 중이었다. 그런데 종종 인터넷이 끊기는 문제가 발생했고, 최신버전으로 ...

[Git] (1)-Git이란?

Git 이란 소프트웨어 개발을 하다보면 다양한 협업 툴을 사용하게 된다. 그 중 가장 많이 쓰이고, 자주 쓰이는 것은 git이 아닐까 싶다. git이 무엇인지, 그리고 git의 활용방법에 대해 정리하고자 한다.