■はじめに

ROS2をインストールしてから早数カ月。ずっと放置していました。
「ハード開発してたから…」なんて言い訳もできますが、ソフトの重要性も無視できません。
ここで一度、ソフトを触ってみようと思います。

■TurtleSimを動かしてみる

ROS2関連の本を見ると、サンプルがいろいろ載っています。
その中で「TurtleSim」がシンプルそうで面白そうだったので挑戦してみました。

「なんだ、亀が動くだけか」
そう思った人は経験者ですね。

でも、キーボードで動く=裏でパブリッシャー(送り手)とサブスクライバー(受け手)が実装されているということ。
初心者の自分にはちょうどいい題材です。

ChatGPTに聞きながら、以下のコマンドを実行しました。

# 本体
ros2 run turtlesim turtlesim_node

# キーボード操作(最前面でアクティブ)
ros2 run turtlesim turtle_teleop_key

# 亀の位置情報
ros2 topic echo /turtle1/pose

全部動かすとこんな感じです。




なるほど! 裏では位置データが飛び交っているんですね。
このデータをPythonで操作すれば、亀にいろんな動きをさせられるはず。

■螺旋を描かせたい → 迷走へ

そこで「小さな円を描く」パブリッシャーを追加して、キーボード操作と同時に動かせば螺旋になるのではと思いました。
ところが、パブリッシャーか競合してしまうと指摘されます。

ChatGPTに相談すると「じゃあ合成すればいい」とPythonコードを書いてくれたのですが…

ここでいきなり質問されました。
「ユーザーさんは、改造版を独自ワーキングディレクトリ作る人?」

…聞かれたら「Yes」と答えちゃいますよね?
そこから迷走が始まりました。

なんと「ROS 2 Jazzy + Python3.12」のバグに当たってしまい、作成したディレクトリが空になるというトラブルが発生。
ChatGPTの指示通り、手入力で修正を試みたのですが――
僕の気力切れと、GPT-5の制限切れで今回はここまで。

■まとめ

今回はTurtleSimを題材に、ChatGPTの力を借りながらROS2で遊んでみました。

Ubuntu環境で試したけれど、Windowsでも仮想環境を使えば動くはず(うろ覚え)。

位置情報を扱えることが分かり、TurtleSimが意外と奥深いと実感。

螺旋を描かせるところまでは次回持ち越し。


「カメを動かす」だけでもROS2の仕組みを学ぶきっかけになります。
次回こそ、亀にきれいな螺旋を描かせたいですね🐢✨