소나 누화 처리 방법


10

우리 로봇에는 다음과 같은 12 개의 소나 센서가 원형으로 배열되어 있습니다.

여기에 이미지 설명을 입력하십시오

수중 음파 탐지기 센서 자체는 꽤 좋다. 우리는 노이즈를 처리하기 위해 저역 통과 필터를 사용하며 측정 값은 매우 정확 해 보입니다. 그러나 로봇이 벽과 같은 평평한 표면을 만나면 이상한 일이 발생합니다. 수중 음파 탐지기는 벽을 나타내는 수치를 나타내지 않고 대신 곡면처럼 보입니다.

아래 그림은 로봇이 벽을 향했을 때 만들어졌습니다. 똑 바른 빨간 선과 비교하여 파란 선의 곡선을보십시오. 적색 선은 카메라를 사용하여 벽을 감지하여 생성되었으며, 파란색 선은 필터링 된 소나 판독 값을 나타냅니다.

여기에 이미지 설명을 입력하십시오

우리는이 오류가 크로스 토크에 기인한다고 생각하는데, 한 소나 센서의 펄스가 벽에서 비스듬히 튀어 나와 다른 센서에 의해 수신됩니다. 이것은 체계적인 오류이므로 노이즈와 마찬가지로 실제로 처리 할 수 ​​없습니다. 이를 해결하기위한 솔루션이 있습니까?


관련 : "다중 초음파 거리계 질문" . 거기에서 내 자신의 답변을 복사하여 붙여 넣어야합니까?
David Cary

답변:


10

이것은 일반적인 문제이며 많은 것 중 하나입니다. 음향 감지는 복잡한 연구 분야이며, 그 중 상당 부분은 음파가 신호를 보내고받는 것 사이에 어떤 경로를 취했는지 추측하는 데 소비됩니다. 아시다시피, 똑바로 갔다가 다시 돌아 왔다고 가정하면 실제로 이상한 결과가 나옵니다.

실제로 해결하려면 각 센서에 고유 한 주파수 및 / 또는 톤 길이를 배치하는 시스템을 사용해야합니다. 이는 모바일 로봇에서 소나 센서의 누화를 제거하기위한 주파수 호핑 의사 랜덤 펄스 폭 변조같은 극한의 상황에서 발생할 수 있습니다 .

개념이 매우 간단한 최첨단 솔루션도 있습니다. 누화를 단순히 감지하려면 모든 센서 펄스의 발사 사이에 단일 센서의 펄스를 발사해야합니다. 다른 센서로 리턴 펄스를 감지하면 크로스 토크 상황에있는 것입니다.

실제로, 이것은 상당히 낭비입니다 : 이것은 당신이 취할 수있는 샘플 수를 효과적으로 반으로 줄입니다. 따라서 센서를 그룹의 각 구성원이 크로스 토크를받지 않을 정도로 다른 그룹과 충분히 다른 그룹으로 나누어 구현을 개선 할 수 있습니다. 이 방법의 가장 강력한 버전은 그룹 자체를 의사 난수만들어 시간이 지남에 따라 오류를 평균화 할 수있을뿐만 아니라 개별 센서 기반으로 누화를 감지하는 데 도움이됩니다.

특정 경우에, 당신은 당신이 보여준 카메라 센서의 추가 이점은 범위에 대한 더 정확한 값을 반환합니다. 별도의 (충돌 가능성이있는) 측정 값을 하나의보다 정확한 추정값으로 결합하는 전략은 고유 한 매우 광범위한 주제 ( fusion , example 1 , example 2 )이지만 여기서 수행중인 작업과 매우 관련이 있습니다.


5

Maxbotix MB1200 XL-MaxSonar-EZ0과 같은 일부 센서에는 측정이 완료되면 한 센서가 다음 센서를 트리거하는 데이지 체인 시스템이 내장되어 있습니다. 이렇게하면 N 개의 센서를 가질 수 있고 한 번에 하나의 센서 만 작동하지만 첫 번째 센서가 리턴을 수집하자마자 다음 센서가 작동하도록 할 수 있습니다. 이 솔루션은 간단하지만 단위 시간당 데이터 양을 크게 줄입니다. Ian의 솔루션은 최적에 훨씬 가깝습니다.


4

단일 로봇에 여러 개의 초음파 센서를 사용할 수 있습니까? 예 : "여러 수중 음파 탐지기 센서를 사용하여" .

이미 파악했듯이 한 센서는 종종 다른 센서에서 보낸 핑 에코를 수신합니다. 대략적으로 가장 간단한 순서로 교차 감도를 처리하는 방법에는 여러 가지가 있습니다.

  • 한 번에 하나의 변환기 만 Ping하고 다른 변환기는 모두 무시하고 다음 변환기를 Ping하기 전에 현재 변환기의 "고스트 에코"가 다운 될 때까지 기다리십시오. 이것은 단일 변환기를 기계적으로 회전시키는 것보다 훨씬 빠릅니다. 로봇이 거의 소리 속도로 물건에 부딪치지 않는 한 이것은 아마도 충분히 빠를 것입니다.
  • 센서 당 비교적 좁은 빔 각도 송신기 또는 수신기 (또는 둘 다)를 사용하고 한 센서에서 다음 센서로 각도를 증가시켜 한 센서에서 다른 센서의 에코를들을 수 없도록합니다 (트랜스 듀서 앞의 물체가 이상한 측면 반사를 유발하지 않는 한) ) — 센서는 빔 각도와 대략 같은 각도로 떨어져 있습니다. 아아, 이것은 트랜스 듀서 사이에 물체가 보이지 않는 트랜스 듀서 사이에 "맹점"을 남깁니다.
  • 예를 들어 하나의 센서에서 다른 센서로 각도를 증가시켜 하나의 센서가 2 개의 이웃 (에코 빔 각도의 절반)에서만 에코를들을 수 있습니다. 그런 다음 짝수 변환기 핑 (홀수 변환기 무시)과 홀수 변환기 핑 (짝수 변환기 무시) 사이를 번갈아 가십시오.
  • 각 변환기는 서로 다른 주파수에서 작동합니다. Alas, 모든 저가 초음파 트랜스 듀서는 거의 예외없이 40kHz에서 공진하도록 조정되었습니다. 다양한 신호를들을 때이 트랜스 듀서는 40kHz의 몇 kHz 내에있는 신호 만 "듣습니다". 균형을 유지해야합니다. (a) 40 kHz 용으로 설계된 트랜스 듀서에서 40 kHz에서 멀어 질수록 감도가 떨어 지므로 40 kHz에 "상대적으로 가까운"주파수를 원합니다. (a) 모든 주파수가 서로 가까울수록 구별하기가 더 어려워 "상대적으로 멀리 퍼져있는"주파수 세트를 원합니다. 좋은 타협이 있는지 없는지 잘 모르겠습니다. 그렇지 않은 경우 다른 주파수에 맞게 조정 된 값 비싼 센서를 사용합니다.특정 주파수로 조정되지 않은 "광대역"센서 .
  • 고스트 에코를 배제하기 위해 다양한 전송 타이밍을 사용하십시오. 왼쪽에서 전송하고 2ms 지연 (에코가 죽을 정도로 충분하지 않음) 한 다음 오른쪽에서 전송한다고 가정합니다. 에코가 다운 된 후 왼쪽에서 전송하고 3ms 지연 한 다음 전송 권리. 오른쪽 수신기가 5ms 후에 두 번 에코를 수신하면 실제 에코인지 확실히 알 수 있습니다. 오른쪽 리시버가 처음 5ms 후, 두 번째 6ms 후 에코를 수신하면 왼쪽 리시버의 유령 일 수 있습니다. (동일한 주파수를 사용하는 많은 송신기를 동시에 분리하는 훨씬 더 정교한 "확산 스펙트럼"기술이 있습니다.)
  • 모든 수신기의 신호를 결합하십시오. 모든 방향으로 핑하는 중앙 송신기가 하나 있거나 (또는 ​​똑같이 모든 방향으로 송신기를 가리키고 동일한 순간에 모두 핑하는 경우) 첫 번째 반향이 먼저 왼쪽 수신기에 도달합니다 (나중에 오른쪽) 가장 가까운 장애물이 오른쪽보다 왼쪽에 더 가깝다는 것을 알고 있습니다. (모든 수신기의 신호를 결합하는 더 복잡한 "위상 배열"기술과 모든 송신기의 전송 시간을 약간 조정하기위한 더 정교한 "빔 형성"기술이 있습니다.)

PS : "적외선 대 초음파 – 알아야 할 사항"을 보셨습니까 ?

(예, "Multiple Ultrasonic Rangefinder Question" 에서이 모든 것을 말씀 드렸습니다 .)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.