ROS2Agentを実行するために、下記のリスト2をraiフォルダ内のexamplesフォルダにpython形式(test.pyなど)で保存する。
from rai import ROS2Agent agent = ROS2Agent() print(agent("What topics, services, and actions are available?")) print(agent("Please publish 'Hello RAI' to /chatter topic only once"))
次に、config.tomlの設定を変更する。デフォルトではOpenAIのChatGPTを使用する設定になっているため、Llamaを使用する設定としてraiフォルダ内のconfig.tomlの2~4行目にある"openai"を"ollama"に変更する(リスト3)。
[vendor] simple_model = "ollama" complex_model = "ollama" embeddings_model = "ollama"
次にUbuntuの端末を開き、Llamaを起動する。config.tomlに記載されているモデル、Llama3.1:70bを使用するため、下記のコマンドで該当バージョンを起動する。
$ docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama $ docker exec -it ollama ollama run llama3.1:70b
さらに、RAIからのROSトピックの送信を確認できるように下記コマンドを実行する。
$ ros2 topic pub /chatter std_msgs/msg/String "{'data': 'Hello world'}"
その後、別の端末で下記のコマンドを実行し/chatterのトピックの取得準備をする。
$ ros2 topic echo /chatter
Hello worldが受信できることを確認したら、ros2 topic pub側の端末はCtrl+Cで終了し、ros2 topic echo側は開いたままにする。
その後raiフォルダ直下で下記のコマンドによりROS2Agentのコード(test,py)を呼び出して実行する。
$ source ./setup_shell.sh $ python3 examples/test,py
すると、以下のリスト4のようにROS 2のトピック一覧や/chatterのトピックを送信できていることが確認できる。
前述した1つ目の命令の“What topics, services, and actions are available?”に対して、現在存在しているトピック一覧が表示され、存在していないServiceやActionについては、“There are no services or actions available.”という回答がある(リスト5)。
次の“Please publish 'Hello RAI' to /chatter topic only once”は/chatterのトピック名でHello RAIという内容を送信するというもので、受信側の端末で実際にトピックが送信されていることが分かる(リスト6)。
このように、ROS2Agentで定義されているToolが、ROS2Agent に入力された自然言語の命令に基づいた挙動を行う。
この他にもシミュレーションを利用した操作デモなどが用意されているため、気になる方は試してみてはいかがだろうか。
Copyright © ITmedia, Inc. All Rights Reserved.