https://github.com/otl/rosruby_common
rosruby common libraries (tf/actionlib/tutorial)
https://github.com/otl/rosruby_common
Last synced: 3 months ago
JSON representation
rosruby common libraries (tf/actionlib/tutorial)
- Host: GitHub
- URL: https://github.com/otl/rosruby_common
- Owner: OTL
- License: bsd-3-clause
- Created: 2012-06-04T09:35:23.000Z (about 13 years ago)
- Default Branch: hydro-devel
- Last Pushed: 2013-10-21T12:37:19.000Z (over 11 years ago)
- Last Synced: 2025-01-20T01:46:28.269Z (5 months ago)
- Language: Ruby
- Size: 180 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
rosruby_common
==============[rosruby](https://github.com/OTL/rosruby) common libraries (tf/actionlib/tutorial).
rosruby_tutorials contains samples of rosruby.actionlib
---------------
[actionlib](http://ros.org/wiki/actionlib) provides a standardized interface for interfacing with preemptible tasks.### simple action server ###
```ruby
#!/usr/bin/env rubyrequire 'ros'
ROS::load_manifest("rosruby_actionlib")
require 'actionlib/simple_action_server'
require 'actionlib_tutorials/FibonacciAction'node = ROS::Node.new('/test_simple_action_server')
server = Actionlib::SimpleActionServer.new(node,
'/fibonacci',
Actionlib_tutorials::FibonacciAction)
server.start do |goal|
feedback = Actionlib_tutorials::FibonacciFeedback.new
feedback.sequence = [0, 1]
r = ROS::Rate.new(1.0)
for i in 1..goal.order
feedback.sequence.push(feedback.sequence[i] + feedback.sequence[i-1])
server.publish_feedback(feedback)
node.loginfo("feedback = [#{feedback.sequence.join(",")}]")
r.sleep
end
result = Actionlib_tutorials::FibonacciResult.new
result.sequence = feedback.sequence
server.set_succeeded(result)
endnode.spin
```### simple action client ###
```ruby
#!/usr/bin/env rubyrequire 'ros'
ROS::load_manifest("rosruby_actionlib")
require 'actionlib/simple_action_client'
require 'actionlib_tutorials/FibonacciAction'node = ROS::Node.new('/test_simple_action_client')
client = Actionlib::SimpleActionClient.new(node,
'/fibonacci',
Actionlib_tutorials::FibonacciAction)
client.wait_for_server(1.0)goal = Actionlib_tutorials::FibonacciGoal.new
goal.order = 5
client.send_goal(goal,
:feedback_callback => proc {|feedback|
node.loginfo("feedback = [#{feedback.sequence.join(",")}]")
})result = client.wait_for_result(10.0)
node.loginfo("result = #{result.sequence.join(",")}")
```