Latest Post
-
로봇을 위한 저지연 통신 구축, gRPC (1) : gRPC를 사용하는 이유, 설치 방법
Why gRPC ? 다른 분야도 마찬가지이지만, 주행 중인 모바일 로봇은 안전상의 이유로 특히 초저지연 통신을 구축할 필요가 있습니다. (장애물 회피 등) 보통의 개발 로봇의 경우 ROS 1,2를 기반으로 이미지 데이터를 받아오고 이를 처리합니다. 하지만 범용성에 초점을 두고 개발된 ROS 통신 자체의 latency 때문에 상용 로봇 단계로 갈 수록 ROS가 아닌 커스텀 통신 패키지를 사용하여 더 빠른 통신 시스템을 구축하게 됩니다. gRPC는 프로토콜 버퍼를 직접 정의함으로써 사용자가 원하는 형태로 데이터를 보낼 수 있고, 인터페이스가 쉬우며 HTTP/2 기반으로 속도가 빠르기 때문에 gRPC를 이용하여 로봇 센서 데이터를 송수신하는 것은 다양한 측면에서 이점이 많습니다. 앞으로의 포스팅을 통해서 ..
-
싱글보드 컴퓨터 위에서 돌아가는 딥러닝 모델, RKNN (2) : 설치
RKNN 을 시작하신다면 일단 두 가지 컴퓨터를 가지고 계실 겁니다. 1) 리눅스 우분투 머신2) 우분투가 깔려 있는 오렌지 파이 RKNN 을 사용하시려면 두 가지가 다 필요합니다. 1. Ubuntu 20.04 에서 rknn_toolkit 2 깔기 오렌지 파이를 쓰기 위해 rknn 을 사용함에도 불구하고 Ubuntu 에 rknn_toolkit2 를 깔아야 하는 이유는 , 오렌지 파이에서는 최신 rknn 툴킷 2.0을 사용할 수 없기 때문입니다. https://github.com/airockchip/rknn-toolkit2/ GitHub - airockchip/rknn-toolkit2Contribute to airockchip/rknn-toolkit2 development by creating an a..
-
싱글보드 컴퓨터 위에서 돌아가는 딥러닝 모델, RKNN (1) : Overview
RKNN toolkit 은 model 변환, inference, 그리고 모델 성능 평가를 PC 혹은 RK 칩 시리즈에서 수행할 수 있도록 하는 SDK입니다. 오렌지 파이 에는 Rockchip 이라는 회사에서 만든 NPU (RK3588) 가 탑재되어 있는데, RKNN 은 작고 소박한 NPU 에서 큰 딥러닝 모델이 돌아갈 수 있도록 최적화하는 패키지입니다. TensorRT 의 Rockchip 버전이라고 보시면 될 것 같습니다. RKNN에는 다음과 같은 기능들이 있습니다. Model Conversion : Caffe, Tensorflow, ONNX, Darknet 모델들을 RKNN 모델로 변환할 수 있습니다.Quantization : float 모델을 quantization 모델로 변환할 수 있습니다.Mod..
-
FAST-SLAM : Feature Based SLAM with Particle Filters
FAST SLAM 은 EKF-SLAM 과 비슷하게 Feature 를 이용해서 map 을 작성하는 SLAM 방식입니다. 다만 EKF 와는 달리, pose 의 가정을 Gaussian 으로 하지 않고 파티클 필터를 사용합니다. 이전 Monte-Carlo Localization 에서 state 로 두었던 것은 1차원, 혹은 2차원 상에서의 로봇의 pose 였습니다. 그런데 우리가 다루는 환경은 3차원이고, 차원의 갯수가 늘어날 수록 파티클 갯수도 지수적으로 증가하게 됩니다. 따라서 파티클 필터는 파티클의 갯수가 많지 않은 low-dimension 에서 잘 작동하는 것입니다. 그래서 EKF SLAM 에서처럼 state 를 정의한다면 너무나 많은 파티클들이 필요해집니다. 이것이 랜드마크까지 포함하고 있는 stat..
-
파티클 필터와 Monte Carlo Localization
Particle Filter 를 이용해서 Localization 을 하는 방식을 Monte-Carlo Localization 이라고 합니다. 지금까지는 칼만 필터를 사용했는데, 칼만 필터의 가장 기본적인 전제는 선형성과 가우시안 필터였습니다. 이 말은 확률 분포를 (랜드마크, 혹은 로봇이 있을 확률 등) 두 개의 파라미터로 표현할 수 있다는 것입니다. State 가 진행됨에 따라서 그 가우시안 분포가 계속 유지되게 하기 위해서는 선형성을 유지해야 했습니다. 다만 실제 세계에서는 선형적으로 State 가 바뀌는 경우가 잘 없기 때문에 EKF 등을 도입했습니다. 칼만 필터는 가우시안 분포를 사용하기 때문에 Parametric 한 방법이라고 말 할 수 있습니다. 그렇지만 이는 선형성을 가정했고, 아무리 EKF..
-
로봇을 위한 저지연 통신 구축, gRPC (1) : gRPC를 사용하는 이유, 설치 방법
Why gRPC ? 다른 분야도 마찬가지이지만, 주행 중인 모바일 로봇은 안전상의 이유로 특히 초저지연 통신을 구축할 필요가 있습니다. (장애물 회피 등) 보통의 개발 로봇의 경우 ROS 1,2를 기반으로 이미지 데이터를 받아오고 이를 처리합니다. 하지만 범용성에 초점을 두고 개발된 ROS 통신 자체의 latency 때문에 상용 로봇 단계로 갈 수록 ROS가 아닌 커스텀 통신 패키지를 사용하여 더 빠른 통신 시스템을 구축하게 됩니다. gRPC는 프로토콜 버퍼를 직접 정의함으로써 사용자가 원하는 형태로 데이터를 보낼 수 있고, 인터페이스가 쉬우며 HTTP/2 기반으로 속도가 빠르기 때문에 gRPC를 이용하여 로봇 센서 데이터를 송수신하는 것은 다양한 측면에서 이점이 많습니다. 앞으로의 포스팅을 통해서 ..
-
싱글보드 컴퓨터 위에서 돌아가는 딥러닝 모델, RKNN (2) : 설치
RKNN 을 시작하신다면 일단 두 가지 컴퓨터를 가지고 계실 겁니다. 1) 리눅스 우분투 머신2) 우분투가 깔려 있는 오렌지 파이 RKNN 을 사용하시려면 두 가지가 다 필요합니다. 1. Ubuntu 20.04 에서 rknn_toolkit 2 깔기 오렌지 파이를 쓰기 위해 rknn 을 사용함에도 불구하고 Ubuntu 에 rknn_toolkit2 를 깔아야 하는 이유는 , 오렌지 파이에서는 최신 rknn 툴킷 2.0을 사용할 수 없기 때문입니다. https://github.com/airockchip/rknn-toolkit2/ GitHub - airockchip/rknn-toolkit2Contribute to airockchip/rknn-toolkit2 development by creating an a..
-
싱글보드 컴퓨터 위에서 돌아가는 딥러닝 모델, RKNN (1) : Overview
RKNN toolkit 은 model 변환, inference, 그리고 모델 성능 평가를 PC 혹은 RK 칩 시리즈에서 수행할 수 있도록 하는 SDK입니다. 오렌지 파이 에는 Rockchip 이라는 회사에서 만든 NPU (RK3588) 가 탑재되어 있는데, RKNN 은 작고 소박한 NPU 에서 큰 딥러닝 모델이 돌아갈 수 있도록 최적화하는 패키지입니다. TensorRT 의 Rockchip 버전이라고 보시면 될 것 같습니다. RKNN에는 다음과 같은 기능들이 있습니다. Model Conversion : Caffe, Tensorflow, ONNX, Darknet 모델들을 RKNN 모델로 변환할 수 있습니다.Quantization : float 모델을 quantization 모델로 변환할 수 있습니다.Mod..
-
FAST-SLAM : Feature Based SLAM with Particle Filters
FAST SLAM 은 EKF-SLAM 과 비슷하게 Feature 를 이용해서 map 을 작성하는 SLAM 방식입니다. 다만 EKF 와는 달리, pose 의 가정을 Gaussian 으로 하지 않고 파티클 필터를 사용합니다. 이전 Monte-Carlo Localization 에서 state 로 두었던 것은 1차원, 혹은 2차원 상에서의 로봇의 pose 였습니다. 그런데 우리가 다루는 환경은 3차원이고, 차원의 갯수가 늘어날 수록 파티클 갯수도 지수적으로 증가하게 됩니다. 따라서 파티클 필터는 파티클의 갯수가 많지 않은 low-dimension 에서 잘 작동하는 것입니다. 그래서 EKF SLAM 에서처럼 state 를 정의한다면 너무나 많은 파티클들이 필요해집니다. 이것이 랜드마크까지 포함하고 있는 stat..
-
파티클 필터와 Monte Carlo Localization
Particle Filter 를 이용해서 Localization 을 하는 방식을 Monte-Carlo Localization 이라고 합니다. 지금까지는 칼만 필터를 사용했는데, 칼만 필터의 가장 기본적인 전제는 선형성과 가우시안 필터였습니다. 이 말은 확률 분포를 (랜드마크, 혹은 로봇이 있을 확률 등) 두 개의 파라미터로 표현할 수 있다는 것입니다. State 가 진행됨에 따라서 그 가우시안 분포가 계속 유지되게 하기 위해서는 선형성을 유지해야 했습니다. 다만 실제 세계에서는 선형적으로 State 가 바뀌는 경우가 잘 없기 때문에 EKF 등을 도입했습니다. 칼만 필터는 가우시안 분포를 사용하기 때문에 Parametric 한 방법이라고 말 할 수 있습니다. 그렇지만 이는 선형성을 가정했고, 아무리 EKF..
-
Ceres-Solver Tutorial : 최적화 문제를 푸는 라이브러리 (1)
다음은 Ceres-Solver 튜토리얼 사이트 (http://ceres-solver.org/nnls_tutorial.html) 를 번역하고 추가적인 설명을 덧붙인 글입니다. Ceres Solver는 대규모 비선형 최적화 문제를 푸는 오픈소스 C++ 라이브러리이다. 구글 엔지니어들에 의해 개발되었고, 특히 컴퓨터 비전, 로봇공학 등의 분야에서 자주 사용된다. 이 라이브러리는 Levenberg-Marquardt, Dogleg, 및 이러한 방법을 확장한 Trust Region 방식과 같은 최적화 알고리즘을 제공한다. Ceres Solver의 주요 특징은 다음과 같다: 자동 미분 지원: 사용자는 비선형 함수의 수식을 제공하면 Ceres가 자동으로 미분을 계산한다. 이는 복잡한 함수에 대한 미분을 직접 계산할 필..
-
SLAM 에서의 Kalman filter : 콘셉트부터 EKF 까지
IntroductionSLAM 은 State 의 확률 분포를 Estimation 하는 문제입니다. 우리는 이때 Markov 가정을 적용해서 내가 현재의 State 를 알기 위해서는 1. 이 전 단계의 state 와 2. 이 전 단계에서 현재의 state 로 오기 위한 명령 3. 현재의 state 에서 주변 환경으로부터 획득한 정보 이 세 가지의 값이 있으면 매 단계마다 state 를 update 할 수 있습니다. 그래서 이러한 예측에 전통적으로 많이 사용되었던 Bayes 필터는 두 가지의 단계가 있습니다. 첫 번째는 Prediction, 두 번째는 Correction 인데요, Prediction 은 과거의 State 와 Control 을 이용해서 현재의 State 를 예측하는 단계입니다. 어떤 예측을 수..
-
로봇 회사 현장실습에서 한 일 🤖
기간 : 2023년 12월 22일 ~2024년 2월 29일 기업 : F&B 산업을 위한 로봇 팔 제작 회사 한 일 : 로봇 팔의 충돌 추정을 위한 딥러닝 모델 개발 상세 : 외부 센서 없이 조인트 포지션만 이용하여 로봇 팔에 충돌이 있었는지 감지하는 딥러닝 모델을 만들었고, 새롭게 트랜스포머 구조를 적용하였다. 이에 관해 논문 작성 중. 1주차 첫 주차에는 MuJoCo 시뮬레이터를 세팅했다. 회사에서 제작한 로봇 팔의 URDF 를 받아와서 Ubuntu 환경에서 RViz 로 우선 생김새를 확인하고, 이를 무조코에서 쓸 수 있도록 MJCF 형태로 변환한 후 무조코 시뮬레이터에서 띄웠다. 또한 무조코 시뮬레이터에서 각 관절 각도를 받아와서 출력하는 코드를 작성했다. 역기구학을 풀 수 있는 패키지인 RBDL-p..