Acompanhamento: Instale o pacote de recursos ORK e pise no caminho do poço e solução
Prefácio
De acordo com <Instalar o pacote de funções ORK e a solução> É realmente possível compilar o pacote de funções ORK, mas ao depurar o caso reconhecido pela Coca-Cola, há um problema que não pode ser detectado, conforme a seguir.
1. O problema de identificar a caixa da Coca
código mostrado como abaixo:
roslaunch robot_vision freenect_with_calibration.launch
rosrun topic_tools relay /camera/depth_registerd/igb_raw /camera/depth_registered/image
rosrun object_recognition_core detection -c `rospack find object_recognition_linemod`/conf/detection.ros.ork
roslaunch robot_vision ork_rviz.launch
Erro:
2. Análise
Os problemas acima na internet, os resultados são muito ricos, nenhum efeito, alguns dias de sofrimento, só posso analisar isso
1. O terminal insere o seguinte comando para gerar um arquivo principal:
ulimit -a
ulimit -c unlimited
ulimit -a
rosrun object_recognition_core detection -c `rospack find object_recognition_linemod`/conf/detection.ros.ork
2. Depuração de Gdb, os resultados são os seguintes, após ocorrer o despejo de núcleo, use o gdb para visualizar o conteúdo do arquivo de núcleo para localizar a linha no arquivo que causou o despejo de núcleo.
gdb [exec file] [core file]
SIGSEGV: instrui o processo a fazer uma referência de memória inválida (geralmente indicando que o programa está errado, se um ponteiro não inicializado for acessado). O nome SEGV significa "violação de segmentação".
A ação padrão do SIGSEGV é encerrar o + núcleo
Três, a ser resolvido
Lembrando que houve muitos prompts durante a compilação do ORK, que podem estar relacionados aos problemas acima, é melhor começar tudo de novo e verificar seu palpite:
Resumindo
Este problema ainda precisa ser aprendido. Corrigir erros é realmente uma maneira difícil. O desconhecido é terrível.
Link de referência:
segfault (core dumpped), processamento comum de arquivos principais
, métodos de depuração GDB em ambiente Linux