책/probability robotics

2.3 RobotEnvironmentInteraction

정지홍 2025. 5. 20. 15:48

전체적인 목차

 

그림 2.1은 로봇이 환경과 상호작용하는 모습을 보여준다.

2.3 ROBOT ENVIRONMENT INTERACTION

  • 로봇의 environment, 즉 world는 internal state를 지니는 dynamical system이다.
  • 로봇은 sensors를 사용하여 환경에 대한 정보를 획득할 수 있다.
    • 그러나 sensors는 noisy하며, 보통 직접적으로 sensed할 수 없는 것들이 많다.
  • 그 결과, 로봇은 환경 상태에 대해 internal belief를 유지한다(그림 왼쪽 참조).
  • 로봇은 actuators를 통해 환경에 영향을 미칠 수 있지만,그 영향(effect)은 종종 다소 unpredictable하다.
  • 이제 이 상호작용을 보다 formal하게 기술해 보겠다.

 


2.3.1 State

  • Environment는 state로 특징지어집니다.
  • 이 책에서 다루는 내용에 편리하도록, state를 “로봇과 그 환경이 미래에 영향을 미칠 수 있는 모든 측면의 집합”으로 생각하겠습니다.
  • State는 시간이 지나며 변할 수 있는데(예: 사람의 위치), 건물 내 벽의 위치처럼 로봇이 작동하는 동안 변하지 않는 경우도 있습니다.
    • 변하는 state를 dynamic state라 부르며, 변하지 않는 state는 static 또는 non-changing state라 구분합니다.
  • State에는 로봇 자체에 관한 변수들도 포함됩니다.
    • 예를 들어 로봇의 pose, velocity, 센서의 정상 동작 여부(sensor functionality) 등이 이에 속합니다.
    • 이 책 전체에서 state는 일반적으로 x로 표시하고, 시각 의 state는 x t라 씁니다.
    • 구체적으로 많이 쓰이는 state 변수들은 다음과 같습니다. ( 1~6 )
  1. Robot pose
    • 전역 좌표계(global coordinate frame)에 대한 로봇의 위치(location)와 방향(orientation)을 함께 나타냅니다.
    • 강체(rigid) mobile robot의 경우 6개의 변수(3개의 Cartesian 좌표, 3개의 Euler angles(pitch, roll, yaw))를 가집니다.
    • 평면(planar) 환경에 한정된 로봇은 보통 2개의 위치 좌표heading direction(yaw) 이렇게 3개로 나타내는데, 이를 kinematic state라 부릅니다.
  2. Actuator configuration
    • 조작기(manipulator)의 관절(joint) 등 로봇의 actuators가 어떠한 구성을 이루고 있는지를 나타냅니다.
    • 로봇 암(arm)의 자유도(degree of freedom)마다 1차원 configuration 변수가 존재하며, 이것도 kinematic state의 일부입니다.
  3. Robot and joint velocities
    • 강체 로봇의 pose 변수는 x,y,z,  roll,  pitch,  yaw 6개로 이루어집니다
    • 이들을 dynamic state라고 부르며, 이 책에서는 비교적 부수적인 역할만 합니다.
  4. Surrounding object locations and features
    • tree, wall, 또는 넓은 표면(surface)의 픽셀(pixel) 하나하나처럼, 환경 내 물체(object)의 위치(location)와 특징(features)입니다.
      • 특징 예: 시각적 appearance(color, texture)
    • 모델링하는 state의 세분화(granularity)에 따라 수십 개에서 수백억 개 이상의 state 변수가 필요할 수 있습니다.
    • 많은 문제에서 물체의 위치는 static하며, landmark라 불리는 “똑똑히 인식 가능한 고정된 특징”을 사용하기도 합니다.
  5. Moving objects and people
    • 종종 로봇만 움직이는 것이 아니라 다른 moving entities(사람, 차량 등)도 있으며, 이들은 자신만의 kinematic state와 dynamic state를 갖습니다.
  6. 그 외 무수히 많은 변수들
    • 예: 센서 고장 여부(sensor broken 여부), 배터리 잔량(battery charge level) 등.

 

  • 이제 x t가 complete state라 불리려면, 그것만으로 미래를 최선(best)으로 예측할 수 있어야 합니다.
    • complete state : 현재 시점의 상태인  x t만 알고 있다면, 이전의  상태에서의 정보가 없어도 "미래 상태"를 최선으로 예측할 수 있는 상태를 의미. 
      • 즉, 과거의 state나 측정(measurements), 제어(controls)에 대한 추가 정보가 미래 예측을 더 정확하게 만들어 주지 않아야 합니다.
      • 다만 “미래가 state의 결정적(deterministic) 함수여야 한다”는 것은 아닙니다.
        미래가 확률적(stochastic)이어도, x t외에는 미래 state의 확률적 변화에 영향을 미칠 수 어야 합니다. 이러한 시간적 과정은 Markov chain으로 알려져 있습니다.
  • 이론적으로는 state completeness 개념이 중요하지만, 실제 시스템에서는 완전한 state를 명시적으로 지정하는 것은 불가능합니다.
    실제 구현에서는 위에서 열거한 변수들의 작은 부분집합을 선택하여 모델링하며, 이를 incomplete state라 부릅니다.
  • 대부분 로봇 응용에서 state 공간(state space)연속적(continuous)입니다.
    • 예를 들어 로봇 pose는 연속 변수입니다. 또 경우에 따라 이산적(discrete)일 수도 있는데, 센서 고장 여부 같은 2값(binary) 변수는 discrete state의 예입니다. 연속 변수와 이산 변수가 혼합된 state 공간은 hybrid state space라고 합니다.
  • 흥미로운 로보틱스 문제의 대부분은 시간이 지남에 따라 state가 변합니다.
  • 이 책에서는 시간을 이산적(discrete)으로 다루며, 모든 중요한 사건(event)은 다음과 같은 이산 시점에서 발생한다고 가정합니다

로봇이 작동을 시작하는 특정 시점을 t=0 으로 표시한다.

 

 

 

 


2.3.2 Environment Interaction

  • 로봇과 그 환경 사이에는 두 가지 근본적인 상호작용 방식이 있습니다.
    • 로봇은 actuators를 통해 환경의 상태에 영향을 미칠 수 있고, sensors를 통해 환경 상태에 대한 정보를 수집할 수 있습니다.
  • 두 종류의 상호작용이 동시에 일어나기도 하지만, 편의를 위해 이 책 전반에서 구분하여 다루겠습니다. 그림 2.1이 이 상호작용을 보여줍니다.
  1. Sensor measurements.
    Perception은 로봇이 sensors를 사용해 환경 상태에 대한 정보를 얻는 과정입니다.
    예를 들어, 로봇은 카메라 이미지(camera image), 레인지 스캔(range scan), 혹은 촉각 센서(tactile sensors)를 통해 환경 상태에 대한 정보를 받을 수 있습니다. 이런 지각(perceptual) 상호작용의 결과measurement라고 부르며, 경우에 따라 observation이나 percept라고도 합니다.
    일반적으로 sensor measurements는 약간의 지연(delay)을 동반하기 때문에, 몇 시점 이전의 상태에 대한 정보를 제공합니다.
  2. Control actions.
    Control actions은 환경의 상태를 변경(change)합니다.
    이는 로봇의 환경에 능동적으로 힘을 가(assert)함으로써 이루어집니다.
    예로는 로봇의 이동(robot motion)이나 물체 조작(manipulation of objects)이 있습니다.
    로봇이 아무런 action을 수행하지 않더라도, 일반적으로 환경 상태는 변화하기 마련입니다. 따라서 일관성을 위해, 로봇이 모터를 전혀 움직이지 않기로 선택하는 경우에도 “아무 action도 하지 않는” control action이 실행된다고 가정합니다.
    실제로 로봇은 연속적으로 controls를 수행하고, measurements를 동시에 수집합니다.

  • 가정상, 로봇은 과거의 모든 sensor measurementscontrol actions을 기록(record)할 수 있습니다.
    우리는 이 둘을 합쳐 data라고 부르겠습니다(기억되든 되지 않든 상관없이). 앞서 언급한 두 가지 상호작용 유형에 따라, 로봇은 두 개의 서로 다른 data streams에 접근할 수 있습니다. 하나는 measurement data이며 다른 하나는 control data이다.
    • Measurement data는 환경의 순간(momentary) 상태에 대한 정보를 제공합니다.
      예시로는 카메라 이미지, 레인지 스캔 등이 있습니다. 대부분의 경우, 작은 시간적 차이(timing effects)는 무시합니다. 시각 에서의 measurement data는 식 2.29처럼 표기합니다.
      • 이 책 대부분에서, 로봇은 매 시점에 정확히 하나의 measurement를 취득한다고 가정합니다.
        이는 표기상의 편의를 위한 것이며, 사실상 모든 알고리즘은 한 시점에 여러 개의 measurement를 받아들일 수 있도록 쉽게 확장될 수 있습니다.
      • 식 2.30은 시간 t 1부터 t 2까지 취득한 모든 measurements의 집합을 나타낸다.
    • Control data는 환경 상태의 변화를 알려줍니다. 모바일 로보틱스에서 전형적인 control data의 예는 로봇의 속도(velocity)이다. 예를들어서 “5초 동안 초당 10cm의 속도로 이동하라”라는 motion command를 내리면, 해당 명령을 실행한 후 로봇의 pose는 명령 전 위치보다 대략 50cm 앞으로 이동했을 것이라는 정보를 제공한다.
      즉, 주로 상태 변화(change of state)에 관한 정보이다.
      • 또 다른 control data의 원천은 odometry이다. Odometers는 로봇 바퀴의 회전 수를 측정(measure)하는 sensors이지만, 주로 로봇 pose의 변화를 알려주므로 control data로 취급한다.
      • Control data는 u t로 표기하며, 이는 시점 ( t−1, t ] 구간에서의 상태 변화를 나타냅니다.
      • 식 2.31은 연속된 control data sequence를 나타낸다.
      • 환경은 로봇이 특별한 control action을 수행하지 않더라도 시간이 지나면 변할 수 있으므로, 시간의 경과 자체도 엄밀히 말해 control information으로 간주합니다.
        • 따라서 매 시점마다 정확히 하나의 control data가 있다고 가정합니다.

  • measurementcontrol의 구분은 매우 중요합니다. 두 데이터 유형은 이후 다룰 내용에서 근본적으로 다른 역할을 하기 때문입니다.
    • Perception은 환경 상태에 대한 정보를 제공하여 로봇의 지식(knowledge)을 증가시키지만, Motion은 로봇 actuation의 고유한 noise와 환경의 stochasticity로 인해 지식 손실(loss of knowledge)을 야기하는 경향이 있습니다(물론 때로는 control을 통해 상태에 대한 불확실성이 줄어들기도 합니다).
    • 여기서 구분하는 것은 “로봇이 measurements를 취득하는 동안에는 움직이지 않는다”라는 뜻이 아니며, perception과 control은 실제로 동시에 일어납니다. 다수의 sensors가 환경에 영향을 미치기도 하고, 이 둘의 분리는 오로지 편의를 위한 것임을 명심하세요.

 

 


2.3.3 Probabilistic Generative Laws

  • 상태(state)와 관측(measurements)의 시간적 전개(evolution)는 probabilistic laws에 의해 지배됩니다.
  • 일반적으로, 시각 t의 상태 x t는 확률적으로 생성(stochastically generated)됩니다.
    • 따라서 x t가 어떤 분포에서 생성되는지 명시하는 것이 의미가 있습니다.
    • 얼핏 보면, x t는 이전의 모든 상태, 관측, 제어 입력에 조건부로 의존할 수 있습니다.
      • ==> 아래 식과 같은 형태의 분포로 표현될 수 있습니다

현재 시각 t의 관측값이 z t는, 과거의 모든상태인 x 0:t-1과 과거 관측인 z 1:t-1과 과거와 현재의 제어 입력인 u 1:t전체를 알아도, 오직 현재 상태 xt만 알고 있으면 예측할 수 있다는 것을 의미

  • 하지만 만약에 상태 x가 complete하다면, 그 자체가 이전 모든 시점의 정보를 충분히 요약한(sufficient summary) 것이므로, 이전 제어 및 관측만 알고 있다면 더 이상 필요없다. 그래서 아래의 식이 성립한다. 
    • =====> x t는 x t-1에서 u t라는 제어의 결과를 의미

즉, 현재 상태는 이전 상태와 현재 상태에서의 제어만 알아도 알수있다.

 

 

 

 


2.3.4 Belief Distributions

  • Probabilistic robotics의 또 다른 핵심 개념은 belief입니다.
  • Belief는 로봇의 환경 상태(state)에 대한 internal knowledge를 반영합니다.
    • 이미 state는 직접 측정할 수 없다고 언급했는데, 예를 들어 로봇의 pose가 어떤 global coordinate system에서 x=14.12,12.7,0.755 와 같을 수 있지만, pose는 직접 측정할 수 없으므로(심지어 GPS로도!) 로봇은 데이터를 통해 pose를 infer해야 합니다. 따라서 우리는 true state와 그에 대한 로봇의 internal belief(또는 state of knowledge)을 구분합니다.
  • Probabilistic robotics에서는 belief를 conditional probability distribution으로 표현합니다.
    • Belief distribution은 true state에 대한 각 가능한 hypothesis마다 probability(또는 density value)를 할당합니다.
    • Belief distribution은 사용 가능한 데이터에 조건부로 주어진 state variables에 대한 posterior probability입니다. 시각 t의 state 변수 에 대한 belief는 다음과 같이 표시합니다.( 식 2.35)

실제 사후 분포 ( posterior ). 즉, z t를 반영한 것
예상되는 사후 분포이다. 이는 z t를 반영하지 않은것.

===> 식 2.36에서 2.35f로 넘어가기 위해서는 measurement likehood p(z t | x t )를 곱하고 전체가 1이 되게 정규화를 시켜야한다.

( measurement z_t는 센서가 실제로 읽어들인 값을 의미한다. x_t는 실제 환경의 상태를 의미한다. )

( likehood p(z t | x t )는 "만약 로봇의 상태가 x_t일때, 센서가 z_t라는 값을 읽어들일 확률이 얼마나 되는가?"를 나타낸다. )

 

 

 

' > probability robotics' 카테고리의 다른 글

3.2 THE KALMAN FILTER - 3.2.1 Linear Gaussian Systems  (1) 2025.05.22
2.4 BAYES FILTERS  (0) 2025.05.22
2.2 BASIC CONCEPTS IN PROBABILITY  (2) 2025.05.20
1.3 IMPLICATIONS  (0) 2025.05.20
1.2 PROBABILISTIC ROBOTICS  (2) 2025.05.20