ROS tue-robotics dialogflow_ros

O pacote tue-robotics dialogflow_ros destina-se a integrar o serviços de suporte à conversação em linguagem natural google dialogflow.

O pacote só tem um node em python que  usa o serviço google dialogflow para obter um entendimento sobre blocos de texto.

Funciona no ROS melodic

O pacote está disponivel para instalação a partir da fontes no seguinte endereço:

https://github.com/tue-robotics/dialogflow_ros

Requerimentos para a instalação do pacote dialogflow

Instalar a api ai com o seguinte comando:

pip install apiai

Requerimentos para a utilização do pacote dialogflow

Para se usar o node é necessário:

  • ter uma uma conta no serviço google dialogflow
  • incluir o dialog flow no projecto que se está a usar
  • obter uma access token que se usa para lançar o node

Para os dois primeiros pontos visitar o seguinte endereço:

https://dialogflow.cloud.google.com/

Exploração do pacote para o dialogflow_ros

O pacote funciona como um prestador de serviços de intrepretação de textos para os outros nodes. A interação é efectuada pela troca de mensagens nos seguintes tópicos:

Subscreve o tópico: /speech [std_msgs/String]

Publica o tópico: /command [std_msgs/String]

Para lançar o mode é necessário executar o seguinte comando, substituindo a token pela a adequada.

rosrun dialogflow_ros dialogflow_node.py _client_access_token:=token

Para enviar texto a ser intrepretado pelo node usar o seguinte comando:

rostopic pub --once /speech std_msgs/String "olá veronica"

Para obter o resultado usar o seguinte comando:

rostopic echo /command

 

Exemplo de dados recebidos
data: !!python/str “{\n \”id\”: \”5aadf9b7-4de1-462c-b5aa-74978e5889a2-b81332aa\”,\n \”\
lang\”: \”pt\”,\n \”sessionId\”: \”f65542abc1e34f058b1a10a33e10e855\”,\n \”timestamp\”\
: \”2019-11-05T19:36:33.926Z\”,\n \”result\”: {\n \”source\”: \”agent\”,\n \
\ \”resolvedQuery\”: \”ol\xE1 veronica\”,\n \”action\”: \”input.welcome\”,\n\
\ \”actionIncomplete\”: false,\n \”score\”: 0.5370496,\n \”parameters\”\
: {},\n \”contexts\”: [],\n \”metadata\”: {\n \”intentId\”: \”14042d68-6a28-4abc-a847-b281dace30b3\”\
,\n \”intentName\”: \”Default Welcome Intent\”,\n \”webhookUsed\”: \”\
false\”,\n \”webhookForSlotFillingUsed\”: \”false\”,\n \”isFallbackIntent\”\
: \”false\”\n },\n \”fulfillment\”: {\n \”speech\”: \”Ol\xE1!\”,\n \
\ \”messages\”: [\n {\n \”lang\”: \”pt\”,\n \”type\”\
: 0,\n \”speech\”: \”Ol\xE1!\”\n }\n ]\n }\n },\n \”status\”\
: {\n \”code\”: 200,\n \”errorType\”: \”success\”\n }\n}”