나는 그들이 비행 시뮬레이터에서 어떻게하는지 말할 수 있습니다.
먼저, 프로그래머에게만이 질문을하면 응답의 절반 만 얻을 수 있으므로 http://electronics.stackexchange.com 에 교차 게시해야합니다 . 합니다.
로봇 작업은하지 않았지만 비행 시뮬레이터에서 하드웨어를 만드는 데 5 년을 보냈으므로 아키텍처 작동 방식을 알려줄 수 있습니다.
하드웨어 계층은 바보입니다
여기에는 간단한 입력 / 출력 값을 조정하고 아날로그 신호에 대한 보간 중단 점을 설정할 수있는 기본 인터페이스가 포함되어 있습니다. '신선한'하드웨어로 작업하는 경우 모든 보정이 거의 또는 전혀 필요없이 모든 것이 예상대로 작동하지만 시간이 지남에 따라 부품의 기계적 마모가 발생하여 조정해야합니다.
교정은 최소 / 최대 값 사이의 섹션이 포함 된 간단한 테이블입니다. 이들의 입력을 측정하기 위해 일반적으로 서보가 사용됩니다 (예 : 선형 전위차계, 변환기, 가속도계 등). 또는 계측의 경우 정확도를 시각적으로 판단하고 교정 될 때까지 조정하면됩니다.
소프트웨어 계층은 반대
모든 것이 복잡하고 상호 연결되어 있으므로 기능을 테스트하기 위해 일부 변수를 분리하는 것이 중요합니다. 데이터를 수집 할 수있는 현실적인 시나리오를 실행하는 것이 훨씬 쉽기 때문에 시나리오를 고민 할 필요가 없습니다. 테스트를 실행하면 기본적으로 저장된 데이터를 현재 출력과 비교하여 측정합니다.
비행 시뮬레이터에서는이를 QTG (자격 테스트 안내서)라고합니다. 핵심은 한 차원은 시간이고 다른 차원은 출력 인 2D 그리드에 데이터를 플로팅합니다.
믿거 나 말거나, 그것이 모델을 개발하는 방법의 본질입니다. 실제 비행기에는 수많은 센서가 장착되어 있으며 제어 된 시나리오를 수행합니다. 모든 컨트롤은 사람의 상호 작용없이 구동 될 수 있으므로 컴퓨터에서 테스트를 실행하고 (즉, 시뮬레이션 자체) 데이터를 비교합니다.
로봇 공학이 훨씬 다른 규모로 만들어 지더라도 원리는 동일합니다. 전통적인 접근 방식은 하드웨어와 소프트웨어 계층을 완전히 분리하여 둘 다 개별적으로 테스트 할 수 있도록하는 것입니다. 하드웨어 입력은 서보를 통해 수집되며 독립적 인 인터페이스를 통해 설정됩니다. Sofware 입력은 하드웨어로가는 신호를 독립적으로 측정하고 비교하여 알려진 '좋은'데이터에 대해 플로팅하여 설정 / 읽을 수 있습니다.
결과가 예측 가능하고 측정 가능하며 재현 가능한 한 테스트 자체가 반드시 복잡 할 필요는 없습니다.