Ardupilot의 APMath 클래스의 함수
template <typename T>
void Vector3<T>::rotate(enum Rotation rotation){
//処理記述(省略)
}
회전이 없는 경우(ROTATION NONE 매개변수)90°(매개변수가 ROTATION YAW 90)인 경우
그림에서 보듯이 팽이 센서를 편항 방향을 따라 90도 회전시켜 설치한다.
X=롤러, Y=푸시업, Z=편항처럼 XYZ 처리를 넣는다.
*회전 후 X(기체 롤러) = 팽이 Y의 반전(기호 반전)
*회전 후 Y(본체 간격) = 팽이X
*회전후Z(기체편항)=팽이Z
.
이 부분의 원본 코드는 ↓에서 말한 바와 같다.
switch (rotation) {
//--省略--
case ROTATION_YAW_90: {
tmp = x;
x = -y;
y = tmp;
return;
}
//--省略--
90도 회전 후 간격이 90° 회전(ROTATION ROLL 90 PITCH 90)인 경우먼저 원본 파일을 참조합니다.먼저 90도 회전한 다음 90도 회전한다
case ROTATION_ROLL_90_PITCH_90: {
tmp = z;
z = y;
y = -tmp;
tmp = z;
z = -x;
x = tmp;
return;
}
그림으로 쓰면 이런 느낌이야.Reference
이 문제에 관하여(Ardupilot의 APMath 클래스의 함수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takeru0x5569/items/d4f1f3cf270c8208f319텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)