전체 글

세상을 바꿀 가치있는 일을 그리고 있습니다.
Phase 1 | ROS로 조명 및 공조 시스템 제어하기 1. 리눅스에서 ROS 환경 세팅하기 2. ROS 웹 Dashboard 구현 3. ROS와 웹 연동 4. ROS와 NodeMCU(ESP8266, ESP-12)연동 5. NodeMCU를 위한 모듈 설계하기 6. ROS로 NodeMCU 제어하기 7. 루틴 만들고 설정하기 rosserial로 아두이노에서 ROS 사용하기. 지금까지 ROS + roslibjs + Django 를 통해 ROS를 웹 환경에서 제어하는 데까지 성공했습니다. 이번에는 명령을 내리면, 실제로 그 작업을 수행하는 과정을 구현해보겠습니다. 아두이노에서 ROS를 Native로 사용하긴 어렵지만, rosserial을 이용하면 간단한 Publisher / Subscriber / Servic..
Phase 1 | ROS로 조명 및 공조 시스템 제어하기 1. 리눅스에서 ROS 환경 세팅하기 2. ROS 웹 Dashboard 구현 3. ROS와 웹 연동 4. ROS와 NodeMCU(ESP8266, ESP-12)연동 5. NodeMCU를 위한 모듈 설계하기 6. ROS로 NodeMCU 제어하기 7. 루틴 만들고 설정하기 ROS Service Server 생성 이전 포스팅에서 roslibjs를 활용해 웹에서 데이터를 요청하고 받는 서비스 클라이언트를 생성했습니다. 위 다이어그램의 녹색 부위는 모두 완료한 셈입니다. 이제 붉은 부분을 해야 합니다. ROS에서도 요청을 받고 처리한 후 웹에 응답해줄 서비스 서버를 만들어야 합니다. 이번에는 C++ 기반의 ROS서비스 서버를 생성해보겠습니다. 아래의 명령어를..
Phase 1 | ROS로 조명 및 공조 시스템 제어하기 1. 리눅스에서 ROS 환경 세팅하기 2. ROS 웹 Dashboard 구현 3. ROS와 웹 연동 4. ROS와 NodeMCU(ESP8266, ESP-12)연동 5. NodeMCU를 위한 모듈 설계하기 6. ROS로 NodeMCU 제어하기 7. 루틴 만들고 설정하기 roslibjs설치로 웹페이지에 생명 불어넣기 지금까지 HTML +CSS로 웹페이지를 꾸몄습니다. 이전 포스팅들에서 종종 비유했듯, 지금까지 그냥 기초공사와 외벽만 세우고, 인테리어만 했습니다. 전기 없고, 인터넷 없고, 수도와 하수구 없는 집에 사람이 살 수 없듯, HTML과 CSS자체만으로는 어떤 역할도 수행하지 못합니다. 이제 여기에 javascript를 통해 생명을 불어 넣어 ..
Phase 1 | ROS로 조명 및 공조 시스템 제어하기 1. 리눅스에서 ROS 환경 세팅하기 2. ROS 웹 Dashboard 구현 3. ROS와 웹 연동 4. ROS와 NodeMCU(ESP8266, ESP-12)연동 5. NodeMCU를 위한 모듈 설계하기 6. ROS로 NodeMCU 제어하기 7. 루틴 만들고 설정하기 직접 만든 HTML 호스팅하기 지난 포스팅에서 python manage.py runserver 명령을 통해 서버를 실행해봤습니다. 이번에는 Dashboard가 될 페이지를 만들어 보고, 127.0.0.1:8000에 진입했을 때, 그 html 파일이 불러와지도록 해보겠습니다 ~/catkin_ws/src/cranberry_web/dashboard/templates/dashboard 에 i..
Phase 1 | ROS로 조명 및 공조 시스템 제어하기 1. 리눅스에서 ROS 환경 세팅하기 2. ROS 웹 Dashboard 구현 3. ROS와 웹 연동 4. ROS와 NodeMCU(ESP8266, ESP-12)연동 5. NodeMCU를 위한 모듈 설계하기 6. ROS로 NodeMCU 제어하기 7. 루틴 만들고 설정하기 가장 먼저 해야 할 일 Django를 설치했으니 이제 웹서버를 구동해보도록 하겠습니다. 대부분 그렇듯, 프로젝트를 먼저 만들어야 합니다. cranberry_web이라는 이름의 프로젝트를 만들겠습니다. cd ~/catkin_ws/src/Cranberry django-admin startproject cranberry_web cd cranberry_web python manage.py m..
Phase 1 | ROS로 조명 및 공조 시스템 제어하기 1. 리눅스에서 ROS 환경 세팅하기 2. ROS 웹 Dashboard 구현 3. ROS와 웹 연동 4. ROS와 NodeMCU(ESP8266, ESP-12)연동 5. NodeMCU를 위한 모듈 설계하기 6. ROS로 NodeMCU 제어하기 7. 루틴 만들고 설정하기 가장 흥미로운 Front-end 생성 지금 하고 있는 ROS IoT 스마트홈 프로젝트는 IT 솔루션으로 치면 SI에 가깝다고 볼 수 있습니다. 대부분 이런 일을 할 때 가장 흥미로운 부분이 있다면 그건 아마 프론트엔드를 만드는 과정일 것입니다. 가장 큰 이유는 일단 상대적으로 구현하기 쉽고, 눈으로 그 결과를 바로 확인할 수 있기 때문입니다. 기획을 할 때도 대부분 프론트엔드를 먼저 ..
· Works/ROS
필요한 우분투와 ROS 버전 확인 설치 전, 리눅스 버전에 대해 설명드리겠습니다. ROS는 Debian, Windows 10 등 다양한 OS에서의 작동을 지원하지만 Ubuntu를 공식지원하며, Ubuntu 환경을 이용하는 유저가 절대다수입니다. 따라서 저희는 Ubuntu 환경에서 ROS를 설치하겠습니다. Ubuntu는 Native나 VM이나 큰 상관이 없습니다. 사용하시는 PC에 Ubuntu를 듀얼부팅으로 설치하기가 꺼려지신다면 VIrtualBox등을 이용해 설치하셔도 됩니다. Ubuntu 버전에 따라 지원되는 ROS의 버전이 다릅니다. 아래의 표에 적힌 Ubuntu 버전과 ROS 버전이 일치하지 않는다면 정상적으로 작동하지 않을 수 있습니다. Ubuntu Version ROS Version Ubuntu..
Phase 1 | ROS로 조명 및 공조 시스템 제어하기 1. 리눅스에서 ROS 환경 세팅하기 2. ROS 웹 Dashboard 구현 3. ROS와 웹 연동 4. ROS와 NodeMCU(ESP8266, ESP-12)연동 5. NodeMCU를 위한 모듈 설계하기 6. ROS로 NodeMCU 제어하기 7. 루틴 만들고 설정하기 큰 그림. 복잡한 ROS 설치 과정을 마친 것만으로도 감사하며, 또 축하한다는 말을 드리고 싶습니다. 이제 제가 구현하고 있는 ROS IoT 스마트홈의 대략적인 구조를 보여드리겠습니다. 이 그림만 잘 기억한다면, 설치 과정을 마무리하고 기능들을 구현하는 것은 일도 아닐거라 생각합니다. ROS 환경 세팅 1. ROS Melodic 설치 가. 우분투 레포지토리 구성 나. source.li..
Phase 1 | ROS로 조명 및 공조 시스템 제어하기 1. 리눅스에서 ROS 환경 세팅하기 2. ROS 웹 Dashboard 구현 3. ROS와 웹 연동 4. ROS와 NodeMCU(ESP8266, ESP-12)연동 5. NodeMCU를 위한 모듈 설계하기 6. ROS로 NodeMCU 제어하기 7. 루틴 만들고 설정하기 ROS는 노드 간 통신을 지원하는 프로토콜의 개념으로서 존재합니다. 따라서 노드 간 통신을 위해서는 중앙에서 허브 역할을 하는 ROS 프로그램 설치가 필요합니다. 이 포스팅에서는 ROS 설치 과정에 대해 필요한 명령어만 입력해서 설치해보겠습니다. 더 상세한 내용은 ROS Wiki에나 아래의 글을 통해 확인하실 수 있습니다. Ubuntu 18.04 + ROS Melodic 설치 방법 정..
이 명분이 없다 아입니까, 명분이 모바일 디바이스가 많아질수록 충전에 대한 고민에 빠지는 것은 어쩌면 당연한 일입니다. 그래서 예전에는 3구 멀티탭을 들고다니기도 했습니다. 알리익스프레스에서 위와 같은 제품을 3달러에 팔길래 한 번 사 봤습니다. 한 2주 가고 녹아서 버렸습니다. 충전기는 좀 제대로 된 걸 사야겠다 싶었습니다. 그러다 Baseus 65W GaN 충전기를 보며 하나 살까? 하는 생각을 했지만 제게 USB-C 충전을 지원하는 기기가 스마트폰과 보조배터리뿐이라는 것을 깨닫고 구입할 생각을 깔끔하게 접었습니다. 명분이 없었습니다. 그램을 샀다 아이가, 그거보다 더 큰 명분이 이 세상에 또 있나? 그러다 그램을 우연히 좋은 가격에 구하게 되었습니다. 이제 USB-C를 사용하는 기기가 3개에 에어팟..
Blynk는 최고의 IoT DIY 플랫폼이지만, 스마트홈은 글쎄..?지난번에 스마트홈 관련 글을 쓰다 말아서, 뭔가 죄송스럽게 되었습니다. 그렇게 되어 버린 이유로 일단은 군대라는 특수한 환경 핑계를 대겠습니다. 그런데, 더 이상의 글을 포스팅하지 않은데는 사실 더 큰 이유가 있습니다. Blynk를 쓰다보니 커스터마이징이 어려워 제 스마트홈 프로젝트에 완벽하게 부합하지 않았습니다. 물론 Blynk는 대체가 어려운 최고의 IoT 플랫폼이라는 데는 동의합니다. 그러나 장치들끼리 유연하게 연동되어 작동하는 그런 형태의 IoT와는 조금은 거리가 있습니다. IoT를 일차원적으로 원격제어 / 모니터링 용도로만 사용하신다면 아주 좋습니다. 그렇지만 거기까지입니다. A부터 Z까지, 스마트홈 플랫폼을 구축해보기로 한다...
객체 탐지(ObjectDetection)이란? 컴퓨터 비전 중, 카메라를 통해 얻을 수 있는 이미지 스트림에서 물체를 인식하는 기술을 의미합니다. YOLO(You Only Look Once) 딥러닝을 통한 객체 탐지 모델은 크게 R-CNN, SSD, YOLO가 있습니다. 객체탐지 모델들이 우선적으로 당면한 문제 중 하나는, 실제 서비스를 할 수 있을 만큼 탐지 속도와 정확도를 올려야 한다는 겁니다. 정확도와 탐지 속도(mAP : mean Average Precision)는 trade-off 관계입니다. 탐지 속도가 높으면 그만큼 정확도는 낮아지고, 정확도가 낮아지면 그만큼 탐지 속도가 올라갑니다. YOLO는 괜찮은 수준의 mAP와 FPS를 가집니다. 개인 레벨에서 시범적으로 사용해보기에는 최적의 모델이라..
Whiteknight
꿈속에서조차 너를 그리다