부동 기본 쿼터니언 위치 및 각속도를 제한하는 권장 방법은 무엇입니까?

Aug 20 2020

플로팅베이스가있는 객체의 경우 일반화 된 위치에서의 회전은 4D 쿼터니언으로 표현됩니다. 그러나 일반화 된 속도의 회전은 여전히 ​​3D 공간 회전 벡터로 표현됩니다.

예를 들어 역방향 오일러에 대해 권장되는 제한 방법이 있습니까?

prog.AddConstraint(eq(q[t+1], q[t] + h[t] * qd[t+1]))

그것은 예, 사원 수의 형태로 각속도를 변환하는 것이 적절하다 여기 ?

또는 John T. Betts가 비선형 계획법을 사용한 최적 제어 및 추정을위한 실용적인 방법에 설명했습니다.

답변

1 HongkaiDai Aug 21 2020 at 00:16

유스 케이스의 경우 계획에서 인접한 웨이 포인트 사이에 통합 제약을 부과하고 싶습니다. 이 경우 오일러 통합을 q[n] = q[n+1] - qdot[n+1] * dt직접 사용하지 않는 것이 좋습니다 . 그 이유는 사원 수는 항상 단위 길이 제약 만족 (즉,해야한다는 것입니다 q[n]q[n+1]4D의 단위 구의 표면에 모두 있습니다). 따라서 시간 미분 qdot은이 단위 구의 접선 표면을 따라, 즉 q[n+1] - qdot[n+1] * dt접선 표면에 있습니다. q[n+1]접선 표면의 어떤 점 (제외 )도 단위 원의 표면에 없습니다. 따라서 제약 조건 q[n+1] = q[n] + qdot[n+1] * dtdt=0| q [n] | 제약 조건과 결합 할 때만 충족 될 수 있습니다. = | q [n + 1] | = 1. 그림으로 "원에 접하는"섹션에있는 그림을 사용할 수 있습니다.https://www.toppr.com/guides/maths/circles/tangents-to-the-circle/. 공지 사항 q[n+1] - qdot[n+1] * dt구의 접선에, 그리고 q[n]당신이 할 수 있도록 원에 q[n] = q[n+1] - qdot[n+1] * dt.

대신 다음 조건을 고려할 것을 제안합니다.

q[n+1] = q[n] ⊗ Δq

여기서 q[n]상기 플로팅베이스 쿼터니언이다 n'번째 웨이가 q[n+1]상기 플로팅베이스 쿼터니언이다 n+1번째 웨이가'. 두 쿼터니언 과 사이 의 해밀턴 곱 입니다. 따라서 여기에서 각속도에서 Δq를 계산해야합니다.q[n]Δq

n 번째와 n + 1 번째 웨이 포인트 사이의 평균 각속도가 ω ∈ ℝ³라고 가정합니다. 은 An 축을 기준으로 회전 떠 있음이 수단 a = ω/|ω|레이트 |ω|따라서,

Δq = [cos(|ω|Δt/2), a*sin(|ω|Δt/2)]

보다 https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation#Using_quaternion_as_rotations 위의 방정식에 대한 설명은.

ω[n+1]n 번째 웨이 포인트에서 n + 1 번째 웨이 포인트까지의 평균 각속도로 사용 하는 경우 (역방향 오일러에서 v [n + 1]을 사용하는 것과 유사 함), 적분 제약은 다음과 같습니다.

q[n+1] = q[n] ⊗ [cos(|ω[n+1]|Δt/2), a*sin(|ω[n+1]|Δt/2)]

예를 들어 다른 수량을 평균 각속도로 사용할 수도 있습니다 (ω[n] + ω[n+1])/2.