Robot/Robotics5 [Robotics] Trajectory 생성 - Joint Space & Cartesian Space Trajectory Trajectory는 로봇이 가진 각각의 자유도에 대해 위치, 속도, 가속도를 시간에 따라 표현한 것입니다. 이와 달리 Path는 시간 정보가 빠진 상태로, 지나갈 경로만을 이야기합니다. 엔지니어는 매니퓰레이터 엔드이펙터의 도착 지점에 요구되는 조인트의 각도 값만 계산하여 엑추에이터에 명령을 줄 수 있습니다. 하지만 이 경우 워크스테이션 내에 있는 장애물을 피할 수도 없고, 이동 중 발생하는 진동에 의해 기구 자체에 손상을 입힐 수도 있습니다. 따라서 이를 막기 위해 엔지니어는 여러 상황을 고려하여 적합한 트래젝토리를 생성해야합니다. 트래젝토리 생성은 일반적으로 60~2000Hz 생성이 되며, 이러한 트래젝토리 생성 주기를 Path-update rate 라 일컫습니다. Trajecto.. 2022. 11. 14. [모던로보틱스] 1. Configuration Configuration 저는 이게 가장 어렵더라구요. 링크, 조인트, 액추에이터, 엔드이펙터 로봇은 무엇으로 구성되었을까? 일반적으로 로봇은 링크(기구)들이 여러 형태의 조인트들과 결합되어 만듭니다. 조인트는 전기 모터같은 액추에이터이며, 이것은 토크나 힘을 생성해 링크들이 움직일 수 있게 합니다. 링크와 조인트로 로봇 팔을 만드면, 팔 끝에는 물체를 잡을 수 있도록 손이나 집게같은 기구물을 설치합니다. 이것을 End-effector라 부릅니다. 사진은 유압그리퍼인 엔드 이펙터입니다. Configuration 로봇의 행동을 영역을 표현하기 위해 만들어진 여러 Space들이 존재합니다. Configuration Space, Joint Space, Task Space, Work Space 등이 그것입니다... 2022. 3. 20. [모던로보틱스] 0. 로보틱스란 로보틱스라는 학문은 다른 학문에 비해 역사가 짧습니다. 따라서 로봇공학이라는 학문이나 로봇에대한 정의도 가지각색입니다. Modern Robotics에서 Robotics는 "사람처럼 생각하고 행동하는 기계를 창조하는 학문"이라 표현하고 있습니다. 개인적으로 저는 로봇을 "비생명이 생명이 있는 것처럼 행동할 수 있는 것"이라 제 나름의 정의를 내렸습니다. 로봇공학을 하는 사람이라면 자신만의 로봇에 대한 정의를 가지고 있거든요. 로봇공학을 깊이 있게 해보기 위해 Modern Robotics(Kevin Lynch, Frank Park 저)를 시작했습니다. 학습이라는 것은 배우는 것보다 익히는게 중요하다고, 로보틱스 내용들을 정리할 겸 시리즈로 구성해보려고요. 끈기있게 잘 해야할텐데요. 흠 여튼, 여러 로보틱스 .. 2022. 3. 19. [Robotics] Special Orthogonal Group SO Special Orthogonal Group SO Rotation Matrix는 SO(3)에 속한다. SO(3)는 일반적으로 Rotation Matrix 군으로 불리며, 1. 3x3 차원 2. 행렬과 전치 행렬의 곱이 단위행렬이고 3. 행렬의 행렬식이 1인 것을 만족한다. SO(2)는 2차원에서의 Rotation Matrix인데, 그냥 이거다. SO(3)의 성질 Special Orthogonal Group SO(3)는 다음을 만족해야한다. 이 SO(3)에 속하는 행렬 R은 1. 역행렬과 Transpose된 행렬이 같으며 2. 그룹 안에 있는 임의의 행렬 R 두 개를 곱하였을 때에도 SO(3)에 속하며, 3. 결합법칙이 성립하고 4. 교환법칙은 성립하지 않는다. 5. 3x1 열벡터를 R 행렬과 곱한 것의 .. 2022. 3. 11. [Matlab] 2절 링크 만들기 Matlab의 Robotics Tool Box를 이용하여 2절 링크 제작하기 전체 코드 robot = rigidBodyTree('DataFormat', 'column', 'MaxNumBodies', 4); L1 = 0.5; L2 = 0.2; body = rigidBody('link1'); joint = rigidBodyJoint('joint1', 'revolute'); joint.HomePosition = 0; tform = trvec2tform([0 0 0]); setFixedTransform(joint, tform); joint.JointAxis = [0 0 1]; body.Joint = joint; addBody(robot, body, 'base'); body = rigidBody('link2');.. 2022. 3. 3. 이전 1 다음