본문 바로가기

ROS2

[Nav2] AMCL(Adaptive Monte Carlo Localization) package 분석
2024. 1. 9. 02:16
이 글은 Particle Filter에 대한 기본 이해가 필요합니다. Nav2에서 기본적으로 로봇의 localization 문제를 AMCL(Adaptive Monte Carlo Localization)을 통해 해결한다. AMCL package가 어떻게 동작되는지 분석해 봤다. AMCL(Adaptive Monte Carlo Localization) 이란? AMCL은 Particle Filter를 이용하여 로봇의 위치를 추정한다. Particle Filter에 대해 간단하게 소개하자면 특정 분포를 가지고 있지 않는 nonparametric 한 모델을 위한 베이즈 필터를 구현한 것이다. 이 포스트는 주요한 아래 4가지를 어떻게 구현하였는지에 초점을 둔다. 로봇의 위치 sample(particle)을 어떻게 생..
[ROS2] Callback group 개념 및 Deadlock 문제 해결
2024. 1. 4. 16:25
ROS2에서는 callback group이라는 개념이 있다. callback group을 모르고 개발하다 보면 특수한 상황에서 deadlock이 발생할 수도 있다. Callback group 이란? 기본적으로 ROS는 수 많은 Callback function들을 사용하게 된다. (topic subscriber, service server, action server 등) 이런 Callback function들을 관리하기 위해 사용되는 것이 Callback group이다. Callback group은 2가지 유형을 제공한다. Mutually Exclusive Callback Group Reentrant Callback Group 두가지의 차이점은 뭘까? 첫 번째로 Mutually Exclusive Callb..
[ROS2] Life cycle node 개념 및 Nav2 예시 살펴보기
2024. 1. 4. 02:45
이 글은 Managed node에 이점과 Lifecycle에 대한 내용이 주로 되어 있습니다. Life cycle node란? Life cycle node는 일반 Node와 관리 Node의 Life cycle을 관리할 수 있다. 이러한 이점으로 인해 Nav2, Moveit2와 같은 대중적인 ROS library는 Managed node로 구성되어 있다. Life cycle의 관리는 통해 우리는 아래와 같은 상황에서 컴퓨터 자원을 절약이 가능하다. Node를 재시작해야 할 경우 Node가 항상 켜져있지 않아도 될 경우 종종 예상치 못한 버그로 Node를 재시작해야 할 경우가 있다. 이때 일반 Node라면 실행 중인 Node의 Process를 중단하고 새로운 Process를 생성한다. 이는 불필요한 자원 낭..
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 받기 $ ..