Artoo is a framework for robotics, physical computing, and the Internet of Things written in the Ruby programming language.

It provides a simple, yet powerful way to create solutions that incorporate multiple, different hardware devices at the same time.

With Artoo, you can easily connect multiple, different hardware devices together into a single Ruby-powered robotic solution.

Want to use Javascript on Robots? Check out our sister project Cylon (http://cylonjs.com).

Want to use the Go programming language to power your robots? Check out our sister project Gobot (http://gobot.io).

Gort (http://gort.io) is a Command Line Interface (CLI) for RobotOps. Gort provides tools to scan for connected devices, upload firmware, and more.

Meet The Code

Artoo’s simple code makes telling robots what to do incredibly simple and fun.

All you need to get started is the artoo gem

require 'artoo'

Then hook it up to your robot (in this case, a Sphero :

connection :sphero, adaptor: :sphero, port: '4560'
device :sphero, driver: :sphero

And tell it what to do!

work do
  every(3.seconds) do
    puts "Rolling..."
    sphero.roll 60, rand(360)

Platform Support

Artoo has a extensible system for connecting to hardware devices. The following robotics and physical computing platforms are currently supported:

15 Platforms

More platforms are coming soon!

Artoo also has support for devices that can work across multiple hardware platforms.

8 GPIO drivers

4 I2C drivers

See more drivers here

More platforms are coming soon!


Artoo includes a RESTful API to query the status of any robot running within a group, including the connection and device status, and device streaming data via websockets.

To activate the API, use the api command like this:

require 'artoo'

connection :loop
device :passthru
api :host => '', :port => '4321'

work do
  puts "Hello from the API running at #{api_host}:#{api_port}..."

Artoo in Action