Skip to content

Latest commit

 

History

29 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

このリポジトリについて

このリポジトリはGPT-4を用いてラズパイマウスを制御するデモを実装したROS2パッケージです。

Ubuntu22.04, ROS2 Humbleでの動作を前提としています。

インストール

# ROS2ワークスペースに移動
cd ~/ros2_ws/src
git clone https://github.com/Azuma413/voice_gpt.git
cd ..
colcon build

実行方法

  1. ラズパイマウスにssh接続してROSノードを起動
ros2 launch raspimouse raspimouse.launch.py
  1. rqtを起動
rqt

ServiceCallerからラズパイマウスの/motor_powerをTrueにする。

  1. メインのlaunchファイルを起動
ros2 launch chat_rover chat_rover.launch.py
  1. BehaviorTreeを起動
ros2 run chat_rover_bt main_node

以上の操作でロボットは音声入力待機状態へ移行します。

プログラムの概要

プログラムは全体としてROS2によって統合され,以下のようにノード同士が接続します。 uml image

voice_gpt/chatrover_msgs

こちらのディレクトリは本パッケージで利用するROSのメッセージ型を定義するためのものです。

voice_gpt/chat_rover

こちらのディレクトリは主にサービスサーバーの形式で実装されたROSノードを纏めたものです。

chat_rover/chat_rover/に各種ノードを実装したpythonファイルが格納されています。

chat_rover/launch/にlaunchファイルが格納されています。

voice_gpt/chat_rover_bt

こちらのディレクトリは主にBehaviorTreeとそこで使われるROSノードを纏めたものです。

chat_rover_bt/srcにメインプログラムが格納されています。

chat_rover_bt/include/my_action_node.hppにBehaviorTreeのアクションノードが実装されています。

chat_rover_bt/include/my_ros_node.hppにBehaviorTreeで使われるROSのサービスクライアント等が実装されています。

chat_rover_bt/configにBehaviorTreeの構造を記したxmlファイルが格納されています。

処理の流れ

上の図のbt_nodeの内部は以下の図ようになっています。 uml image

BehaviorTree上でVOSKが呼び出されると,vosk_nodeのサービスが呼び出され,音声検出が始まります。音声を検出すると,その内容をBehaviorTreeへテキストとして返します。

VOSKGPT1へそのテキストデータを送り,GPT1はそのデータをもとにgpt1_nodeを呼び出します。

gpt1_nodeは受け取ったテキストをGPT-4へ入力し,その出力を返します。GPT-4はテキストがロボットの命令であるかどうかを判断し,そうである場合は命令をより単純な形に分解します。

GPT1GPT2へ受け取ったテキストデータを送ります。

yolo_nodeはリアルセンスから送られてくる映像データから物体を認識し,その物体名と座標をBehaviorTreeのYOLOへ送ります。YOLOはそのデータをGPT2へ送ります。

GPT2GPT1から送られてきた単純な指示と,YOLOから送られてきた物体の位置情報を纏めてgpt2_nodeへ送ります。

gpt2_nodeは受け取ったデータをGPT-4へ入力し,その出力を返します。GPT-4はテキストデータから,ロボットの目標座標のリストを出力します。

GPT2gpt2_nodeから値を受け取るとその情報をSendPosへ送ります。

SendPosは目標座標をpos2vel_nodeへ送ります。

pos2vel_nodeは目標座標と,ar_nodeから送られてくる現在位置のデータをもとに,ロボットの目標速度を定め,それをラズパイマウスへ送ります。

BehaviorTreeは以上の動作をTreeの構造に従い繰り返します。

関連リンク

ProtoPedia Qiita

About

talk with gpt

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages