전체 글 75

ROS Basics(1)

이 포스트는 theconstructsim.com의 ROS BASICS 를 참고하였습니다. 이번 포스트에서 다룰 내용은 - ROS 프로그램 구조를 만들고 launch하기 - 기본 ROS 프로그램 만들기 - 기본 ROS 개념 알기 : Nodes, Parameter Server, Envrionment Variables, Roscore Install ROS 참고 자료 - 공식 Wiki : http://wiki.ros.org/melodic/Installation/Ubuntu - 개정증보판 ROS 로봇 프로그래밍(표윤석, 루비페이퍼) 제 환경은 Ubuntu18.04, ROS는 melodic입니다. Ubuntu 16.04를 사용하시는 분은 melodic을 kinetic으로, 20.04를 사용하시는 분은 noetic으..

Visual Slam and Navigation with Intel Realsense D415 and RPLIDAR on Pioneer 3dx by Rtabmap

2D Navigation 결과 Visual SLAM with Camera and LIDAR Visual Navigation 2D SLAM과 Navigation만 실행해보다가 Navigation 결과가 너무 좋지 못해서 2D SLAM시에 artificial feature를 추가해보기도 하고, Probabilistic Robotics를 읽어보고 파라미터 수정을 해보았으나 그래도 결국 나아지는 것은 없었다... 그래서 Visual SLAM과 Navigation을 해봤는데 실험 결과는 매우 성공적이다. 원래 Navigation 시작 시 2D Pose Estimate로 초기 위치를 정해주고 시작하는데, 그럴 필요도 없이 일단 조금 움직이면 자기 위치를 바로 찾는다. 하지만 이미지 프로세싱을 하는 만큼 PC의 배터..

Results/ROS 2020.10.29

8.3. Monte Carlo Localization

1. Illustration MCL(Monte Carlo Localization)은 $bel(x_t)$를 praticle로 나타내는 localization algorithm입니다. 그림 8.11. 은 1차원 복도에서의 MCL예제입니다. initial global uncertainty는 모든 pose space에 uniform하게 생성된 pose particle 집합을 통해 나타냈습니다. 로봇이 문을 감지했을 때, MCL은 그림 (b)와 같이 각각의 particle에 importance factors를 할당합니다. 각각의 particle의 높이는 importance weights를 나타냅니다. 여기서 중요한 점은 각각의 particle은 모두 (a)에서의 파티클과 같은데 가중치만 곱해졌다는 것입니다. (c..

7.2. Markov Localization

probabilistic localization algorithms는 Bayes filter의 변형입니다. localization problem을 위한 직관적인 bayes filter의 응용은 Markov Localization이라고 합니다. 그림 7.1.은 그 기본적인 알고리즘을 보여줍니다. 이 알고리즘은 Bayes_filter로부터 나왔습니다. 차이점은 입력으로 $m$을 필요로 한다는 점입니다. 여기서 map은 line 4의 measurement model $p(z_t | x_t, m)$에서 사용됩니다. 항상은 아니지만, 종종, line 3에서 motion model $p(x_t | u_t, x_{t-1}, m)$에서도 사용됩니다. Bayes filer처럼, markov localization은 시간..

6.6. Feature-Based Measurement Models

1. Feature Extraction 지금까지 소개된 센서 모델들은 모두 raw sensor measurements에 기반했습니다. 다른 접근 방법으로는 measurements로부터 feature를 추출(extract)하는 것입니다. 이제 이 feature extractor를 함수 $f$라고 할 것인데, range measurements로부터 추출된 features는 $f(z_t)$라고 할 것입니다. 대부분은 feature extractors는 high-dimensional sensor measurements로부터 적은 수의 features를 추출합니다. 이 접근법의 key advangate는 계산 복잡도를 크게 줄여주는 것입니다. range sensors에서 벽, 코너, 장애물 같은 물체 등 각각에 ..

6.4. Likelihood Fields for Range Finders

이 글은 Sebastian thrun의 Probabilistic Robotics를 보고 내용을 정리한 글이며, 나름 쉽게 표현하기 위해서 의역을 한 부분이 있습니다. 1. Basic Algorithm 이제 likelihood field라고 하는, beam-based model의 한계점을 극복하는 모델에 대해 알아볼 것입니다. plausible physical explanation으로 이 모델을 설명하기에는 부족한 점이 있습니다. 이는 "ad hoc" 알고리즘이라고 하는데, 이 알고리즘은 센서의 물리학의 어떤 의미있는 생성 모델(any meaningful generative model of the physics of sensors)에 관련된 조건부 확률을 계산할 필요가 없지만, 실제 상황에서는 잘 작동합니..

6.3. Beam Models of Range Finders

이 글은 Sebastian thrun의 Probabilistic Robotics를 보고 내용을 정리한 글이며, 나름 쉽게 표현하기 위해서 의역을 한 부분이 있습니다. 1. The Basic Measurement Algorithm 앞으로 나올 모델은 4종류의 측정 오차를 포함합니다. 이는 작은 측정 노이즈(small measurement noise), 예상치 못한 물체로 인한 오차(errors due to unexpected objects), 물체 감지의 실패로 인한 오차(errors due to failures to detect objects), 설명할 수 없는 무작위 오차(random unexplained noise)입니다. 따라서 요구되는 확률 모델 $p(z_t | x_t, m)$은 이 4가지 확률 ..

6. Robot Perception

이 글은 Sebastian thrun의 Probabilistic Robotics를 보고 내용을 정리한 글이며, 나름 쉽게 표현하기 위해서 의역을 한 부분이 있습니다. 6.1. Introduction 확률적 로보틱스는 센서 측정에서의 노이즈를 분명하게 모델링합니다. 그러한 모델은 로봇의 센서에 내재하는 불확실성을 설명합니다. 이 측정 모델은 조건부 확률 분포 $p(z_t | x_t, m)$으로 모델링 되며, 여기서 $x_t$는 로봇의 pose, $z_t$는 시간 $t$에서의 측정값, $m$은 환경의 지도(map of environment) 입니다 모바일 로봇이 센서를 사용하여 주변 환경을 인식하는 기본적인 문제를 묘사하기 위해, 그림 6.1 (a)는 초음파 거리 스캔(sonar range scan) 24개..

5.4. Odometry Motion model

이 글은 Sebastian thrun의 Probabilistic Robotics를 보고 내용을 정리한 글이며, 나름 쉽게 표현하기 위해서 의역을 한 부분이 있습니다. 이전 포스팅에서 설명한 velocity motion model은 로봇의 pose에 대한 사후 확률을 계산하기 위해 로봇의 속도를 사용했습니다. 그 대안으로, 시간에 대한 로봇의 움직임을 계산하기 위한 기저(basis)로써 오도메트리(odometry) 측정을 사용할 수도 있습니다. 오도메트리는 보통 휠 인코더 정보를 통합(integrate)하여 얻게됩니다. 대부부의 상업적인 로봇들은 그런 통합된 pose 추정을 주기적인 시간마다 제공합니다. 오도메트리 모델도 여전히 에러가 있긴 하지만, 실질적인 경험상 일반적으로 속도 모델 보다는 더 정확합니..

5.3. Velocity Motion Model

이 글은 Sebastian thrun의 Probabilistic Robotics를 보고 내용을 정리한 글이며, 나름 쉽게 표현하기 위해서 의역을 한 부분이 있습니다. 운동학 구성(Kinematic Configuration) 운동학(Kinematics)은 로봇의 구성에서의 컨트롤 액션의 효과를 묘사하는 미적분입니다. 강체(rigid) 모바일 로봇의 구성(configuration)은 일반적으로 6개의 변수, 외부 프레임 좌표계에 대한 3차원 직교좌표계 및 3개의 오일러 각(roll, pitch, yaw)로 나타냅니다. 평면에서의 로봇의 자세(pose)는 그림 5.1에 나타내었습니다. 이는 외부 프레임 좌표계에 대해 각도 방향을 포함한 2차원 평면 좌표계로 구성됩니다. 평면 좌표는 $x$와 $y$로 나타내며(..