본문 바로가기

전체 글

(45)
[ROS: Robot Operating System] 1-3. ROS 용어 정리 1. Topic, 토픽 - Topic이란 노드들 간에 통신을 할 수 있는 채널이다. 두 프로그램 간에 어떤 통신이 발생하고, 어떤 메시지를 주고 받게 되는데 이 경로를 토픽이라고 한다. 2. Message, 메시지 - 메세지는 Topic이 데이터나 정보를 주고 받을 때 사용하는 포맷이다. 3. Publisher - Publisher는 데이터를 발생 (Publish)하는 노드이다. 4. Subscriber - Subscriber는 Publisher가 Topic에 쓴 Message를 받거나 읽는 노드이다. 5. Catkin (캐킨) - catkin은 ROS에서 코드를 빌드하고 구성하는데 사용되는 방법으로, 다른 빌드시스템보다 ROS 패키지를 외부에서 가져온 코드나 통합하거나, 혹은 만든 소프트웨어를 릴리즈하..
[ROS: Robot Operating System] 1-2. ROS 설치 ROS 설치 본 포스팅에서는 ROS를 Ubuntu 환경에 설치하는 방법에 대해 포스팅한다. 1. 네트워크 시간 동기화 * 설치 전, Ubuntu의 네트워크 시간을 동기화하는 것을 먼저 설치한다. - ROS는 네트워크 시간을 사용하여 Message가 보내진 시간을 확인하기 때문에 PC간의 시간 동기화가 중요하다. - 시간을 동기화 하는 방법으로 NTP (network time protocol)와 rdate가 있다. 정확한 단위의 동기화가 필요하다면 NTP를 이용하면 된다. NTP는 밀리초(1/1000) 단위까지 계산해준다. - Ubuntu는 기본적으로 timedatectl 패키지가 설치되어 있다. 1) Ubuntu의 터미널을 연다. 2) 터미널에 sudo apt-get install ntpdate 를 입력..
[ROS: Robot Operating System] 1-1. 개요 1. ROS의 정의 - ROS란 Robot Operating System의 약자로 "로스" 라고 발음하고, 로봇용 공개소스 메타운영체제 (Meta-operating system)이다. - 메타운영체제 (Meta-operating sysetem)는 응용 프로그램을 개발하기 위해 스케쥴링 및 로드, 감시, 에러 처리 등을 실행하는 시스템을 의미한다. - 즉, ROS는 로봇 응용 프로그램을 개발하기 위한 운영체제와 같은 로봇 플랫폼이지만, 리눅스, 윈도우, OS-X, 안드로이드 등과 같은 전통적인 운영체제는 아니다. - 따라서, ROS는 기존의 OS를 기반으로 스케쥴링, 파일시스템, 프리세스 관리 등을 사용할 수 있도록 하며, Middleware+Software Framework+Tools+Plumbing+E..
[Signal processing] EMD (Empricial mode decomposition): 경험적 모드 분해법 EMD (Empricial mode decomposition): 경험적 모드 분해법 1. 정의 - 경험적 모드 분해법, EMD는 시계열 신호를 분석하기 위한 것으로, 파라미터 값을 정의하지 않고, 원 신호 (raw signal)에 기반하여 분해되는 방법이다. - 이는 원 신호 (raw signal)의 비선형적 (non-linear), 비정형적인 (non-stationary) 특징이 보존된다 (원 신호가 선형인지, 비선형인지 고려할 필요가 없음) - EMD 알고리즘을 이용하여 원 신호 (raw signal)이 n개의 IMF (Intrinsic mode functions, 고유진동함수)들과 residue로 분해된다. 2. 조건 -IMF를 분해할 때, IMF는 2가지의 stopping criteria를 만족해..
node.js + db 연동 (POSTman 확인) (2) 지난 시간에는 node.js를 활용해서 데이터베이스를 생성해봤다. 지난 시간 생성된 데이터베이스는 ns_sensor라는 데이터베이스를 생성하고 user라는 테이블을 생성해서 그안에 id, name이라는 컬럼을 생성했다. 물론 지난시간에도 말했지만 이렇게 node.js 코딩을 통해서 생성말고 HeidiSQL 프로그램을 활용해 직관적으로 클릭 몇번만으로도 생성이 가능하다. 이번 포스팅에서는 지난 시간 생성한 데이터베이스에 POST를 해서 실제 데이터를 저장해보도록 하겠다. 만약 데이터베이스가 생성이 안되어 있다면 지난 포스팅을 참고 혹은 직접 Heidisql로 생성을 해두고 실습하면 될거 같다. 지난번 만든 데이터베이스를 활용해야 하기 때문에 지난 포스팅에서 만들어둔 데이터베이스의 구조는 아래와 같다. 서버..
FCM (Firebase Cloud Messaging) 푸시 알림 실습 (push notification) 지금까지 FCM과 안드로이드 연동, FCM을 이용한 어플에서 구글 계정 로그인, 페이스북 계정 로그인 (아직 완료버전까지 포스팅은 못했지만....) 까지 실습해 보았다. 이번 포스팅에서는 FCM의 기능중 하는 cloud messaging 인 push notification에 대하여 실습해보겠다. 한마디로 FCM 콘솔에 들어가서 관리자가 날리는 push를 설치한 모든 유저에게 noti를 해주는 방식이다. 일단 실습을 하기전에 자신의 계정 FCM과 안드로이드가 연동된 상태여야 한다. 방법은 아래의 링크를 참고해서 연동만 시켜두고 본 포스팅을 따라하도록 하자. 아마 내가 올려놓을 코드를 그대로 다운받아서 자신의 FCM 계정에 연동시키려 한다면 패키지명도 변경하고 이것저것 에러가 나올 수 있다...그럴바에는 얼..
[GitHub 사용법] 깃허브 사용해보기 - Source tree (GitHub by using Source tree) - GitHub 사용해보기 (Source tree 사용) - 본 포스팅에서는 깃허브를 "Source tree" 프로그램을 이용해서 사용한다. - GitHub에 대한 자세한 설명은 이전 포스팅 (https://neosla.tistory.com/30) 를 참고하며, 본 포스팅에서는 GitHub설명은 생략하도록 한다. - Source tree는 Github를 GUI 환경에서 사용할 수 있는 응용프로그램으로, 주로 일본에서 자주 사용된다. - Source tree which have several advantages of: (1) Simplicity and power in a beautiful Git GUI(2) A free Git client for Windows and Mac - We can install ..
[GitHub 사용법] 깃허브 이론 및 사용해보기 (1) 본 포스팅에서는 깃허브의 이론 및 사용방법에 대해서 알아보도록 하겠다.프로그래밍을 하다보면 항상 코드 관리가 어렵다.... 나도 처음에는 로컬에서 개인적으로 코드관리를 하다보니까 나중에 어떤 코드가 어떤 코드였는지 잊어먹고 하나씩 열어보고서야 확인을 하는 수고를 했다.... 깃의 존재는 알았지만 그다지 필요성은 못느끼다가 코드가 방대해지거나 하나의 프로젝트를 다같이 진행할때 깃이 꼭 필요하다는 것을 느끼고 최근에 깃의 사용방법을 알아보고 나만의 저장소로 쓰기로 결심하였다. 그래서! 이번 포스팅에서는 깃의 이론과 첫번째 커밋을 해보도록 하겠다. 깃 (Git)의 정의는 프로그램 등의 소스 코드 관리를 위한 분산버전 관리 시스템으로 깃의 작업 폴더는 모두 기록하고 있어서 추적이 가능하고, 완전한 형태의 저장소..