Robobuilder
(Difference between revisions)
m (→Using the RBC controller) |
m (Moved images to the left) |
||
Line 1: | Line 1: | ||
− | + | {|align=right | |
− | + | ||
− | + | ||
− | {|align= | + | |
|- | |- | ||
|[[Image:Robobuilder-kit.jpg|thumb|275px|The Robobuilder Kit contains components for assembling a humanoid robot]] || [[Image:Robobuilder-huno.jpg|thumb|160px|Assembled Robobuilder "Huno"]] | |[[Image:Robobuilder-kit.jpg|thumb|275px|The Robobuilder Kit contains components for assembling a humanoid robot]] || [[Image:Robobuilder-huno.jpg|thumb|160px|Assembled Robobuilder "Huno"]] | ||
|- | |- | ||
|} | |} | ||
− | + | [[Image:Working.gif]] | |
=Ruby Examples= | =Ruby Examples= | ||
==Using the RBC controller== | ==Using the RBC controller== |
Revision as of 15:54, 2 October 2009
Ruby Examples
Using the RBC controller
You can download the Ruby-extension for controlling the Robobuilder here: robobuilder-0.2.tar.bz2
Here is a small example program which makes the robot get up if it's lying on its back or its front.
#!/usr/bin/env ruby require 'robobuilder' require 'matrix' class Vector def norm Math.sqrt inner_product( self ) end end robot = Robobuilder.new '/dev/ttyUSB0' puts "Robobuilder" puts "Serial number: #{robot.serial_number}" acceleration = Vector[ *robot.accelerometer ] if acceleration.inner_product( Vector[ 0, 0, 1 ] ) > acceleration.norm / 2 robot.basic robot.a elsif acceleration.inner_product( Vector[ 0, 0, 1 ] ) < -acceleration.norm / 2 robot.basic robot.b end acceleration = Vector[ *robot.accelerometer ] if acceleration.inner_product( Vector[ 0, 1, 0 ] ) > acceleration.norm / 2 robot.run 1 end robot.close
External Links
- Robobuilder Ltd. (Korean manufacturer)
- Robosavvy (UK distributor)