본문 바로가기

반응형

Robotics

51일차 - kaggle Lyft Motion Prediction for Autonomous Vehicles 소개 Kaggle? Kaggle은 설치가 필요하지 않고, 커스텀 가능한 주피터 환경을 제공하는 서비스입니다. 무료 GPU를 제공하여 데이터 분석과 머신러닝을 위해 사용하는 경우도 있지만, 더욱 유명한 건 역시 Kaggle Competition이겠죠. 머신러닝에 특화된 플랫폼이다보니 유저 중에는 데이터 분석가가 많고, 기업들은 유저들에게 데이터 셋과 목표(그리고 어마어마한 상금)를 제공하는 대회를 엽니다. 오늘은 이 중 갓 열린, 3개월의 기간 동안 도전할 수 있는 Lyft 사의 자율주행을 위한 모션 예측 대회를 소개하려고 합니다. Lyft Motion Prediction for Autonomous Vehicles https://www.kaggle.com/c/lyft-motion-prediction-autono.. 더보기
50일차 - 파티클 필터 문제 풀이 Empty Cell 네 개의 공간이 있고, 각각의 공간에 파티클이 존재할 확률이 모두 같을 때(=uniform), 파티클을 N개 생성해서 칸 A에 파티클이 존재하지 않을 확률을 구하세요. 답은 다음과 같습니다. 칸 A에 파티클이 존재하지 않을 확률은 0.75, 이를 N 번 반복한다고 생각하면, 칸 A에 파티클이 존재하지 않을 확률은 0.75 ** N이 됩니다. Motion Question 아까와 같은 공간에서 다음과 같은 상황이라고 해봅시다. A에 5개의 파티클, B에 3개, C에 3개, D에 1개의 파티클이 존재합니다. 로봇이 움직인다고 합시다. 측정은 하지 않고요. 로봇은 50% 확률로 가로로 움직이고, 50% 확률로 세로로 움직입니다. 대각선으로 움직이거나, 제자리에 있는 경우는 없습니다. 1번 이.. 더보기
49일차 - 주미(Zumi) Failed to connect Wifi & Kernel Error ('_xsrf' argument missing from post) 해결 Zumi 주미는 인공지능 학습이 가능한 자율주행 자동차 키트로서 얼굴이나 사물을 인식시켜 인공지능의 원리를 배울 수 있습니다. 라즈베리 파이 제로와 Pi카메라, OLED 화면을 탑재하여 프로그래밍 가능하고 파이썬, 아두이노와 웹 기반 블럭 코딩 프로그램을 지원합니다. https://youtu.be/h8sRoflcQMA zumidashboard.ai 접속 불가 주미의 전원을 키면, zumi8667과 같이, zumi + 숫자 네 자리로 시작하는 와이파이가 탐색됩니다. 해당 와이파이에 접속하면 주미를 제어하는 웹 페이지에 접근할 수 있는데요. zumidashboard.ai로 접속하라는 안내 문구가 표시됩니다. zumi8667 같은 와이파이를 잡지 않고 해당 url에 접속하면 다음과 같은 그림이 뜨는데요. 해당.. 더보기
48일차 - Particle Filter, 파티클 리샘플링, Resampling Wheel 파티클 리샘플링 생각했던 것보단 어렵겠지만, 시작해봅시다. 한 번 만들어 놓으면 이후에 어떤 파티클 필터 시스템에서도 사용할 수 있습니다. 여기 3개의 값(x, y, orientation)을 가지는 N 개의 파티클이 있습니다. 또한 N 개의 weights가 있죠. weights를 w1, ..., wN으로 표기하고, 이를 모두 합한 값을 W라고 표기하겠습니다. weights를 노말라이즈 하는 과정은 이전에 Histogram Filter에서 했던 것과 비슷합니다. 노말라이즈 된 weights를 a1, ..., aN으로 표기하겠습니다. a1 = w1 / W 고로 sum(a1, ..., aN) = 1이 됩니다. 이렇게 노말라이즈 된 weights를 사용하여 다시 파티클을 그립니다. a2가 크다면 여러 번 그리고.. 더보기
47일차 - Particle Filter 소개, 로봇 이동 및 파티클 시뮬레이션, Importance Weights 작성 방법 Particle Filter 앞서 살펴본 Histogram Filter, Kalman Filter와 Particle Filter를 비교해보겠습니다. \ State Space Belief Efficiency in Robotics Histogram Filter discrete multimodal exponential approximate Kalman Filter continuous unimodal quadratic (covariance matrix) approximate (exact only in linear system) Particle Filter continuous multimodal ? (4D 이상의 도메인에선 추천되지 않음) approximate 이외에도 파티클 필터는 프로그래밍이 가장 쉽고, 가장.. 더보기
46일차 - ROS Jenkins 배포 실패 (-5 - No address associated with hostname) Mdoc__turtle_teleop_multi_key__ubuntu_bionic_amd64 ROS 패키지 배포 실패 이전에 릴리즈 했던 turtle_teleop_multi_key 패키지가 rosdistro에는 성공적으로 merge 되었지만, 젠킨스 배포에서 실패해 다음과 같은 내용이 메일로 왔습니다. See Changes: ------------------------------------------ [...truncated 29.59 KB...] bionic: Pulling from library/ubuntu Digest: sha256:a61728f6128fb4a7a20efaa7597607ed6e69973ee9b9123e3b4fd28b7bba100b Status: Image is up to date for ubuntu:bionic docker.io/library/ubuntu:bionic + d.. 더보기
45일차 - Manipulator with MoveIt & Gazebo MoveIt! 실행하기 Open Manipulator 깃허브 레포지토리를 다운받았고, catkin_make를 진행했다면, 다음 코드를 실행하여 기본 예제를 실행해볼 수 있습니다. roslaunch open_manipulator_moveit demo.launch MotionPlanning demo.launch 왼쪽 아래 표시되는 MotionPlanning 플러그인의 Context 탭에서 Planning Library를 선택합니다. 저는 가장 많이 사용된다고 하는 RRTConnect를 사용하였습니다. 다음으로 로봇 팔에 표시되는 화살표와 원(=인터랙티브 마커) 움직여 로봇 팔을 원하는 형태로 만들어봅시다. 화살표는 좌표 이동, 원은 회전을 담당합니다. MotionPlanning 플러그인의 Planning 탭.. 더보기
44일차 - OpenManipulator MoveIt! 패키지 생성하기 MoveIt? MoveIt!은 매니퓰레이터를 위한 통합 라이브러리입니다. 모션 플래닝을 위한 빠른 역기구학 해석, 매니퓰레이션을 위한 고급 알고리즘, 로봇 핸드 제어, 동역학, 제어기 등 다양한 기능을 제공하고 있으며, URDF와 SRDF를 통해 로봇에 대한 정보를 입력 받습니다. RViz 플러그인 형태의 GUI 툴을 제공하기 때문에 학습이 쉬우며, C++ 기반 move_group interface, Python 기반 move_commander, RViz Motion Planning Plugin 이외에도 OMPL, KDL, FCL, RRT 등 다양한 오픈소스 기반 라이브러리를 제공합니다. MoveIt! 구조 MoveIt!에는 SPA(Sensing-Plan-Action) 기능이 모두 갖춰져 있습니다. 센싱.. 더보기

반응형