본문 바로가기

전체 글

[ROS2] DDS와 RMW 개념 및 QoS 호환성 확인
2023. 12. 5. 20:06
💡 이 글은 ROS2에서 노드간의 통신의 변경점 및 DDS관련 용어 및 QoS 설정에 관한 내용이 포함되어 있습니다. ROS2는 기본적으로 DDS Middleware를 사용한다. 다양한 DDS 혹은 RTPS 가 호환되는데 작성일 기준 호환되는 벤더는 아래와 같다. eProsima’s Fast DDS → Humble이 기본적으로 사용하는 DDS Middleware RTI’s Connext DDS Eclipse Cyclone DDS GurumNetworks GurumDDS ROS2는 다른 DDS와도 통신이 가능하다. 그 이유는 RMW(Robot MiddleWare)가 RCL(Robot Client Library)와의 통신을 위해 DDS 구현에 대한 추상화 계층을 제공하기 때문이다. (DDS가 도입되면서 RO..
Javascript 비동기 처리 방식의 변화 및 효율적인 처리
2022. 8. 21. 03:05
2022년 기준으로 비동기 처리에는 async & await 함수가 가장 많이 사용되고 있습니다. async & await은 ES8에 해당하는 문법을 통해 우리는 손쉽게 비동기를 처리할 수 있게 됩니다. 과거에는 어떻게 비동기를 처리하고 있었을까요? callback 함수를 통하여 처리 jQuery를 사용한 경험이 있다면 Ajax를 통하여 서버에 request를 전송한 경험이 있을 것입니다. 이때 우리는 response 값을 받기 위해 success에 함수를 넣어 데이터를 callback 함수의 인자를 통하여 전달받았습니다. $.ajax({ url: 'https://www.examples.com/post/1', success: function (payload) { ... } }) 콜백으로 여러가지의 비..
Opencv를 활용한 동전 검출 프로젝트
2022. 8. 8. 14:06
대학교 수업 중 Opencv를 사용하는 창의융합 프로젝트 1 과목에서 수행한 프로젝트로 머신러닝 없이 Opencv만으로 동전을 검출하여 총액을 구하는 프로젝트로 총 60개의 이미지에 있는 동전 검출에 성공해야 한다. 1. 이미지 전처리 동전을 검출하려면 동전의 윤곽선을 추출해야 한다. 하지만 60개의 이미지가 다른 배경에서 찍은 사진이라 무늬가 있는 바닥에서는 무늬까지 윤곽선이 추출되어 확인하는데 어려움이 있다. 그러므로 배경 무늬를 제거하기 위해 Gaussian Blur로 강한 배경 경계선을 지운 후 Bilateral Filter로 동전의 윤곽선은 최대한 유지한 채로 남은 배경의 경계선을 지웠다. 2. 윤곽선에서 원 검출하기 전처리로 만든 윤곽선 이미지에서 원을 검출해야 했다. 그 이유는 동전이 원의 ..
Docker Compose로 Nginx + NodeJS + SSL 환경 만들기
2022. 8. 2. 13:33
만약 NodeJS를 사용하여 만든 웹 서버를 어딘가에 deploy 하고 싶다면 pm2를 사용하거나 nginx로 port를 연 후 proxy를 통하여 실행 중인 NodeJS 웹 서버와 연결하여 사용하게 됩니다. 그 중 Nginx로 환경 제작에 대해 알아보겠습니다. 구성 우선 ssl 까지 하는 것이 목표이기 때문에 저는 certbot을 통하여 ssl 인증서를 발급받기로 하였습니다. 그중 순서의 문제가 하나 발생하였는데요. 바로 ssl 인증서를 발급받기 전까진 key 파일이 없으므로 nginx container가 죽는 상황이 발생하였습니다. 그러므로 총 2개의 docker-compose 파일을 생성하였습니다. docker-compose.yml: 실제 서버 구동용 docker-compose.ssl.yml: ss..
ROS1 Noetic Arduino와 Serial 통신하기
2022. 7. 15. 12:25
ROS1은 TCP/IP 프로토콜을 통하여 Node끼리 통신이 가능합니다. 그러나 Arduino와 같은 인터넷 연결이 안 되는 MCU는 TCP/IP 프로토콜로 통신하기 어렵기 때문에 rosserial package를 설치하여 Arduino와 Serial 통신이 가능하도록 설정해봅시다. 1. Arduino IDE Setup 먼저 아두이노 IDE를 설치해야 합니다. 설치 링크는 아래와 같습니다. 설치 후 Arduino가 설치된 위치를 기억해 주세요! 보통 user home 폴더에 설치가 됩니다 https://www.arduino.cc/en/software Software Open-source electronic prototyping platform enabling users to create interacti..
Docker로 ROS2 Foxy 설치하기 + GUI 설정 (NOVNC)
2022. 7. 9. 07:57
Docker로 설치하는 이유 제가 Docker로 ROS2 Foxy를 설치하려는 이유는 크게 2가지 있습니다 배포에 대한 확장성이 좋다 독립된 작업공간 보장 docker를 사용한다면 개인 PC에서 작업한 것을 로봇 PC에 deploy 할 때 편할 거 같다 라는 생각이 들었습니다. 또한 독립된 작업공간이 보장되어 다른 Application에서 설치한 package 버전이나 설치경로로 인한 충돌이 발생하지 않기 때문에 Docker로 설치하려 합니다 설치방법 이 문서는 docker 설치가 된 이후에 대한 내용만 포함되어 있습니다. 만약 docker가 설치되어 있지 않다면 docker를 먼저 설치 후 아래 항목을 실행해주세요 1. Docker hub 에서 foxy-desktop 버전 image pull 받기 $ ..