ROSのAIエージェント「RAI」を使って自然言語でアームロボットを制御する生成AIで変わるロボット制御(後編)(2/4 ページ)

» 2025年03月27日 07時00分 公開
[富士ソフトMONOist]

2.2.2. デモ実行

 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"))
リスト2 ROS2Agentを実行するためのコード

 次に、config.tomlの設定を変更する。デフォルトではOpenAIのChatGPTを使用する設定になっているため、Llamaを使用する設定としてraiフォルダ内のconfig.tomlの2~4行目にある"openai"を"ollama"に変更する(リスト3)。

[vendor]
simple_model = "ollama"
complex_model = "ollama"
embeddings_model = "ollama"
リスト3 Llamaを使用するためのconfig.tomlの設定

 次に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のトピックを送信できていることが確認できる。

リスト4 リスト4 サンプルプログラムの実行結果1[クリックで拡大]

 前述した1つ目の命令の“What topics, services, and actions are available?”に対して、現在存在しているトピック一覧が表示され、存在していないServiceやActionについては、“There are no services or actions available.”という回答がある(リスト5)。

リスト5 リスト5 サンプルプログラムの実行結果2[クリックで拡大]

 次の“Please publish 'Hello RAI' to /chatter topic only once”は/chatterのトピック名でHello RAIという内容を送信するというもので、受信側の端末で実際にトピックが送信されていることが分かる(リスト6)。

リスト6 リスト6 /chatterの受け取り側の端末が、RAIからのHello RAIを受信。Hello worldは実行前のテストトピックのログ

 このように、ROS2Agentで定義されているToolが、ROS2Agent に入力された自然言語の命令に基づいた挙動を行う。

 この他にもシミュレーションを利用した操作デモなどが用意されているため、気になる方は試してみてはいかがだろうか。

Copyright © ITmedia, Inc. All Rights Reserved.