임베디드

    ROS 도구

    RVIZ(ROS Visualization Tool) ROS의 3D 시각화툴 - 레이저, 카메라 등 여러 센서 데이터의 시각화 툴 로봇 외형의 표시와 계획된 동작을 표현 Navigation Manipulation 원격 제어 매우 다양한 형태의 데이터를 RVIZ tool에서 시각화가 가능하다. RQT 플러그인 방식의 ROS의 종합 GUI 툴 rqt는 Qt로 개발되어 있기 때문에 유저들이 자유롭게 플러그인을 개발하여 추가할 수 있다. 대표적인 플러그인으로 rqt_image_view, rqt_graph, rqt_plot, rqt_bag 등이 있다. 위 사진은 rqt_graph 플러그인을 실행했을 때이다. 노드 간 통신이 어떤 식으로 이루어지는지를 쉽게 알 수 있다. Gazebo 로봇 개발에 필요한 3차원 시뮬레..

    ROS 명령어

    Commend-Line Tools ROS 셸 명령어 별표는 명령어의 중요도를 나타냄 roscd(★★★) : ros+cd(changes directory) - 지정한 ROS 패키지의 디렉터리로 이동 rosls(★☆☆): ros+ls(list files) - ROS 패키지의 파일 목록 확인 rosed(★☆☆): ros+ed(editor) - ROS 패키지의 파일 편집 roscp(★☆☆): ros+cp(copies files) - ROS 패키지의 파일 복사 rospd(☆☆☆): ros+pushd) - ROS 디렉터리 인덱스에 디렉터리 추가 rosd(☆☆☆): ros+directory) - ROS 디렉터리 인덱스 확인 ROS 실행 명령어 roscore(★★★): ros+core - master(ROS 네임 서비..

    ROS 중요 컨셉

    ROS 용어 Node 최소 단위의 실행 가능한 프로세서 프로그램은 한 번에 짜는 것이 아니라 여러 개의 노드가 합쳐진 것임(카메라 노드, 라이다 노드 등) 각 노드는 메시지 통신으로 데이터를 주고 받는다. Package 하나 이상의 노드, 노드 실행을 위한 정보 등을 묶어 놓은 것 패키지의 묶음을 메타 패키지라 하여 따로 분리한다. Message 메시지를 통해 노드 간의 데이터를 주고 받게 된다. 메시지는 integer, floating point, boolean과 같은 변수 형태 Topic 단방향이고 연속적으로 이어지는 통신 형태 일방적으로 데이터를 보내는 상황에 사용된다. 예를 들어 거리 센서 등에서 보낼 때 토픽을 쓴다. 목적에 따라서 1:N, N:1, N:N 통신이 가능하다. 가장 많이 쓰인다. ..

    Robotics, Vision and Control [Chap.5]

    Chap.5에서는 Navigation에 대해서 다룬다. Chap.5 - Navigation Navigation은 로봇이 목표를 향해 이동하는 과정을 안내하는 가이드이다. Navigation의 목표는 2가지로 추려진다. move to goal obstacle avoidance 5.1 - Reactive Navigation map이 없어서 plan없이 바로 바로 반응하는 데로 움직이는 경우이다. 들어온 센서 신호에 따라 행동한다. 개미와 단세포 같은 동물들이 움직이는 방식이다. 이 방식을 이용한 간단한 로봇이다. 바퀴에 광센서를 부착하여 빛을 감지하여 이동할 수 있게 하였다. 어느 방향에 광센서를 부착하냐에 따라 빛을 따라가거나 피하게 할 수 있다. 5.1.1 - Braitenberg Vehicles 상단의..

    Robotics, Vision and Control [Chap.4]

    Chap.4부터 드디어 Mobile Vehicle에 대해서 다룬다. Chap.4 - Mobile Robot Vehicles Chap.4에서는 2가지 vehicle에 대해서 다룬다. 하나는 바퀴가 달린 일반적인 모바일 로봇, 다른 하나는 우리나라에서 드론이라고 불리는 quadrotor이다. 나는 드론은 다루지 않으니 나중에 시간이 되면 따로 정리하겠다. 4.1 - Mobility Mobility는 모바일 로봇이 얼마나 잘 움직이냐에 대한 척도이다. 기차는 실제로 2차원으로 움직이지만 철길(선)으로만 움직인다고 생각하면 1차원으로 움직인다고 볼 수 있다. 따라서 기차의 DoF는 1이고, 모터 또한 1개이므로 fully actuated(충분히 작동)라고 한다. 해상 보트의 경우는 앞뒤, 양옆 뿐만 아니라 회전..

    Robotics, Vision and Control [Chap.3]

    Chap.3는 Time and Motion에 대해 다룬다. Chap.2에서는 Frame A에서 Frame B까지 가는데 중간 과정 없이 시작과 끝에 도달하는 계산만 진행했다면 Chap.3에서는 그 중간에서 어떤 과정(얼마나 빠르게, 얼마나 회전)으로 가야하는지도 계산한다. (2장 개념에 시간 개념 등을 추가) Chap.3 - Time and Motion 로봇에서 좌표에 x, y, z를 표기하는 것은 매우 번거로운 일이다. 보통 x, y, z는 차례대로 R, G, B로 표현된다. 위 사진은 손 좌표와 물체 좌표, 목표 좌표, 기준 좌표를 나타냈다. 3.1 - Trajections Path: 시작 A에서 종점 B까지의 단순한 경로를 의미 Trajections: A에서 B까지의 시간에 따른 궤적을 의미. 모터..

    Robotics, Vision and Control [Chap.2]

    Chap.2에서는 로봇에 대한 기초를 배운다. Representing Position and Orientation 위치와 회전에 관해서 설명한다. 로봇과 컴퓨터 비전 분야에서 위치와 회전에 대해 설명하기 위해 Coordinate vector(= bound vector)를 이용한다. {A}와 {B}는 서로 다른 좌표계의 원점을 나타낸다. 위 예에서는 로봇팔과 큐브에 대해서 각각 좌표계가 1개씩 존재한다. ξ(크시)는 각각의 좌표계의 원점 간의 거리를 나타내는 Symbol이다. $$ {}^{A}\textrm{ξ}_{B} $$ 는 A 좌표계 원점에서 B 좌표계 원점 사이의 거리를 나타낸다. 따라서 $$ {}^{A}\textrm{ξ}_{B} $$를 줄이면 로봇팔이 큐브에 서서히 다가가게 된다. 위 식은 다음과 ..

    Robotics, Vision and Control [Chap.1]

    서론 Chap.1은 센서기반모바일로봇 수업에 대한 전반적인 개요를 설명한다. 많은 학문에서 모바일로봇에 대한 연구가 진행된다. Mechanical engineering(기계): vehicle design and in particular locomotive mechanisms Computer science(컴퓨터): representations and sensing and planning algorithms Electrical engineering(전자 - 블로그 주인 학과): system integration, sensors, and communications Cognitive psychology, perception, and neuroscience(인지, 뇌공학): insights into how bi..