https://github.com/OTL/rosruby
簡単なドキュメントはこっちを参照ください。
基本的に書いてある通りにやれば動くと思います。
https://github.com/OTL/rosruby/wiki/rosruby
まだ完全な動作を保証するレベルではないのですが、
デザインも含めてフィードバックいただきたく公開することにしました。
本当にプロトタイプそのままです。
ちょっとrubyっぽいのはSubscriberのcallbackをsubscribeの後にブロックで書けるところですかね。
Callbackの型が決まっているとノードクラスにCallback専用関数を用意しなくちゃいけなくなりますが、この形式だと本来のデザイン通りのクラス設計ができるかと思います。
また、roscpp, rospyは1ノード1プロセスですが、rosrubyは複数のノードを1プロセスで使えるようにしてみました。rosjavaもそうなっているし、できるならできたほうがいいかと。
中身の設計は前述のようにプロトタイプそのまんまなんで、ユーザが使う各クラスが結構実装丸出しなので、インタフェース用のクラスと実装を分けたいと思っています。
また、中身でrospackを使っていたりとまだまだやりたいことがいっぱいです。
ですが、とりあえずこれでロボットを動かそうかと思っています。
(まだ自分でもサンプルとテストしか使っていないので。やっぱロボット動かしてなんぼですよね。)
- #!/usr/bin/env ruby
- require 'ros'
- require 'std_msgs/String'
- node = ROS::Node.new('/rosruby/sample_subscriber')
- node.subscribe('/chatter', Std_msgs::String) do |msg|
- puts "message come! = \'#{msg.data}\'"
- end
- while node.ok?
- node.spin_once
- sleep(1)
- end
今更存在に気づきましたが,スゴイですね!ちなみに Godfather of ROS の Morgan Quigley は Ruby 好きらしいですが,コンタクトされてたりするのでしょうか?http://youtu.be/-E1O98qrfBY?t=49s
返信削除ありがとうございます!
削除コンタクトしてないので
紹介してください。