Este é o relato da experiência de utilização do pacote calibration_gazebo que está disponível no seguinte repositório:
https://github.com/oKermorgant/calibration_gazebo
Na primeira execução reparei que este pacote depende do pacote slide_publisher. Esta dependência pode ser satisfeita com o seguinte comando
sudo apt install ros-noetic-slider-publisher
Também está disponível no seguinte repositório
https://github.com/oKermorgant/slider_publisher
O erro que denuncia a dependência é o seguinte
Resource not found: slider_publisher
O comando que faz o spawn do quadro de xadrez para a calibração da camera é o seguinte:
roslaunch calibration_gazebo landmark.launch
Este comando pressupõe que o ambiente simulado já esteja em execução, pelo que no caso do projecto do automec será necessário executar por exemplo o seguinte comando:
roslaunch simulation_bringup traxxas_free_drive.launch
No entanto na experiência efectuada o quadro de xadrez não apareceu.
Segundo a descrição do pacote o programa tentará identificar o link da camera (o primeiro a ter a palavra camera) e a fazer o spawn do quadro de xadrez á sua frente, caso não encontre o quadro aparece numa posição fixa.
O pacote contem os launch files que permite lançar dois ambientes simulados para testar o seu funcionamento.
- roslaunch calibration_gazebo perspective.launch
- roslaunch calibration_gazebo fisheye.launch
A execução do primeiro, seguido do comando para lançar o quadro, permitiu verificar que o quadro aparece em frente da camera.
Numa tentativa de identificar o que estava a acontecer, foi efectuada uma correcção do launch file de modo a poder observar as mensagens geradas pelo node.
No caso do do ambiente exemplo pré configurado no pacote 0 resultado na consola foi o seguinte:
process[calibration_gazebo/landmark_bridge-2]: started with pid [404599] False False Found camera link at camera::camera_link [INFO] [1632494079.717182, 0.000000]: Loading model XML from file /home/inaciose/catkin_ws/src/calibration_gazebo/sdf/landmark.sdf [INFO] [1632494079.735229, 0.000000]: Waiting for service /gazebo/spawn_sdf_model [INFO] [1632494079.743581, 16.158000]: Calling service /gazebo/spawn_sdf_model [INFO] [1632494080.021423, 16.313000]: Spawn status: SpawnModel: Successfully spawned entity
Ficando o processo de calibração disponível conforme a imagem acima
No caso do ambiente simulado do projecto do automec o quadro de xadrez nunca aparece no ecrã e surgem as seguintes mensagens de erro.
process[calibration_gazebo/landmark_bridge-2]: started with pid [415518] False (...) False Could not find camera link, spawning landmark at (0,0,0.5) [INFO] [1632494966.819862, 0.000000]: Loading model XML from file /home/inaciose/catkin_ws/src/calibration_gazebo/sdf/landmark.sdf [INFO] [1632494966.824028, 24.350000]: Waiting for service /gazebo/spawn_sdf_model
Como após algumas pesquisas e verificações não consegui colocar o paccote a funcionar no ambiente de simulação usado no projecto do automec, passei para outra abordagem.
A nova abordagem foi usar apenas ficheiro sdf que define o quadro de xadrez, integrando-no pacote que define o ambiente de simulação.