Slide 1

Slide 1 text

Rubyで micro-ROS! 2025/9/9 ROSConJp2025 影山勝彦

Slide 2

Slide 2 text

自己紹介 普段は @kishima で活動 (株)アプトポッド所属 組み込み系エンジニア プレイングマネージャ業 mruby好き 電子工作好き 2

Slide 3

Slide 3 text

最近のお仕事 3 四足歩行ロボを利用した ソリューション開発 自立走行ロボットの管理

Slide 4

Slide 4 text

“ Rubyが好きだ RubyでROS使いたい

Slide 5

Slide 5 text

これ動かしたい 5 myCobot280 安価な6軸ロボットアー ム ROS対応

Slide 6

Slide 6 text

Rubyで書きたい すでにあった! ● rclrb (ROS Client Library for Ruby) ○ CRubyでROSの基本機能にアクセスできる ○ 昨年あたり公開されていた 6

Slide 7

Slide 7 text

組み込み向けRuby = mrubyでも動かしてみたい 7 X

Slide 8

Slide 8 text

開発 今回作るものについて 8

Slide 9

Slide 9 text

全体の構成 9

Slide 10

Slide 10 text

開発時のポイント ● micro-ROSのESP32向けが最新のSDKでビ ルドエラー対応必要 ● mruby_esp32_microrosの実装 ○ mruby向けのC言語バインディング 10

Slide 11

Slide 11 text

mruby-esp32-microros micro-ROSのmrubyラッパー コード:https://github.com/kishima/micro-ros-mruby 11

Slide 12

Slide 12 text

I2Cの利用 12 ● I2Cの初期化 ● I2Cでデータを読み出すメソッド定義

Slide 13

Slide 13 text

コントローラ状態を読んでROSトピックを送信 13 ● 10Hz程度の周期でコント ローラの信号Read ● ROS Topic 送信

Slide 14

Slide 14 text

myCobot280をROSで制御する 14

Slide 15

Slide 15 text

15 パフォーマンス 少なくとも30Hzくらいでトピック送信 (ros2 topic hz /joyコマンド) 上限は未確認だが100Hz程度では動けるはず

Slide 16

Slide 16 text

16 今後の課題課題 ● myCobot280思った通りに動かしたい ● rcl APIをどうRubyらしく使えるようにするか ○ Subscription:コールバックに素早く応答 ○ メッセージ型をどうダイナミックに扱うか ● ROSのパッケージ群活かしたい ○ navigation, moveit

Slide 17

Slide 17 text

17 Thank you! 何か聞きたいことあればお気軽に X, github : @kishima