학교 수업을 듣고 복습차 Lecture 1-4까지 정리한 review용 글입니다. 내용의 간결성과 전달력을 위해 수식 설명은 제하였습니다.
Outline: What does this review contain?
- Introduction of TAMP
- Planning vs. Learning based approach
- Planning -TAMP
- Positions and orientations of rigid bodies
- Manipulator forward and inverse kinematics
- Manipulator velocities and dynamics
🛝 Introduction of TAMP
Difference btw industrial robot and intelligent robot agents is that intelligent robots (1) perceives the environment, (2) adapts according to what it has perceived by planning new motions, and (3) executes the motion stably. There are four factors for robot intelligence,
- State estimation
- Perception
- Planning <- This course focuses on planning
- Control
For control, there is planning-based, learning-based approach.
Planning and reinforcement learning are not orthogonal. We need to integrate both planning and learning to build an intelligent robot.
- Planning
- Computing a (optimal) sequence of actions to achieve a goal given an initial state, goal, and model. Then what is model?
- Focuses on improving computational-efficiency.
- Slow. But (typically) guarantees completeness.
- Learning-based) Reinforcement learning
- Computing an optimal policy using reward signals, with unknown model. What is the difference between policy and sequence of actions? Model based 는 unknown model이 아닌가?
- Focuses on improving data-efficiency.
- Fast once trained, but cannot guarantee completeness
One of the planning based approaches is Task and Motion planning (TAMP) approach.
What is task and motion planning (TAMP)?
To solve complex problems like putting away groceries, it requires two different kinds of reasoning:
- Task planning: Planning task-level choices (which objects?)
- Motion planning: Planning motion-level choices (which motion?) 이게 control이랑 어떻게 다른건가? 키워드로 바로 비교가능하도록 생각.
Traditionally, these two planning have been studied under two different fields. TAMP brings these two together. TAMP introduces continuous variables and constraints related to motions into task planning description.
Classical AI task planning | TAMP action description |
(:action move :parameters (?from ?to) :precondition (and (room ?from) (room ?to) (at-robby ?from)) :effect (and (at-robby ?to) (not (at-robby ?from)))) ) |
(:action move :parameters (?q1 ?t ?q2) :precondition (and (Motion ?q1 ?t ?q2) (HandEmpty) (AtConf ?a1) (forall (?oc2 ?p2)~ (CFreeTrajPose ?t ?oc2 ?p2)))) :effect (and (AtConf ?q2) (not (AtConf ?q1))) ) |
For integration, TAMP uses factored and lifted representations for describing states and actions. PDDL할 때 다시 봐야 할듯.
- Factored -a state consists of entities (ex. objects, object locations) instead of low-level representations, such as raw pixels
- Lifted -an action or state variable takes as input parameters ex. pick-and-place (o,g,p) 이해가 안됨. 전에도 Parameter 쓰는데 구체적으로 어떤 방식으로 변한다는 거지/
🛝 Positions and orientations of rigid bodies
On every rigid body objects, position and orientation are defined (including the robot manipulator's end-effector). For manipulation (move objects), we need to know each information on each object.
- Position AP=[Px,Py,Pz]−1
- Orientation
- 3x3 Rotation matrix: Attach a corrdinate frame to the body, and describe it relative to the reference frame.
- Euler angles: Memory efficient, but suffers from Gimbal lock
- Quaternions: More memory efficient than 3x3 orientation matrix, does not suffer from Gimbal lock, but less intuitive.
Basic notion
- Frame: Location of a coordinate system's origin and its rotation matrix with respect to some other frame.
🛝 Manipulator forward and inverse kinematics
Forward kinematics
ForwardKinematics () \rightarrow \textrm{End-effector's position and orientation}
On forward kinematics, we need to compute the position and orientation of the manipulator's end-effector as a function of joint variables. 무엇을 위해서 하는 건가? 대부분은 inverse kinematics에서 해결이 다 되는 것 같은데..
To achieve this, we need to
- Describe the links on the manipulator
- Describe the joints -how the links are connected
- Attach frames to the link
Inverse kinematics
Given the end-effector's position and orientation, find the joint variables.
$\textrm{InverseKinematics ( \textrm{End-effector's position and orientation}) \rightarrow \textrm{End-effector's joint variables}}$
- Typically choose the one that is closest to the current joint angles, or one that avoids collision.
- There are two methods of solutions
- Numerical solutions
- Closed-form solutions
- Algebraic method
- Gemotric method
Basic notion
- Manipulator: A set of links connected in a chain by joints 전체 조작기 (관절 + 관절연결지점)
- Joint: A connection between neighboring links 관절
- Joint types: Revolute, Prismatic, Cylindrical, Planar, Screw, Spherical
- Joint axes: Revolute, Prismatic
- Link: A body on a manipulator 관절 연결지점
- We assume links are rigid.
- Frame {i} is attached to link {i}
- End-effector: Link n (끝 link), Immobile base of the arm: link 0
- Joint: A connection between neighboring links 관절
- Degree of Freedom (DoF): The number of values in the final calculation of a statistic that are free to vary.
- To position the end effector in 3D space, you need a minimum 6DoF (흔히 아는 (x,y,z,α,β,γ)). DoF는 두 종류인가? 2DoF랑 6DoF?
🛝 Manipulator velocities and dynamics
'Robotics & Perception > Basic' 카테고리의 다른 글
[AI614] 03. Introduction to Task planning (0) | 2022.10.23 |
---|---|
[AI614] 02. Introduction to Motion planning (0) | 2022.10.23 |
[AI614] Overview of Robot Task and Motion planning (0) | 2022.09.07 |
Sim2Real transfer: Domain randomization, domain adaptation, System identification (0) | 2022.08.06 |
PDDL (Planning Domain Definition Language) (0) | 2022.08.06 |