Works

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 설치 방법 정..
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를 가집니다. 개인 레벨에서 시범적으로 사용해보기에는 최적의 모델이라..
Raspberry Pi OS는 한계가 명확합니다. 이전 글에서 설명했듯, Raspberry Pi OS는 깔끔하고 최적화가 잘 되어 있는 OS입니다. 그러나 그 장점은 어디까지나 라즈베리파이를 교육용으로 사용했을 때 유효합니다. 저는 ROS를 사용하기 위해 라즈베리파이를 구입했습니다. 그리고 ROS를 설치해야 했습니다. ROS Wiki에는 Raspberry Pi OS에서도 설치할 수 있다고는 하지만, 알 수 없는 오류로 설치가 수 차례 좌절되면서, 라즈베리파이에 그냥 우분투를 설치하고 우분투 환경에서 ROS를 구동하는 게 더 안정적이겠다 판단해, 우분투를 설치하게 되었습니다. 이번 포스팅에서는 우분투를 설치하는 방법과, 설정 방법에 대해 자세한 설명과 옵션을 함께 포함해 설치해보도록 하겠습니다. 모든 내용..
microSD로 OS 구동은 도저히 쓸 수 없을 것 같았습니다. 유튜브로 라즈베리파이 구동 영상을 봤을 땐, 생각보다 빠릿빠릿하게 돌아가는 걸 확인할 수 있었습니다. 그런데 직접 돌려보니 실사용이 불가능할 정도로 느렸습니다. 리소스 점유율도 낮은데 자꾸 프리징이 걸렸습니다. 처음엔 기계에 문제가 있나 싶었습니다. 이유를 알고 보니 A1 로고가 붙지 않은 microSD에 OS를 돌려서 그랬던 거였습니다. 일반 microSD는 랜덤IO(4k) 성능이 좋지 않아서 OS를 구동하는데 적합하지 않습니다. 따라서 랜덤IO에 특화된 A1 로고가 붙은 카드를 사용해야 합니다. 저는 이 시점에서 microSD로 OS 구동하는 걸 포기했습니다. (2020. 10. 9. 추가) A1 로고가 붙은 카드 위에 OS를 설치하면 ..
Raspberry Pi OS는 한계가 명확합니다. 이전 글에서 설명했듯, Raspberry Pi OS는 깔끔하고 최적화가 잘 되어 있는 OS입니다. 그러나 그 장점은 어디까지나 라즈베리파이를 교육용으로 사용했을 때 유효합니다. 저는 ROS를 사용하기 위해 라즈베리파이를 구입했습니다. 그리고 ROS를 설치해야 했습니다. ROS Wiki에는 Raspberry Pi OS에서도 설치할 수 있다고는 하지만, 알 수 없는 오류로 설치가 수 차례 좌절되면서, 라즈베리파이에 그냥 우분투를 설치하고 우분투 환경에서 ROS를 구동하는 게 더 안정적이겠다 판단해, 우분투를 설치하게 되었습니다. 이번 포스팅에서는 우분투를 설치하는 방법과, 설정 방법에 대해 자세한 설명과 옵션을 함께 포함해 설치해보도록 하겠습니다. 모든 내용..
7년간의 고민 끝에 결국 구입했습니다. 라즈베리파이. 간단한 심심풀이 프로젝트로는 아두이노로 대부분의 것들을 해낼 수 있지만, 아두이노처럼 매 번 실행할 때마다 업로드를 해야한다든지 그런 문제에서 자유롭게, 조금 더 쾌적한 취미생활을 영위하고 싶다면. 라즈베리파이만한 제품이 또 없는 것 같습니다. 라즈베리파이가 시장에 나온 지 8년, 그동안 라즈베리파이는 개발 보드에서 하나의 플랫폼으로서 확실히 자리매김했다..라기보다 파격적인 성능에 파격적인 가격으로 시장의 선구자 역할을 했고, 지금도 그런 보드입니다. 저는 라즈베리파이 출시되자 저걸 한 번 사봐야겠는데...라고 입맛을 다셨었습니다. 그럼에도 구입하지 않았습니다. 큰 이유는 쓸 줄 몰라서였습니다. 어떤 물건이든 그걸 알아보는 사람에게 그 물건의 가치가 ..
백지에서 새로운 기능을 구현하는것은 어렵습니다. 그렇게 느끼는 가장 큰 이유는 어디서부터 시작해야할지 모르기 때문입니다. 우리가 지금까지 20여 년에 걸쳐 뭔가를 해결해본 경험들 중 가장 많은 비중을 차지했던건 단순한 문제들이었습니다. 그래서 저는 이전 포스팅에서 구현하고자 하는 기능을 머리 속에만 담지 말고 그 기능들을 분할하고 클래스별로 역할을 나누라는 제안을 했습니다. 그러나 클래스별로 역할을 나눠도 사실 뭔가를 하기에는 딱히 답이 나오지 않습니다. 그래서 또 하나의 제안을 하겠습니다. 구현하고자 하는 기능을 문제로 만드세요. 구현하고자 하는 기능을 문제로 만들어보면 프로그램을 제작하는데 접근하는 시각이 조금 달라집니다. 일단 '문제' 라는 건 우리가 오랫동안 풀어왔던 그 문제의 언어 형식과 비슷하..
건물을 짓기 전에는 설계를 먼저 해야 합니다. 프로그램도 마찬가지입니다. 프로그램을 제작하기 전 설계를 해야 합니다. 그건 규모와 상관 없이 중요한 일입니다. 무슨 일을 하기 전에 계획을 세우는 건 당연한건데, 저는 PyWallpaper를 제작하면서 설계 과정을 따로 거치지 않았습니다. 그랬던 것에 대한 반성 겸 이 글을 보고 프로그램을 만드는 누군가가 저와 같은 실수를 하지 않길 바라며 프로그램 구조 설계를 앞부분에 배치해서 글을 씁니다. 프로그램 구조 설계하기 - 요구사항 작성하기 백지에서 뭔가를 시작한다는 건 쉬운 일이 아닙니다. 저도 마찬가지였습니다. 저는 전문 프로그래머도 아니고 프로그래밍을 제대로 배워본 적도 없습니다. 그럼에도 이렇게 백지에서 시작하는 것은, 윈도우의 배경화면을 더 아름답게 ..
4K 모니터를 구입했습니다. 최근에 자취를 새로 하게 되면서 이런 저런 물건들을 많이 구입했습니다. 처음에는 한성 ULTRON 3278 QHD New 제품을 구입했었습니다. 제가 입주해서 모니터를 구입한 시기는 2월 말 - 3월 초 사이. 코로나 바이러스 여파로 인해 물건 수급에 차질이 빚어지면서 물건을 3월 말에나 받아볼 수 있게 되어버렸습니다. 그러나 저는 다른 무엇보다 모니터가 가장 필요한 상황인지라 눈물을 머금고 해당 모델 델 주문을 취소한 다음 LG 32UK50T를 구입하게 되었습니다. 4K 모니터를 구입하자, 이상한 일이 벌어졌다 (쓸데없이 눈만 높아졌다) 모니터가 4K라고 한들, 생각보다 쓸데가 없습니다(...) 유튜브로 4K 영상 몇 번 보는게 다입니다. 넷플릭스 역시 하드웨어 사양 문제로..
최근에 학교에서 열었던 행사에 참석하게 되었습니다. 행사의 이름은 이었으며 2박 3일동안 한글 필기 인식을 하는 모델을 튜닝해서 최적의 모델을 만들어 내는 게 행사의 목표였습니다. 이름 그대로 AI에 대해 아무것도 모르는 사람도 할 수 있을만큼 난이도는 쉬웠습니다. 데이터 수집, 데이터 전처리, 데이터 학습을 위한 모델이 모두 제공되었으며, 참여자가 할 일은 오로지 어떤 데이터를 어떻게 만들 것인가, 학습을 얼마나 할 것인가 정도만 건드리는 것 뿐이었습니다. 저와 제 팀원은 직접 모델을 만들어보고 싶어서 2박 3일동안 모델 튜닝은 안하고 모델 만드는데만 매달렸습니다. 모델을 만들긴 했지만 텐서플로우 1.14버전과 2.0 버전 간 호환성 문제가 발생했습니다. 평가가 안되니 결국 순위권에도 못들어갔습니다. ..
Whiteknight
'Works' 카테고리의 글 목록 (4 Page)