Controles Avançados de Mídia
Esta página descreve configurações avançadas para ajustar com precisão a câmera e o sistema de som.
Câmera
A câmera do Raspberry Pi pode ser detectada usando o seguinte comando:
rpicam-hello --list
# Available cameras
# -----------------
# 0 : imx708_wide [4608x2592 10-bit RGGB] (/base/soc/i2c0mux/i2c@0/imx708@1a)
# Modes: 'SRGGB10_CSI2P' : 1536x864 [120.13 fps - (768, 432)/3072x1728 crop]
# 2304x1296 [56.03 fps - (0, 0)/4608x2592 crop]
# 4608x2592 [14.35 fps - (0, 0)/4608x2592 crop]
Para tirar uma foto com o Reachy Mini:
rpicam-still -t 1 -r -o test.jpg --width 4608 --height 2592
# Copy the picture to your computer
# scp [email protected]:/home/pollen/test.jpg .
Todos os controles da câmera estão detalhados na documentação oficial. Por exemplo, você pode alterar as configurações de foco automático:
rpicam-still -t 1 -r -o test.jpg --width 4608 --height 2592 --autofocus-mode manual --lens-position 0
rpicam-still -t 1 -r -o test.jpg --width 4608 --height 2592 --autofocus-mode manual --lens-position 1000
No nível do SDK, a câmera é controlada pelo GStreamer usando o componente libcamerasrc. Você pode ver os parâmetros disponíveis com o seguinte comando:
gst-inspect-1.0 libcamerasrc
Em seguida, o código pode ser adaptado da seguinte forma:
def _configure_video(
self, cam_path: str, pipeline: Gst.Pipeline, webrtcsink: Gst.Element
) -> None:
self._logger.debug(f"Configuring video {cam_path}")
camerasrc = Gst.ElementFactory.make("libcamerasrc")
# camerasrc.set_property("af-mode", "manual")
# camerasrc.set_property("lens-position", 1000)
Microfones e Alto-falantes
O array de 4 microfones é baseado no reSpeaker XMOS XVF3800 da Seeed. Ele também fornece saída de áudio. Por padrão, o processador de áudio executa cancelamento de eco acústico (AEC), portanto, a saída do alto-falante é cancelada na entrada do microfone. Dessa forma, o robô não se escuta.
Ele aparece como Pollen Robotics Reachy Mini Audio no sistema. O controle de volume pode ser ajustado com alsamixer. Pressione F6 para selecionar a placa de áudio e F5 para visualizar os volumes de entrada e saída. É recomendado deixar tudo em 100%, exceto o PCM (volume de saída), que você pode ajustar conforme necessário.
O AEC e outros filtros de áudio podem ser ajustados graças ao XMOS XVF3800. Usuários avançados podem consultar a documentação oficial para entender melhor o processamento de som. Um resumo dos parâmetros está listado nesta página.
Para acessar esses parâmetros, use nosso script auxiliar em Python audio_control_utils.py:
# Read a parameter
python src/reachy_mini/media/audio_control_utils.py PP_MIN_NS
# Output:
# PP_MIN_NS: (0.15000000596046448,)
# Write a parameter
python src/reachy_mini/media/audio_control_utils.py PP_MIN_NS --values 0
# Output:
# Writing to PP_MIN_NS with values: [0.0]
# Write operation completed successfully
O array de microfones fornece uma saída estéreo, portanto não é possível obter a saída bruta de todos os 4 microfones ao mesmo tempo. No entanto, você pode obter dois microfones brutos por vez:
# mic 0 - left channel
python audio_control_utils.py AUDIO_MGR_OP_L --values 3 0
# mic 1 - right channel
python audio_control_utils.py AUDIO_MGR_OP_R --values 3 1
# mic 2 - left channel
python audio_control_utils.py AUDIO_MGR_OP_L --values 3 2
# mic 3 - right channel
python audio_control_utils.py AUDIO_MGR_OP_R --values 3 3
A disposição do array linear é a seguinte:

A antena direita do Reachy Mini está próxima ao mic 0, enquanto a antena esquerda está próxima ao mic 3.
Direção de Chegada do Som
Graças aos 4 microfones, o sistema pode estimar a direção de chegada (DoA) do som. A direção é dada com base na disposição acima.
python src/reachy_mini/media/audio_control_utils.py DOA_VALUE
# Output
# DOA_VALUE: [0, 133, 0, 0, 0, 1, 0, 0, 0]
python src/reachy_mini/media/audio_control_utils.py DOA_VALUE_RADIANS
# Output
# DOA_VALUE_RADIANS: (0.5410520434379578, 1.0)
Esse recurso também está disponível diretamente a partir do SDK.