Gobot は Go で書かれたロボティクスのためのフレームワークです。
Arduino, ARDrone, BeagleBoneBlackなど10を超えるH/Wに対応しています。
Gobotをインストールする
環境はOSX 10.9.3です。Goがインストールされていることを確認します。
$ go version
go version go1.2.1 darwin/amd64
環境変数を設定します。GOPATHは任意のディレクトリにします。
export GOPATH=~/.golang
export GOROOT=/opt/local/go
export PATH=$PATH:$GOROOT/bin
# check env
$ go env
Gobotのソースコードを取得します。
$ go get -u github.com/hybridgroup/gobot
$ go get -u github.com/bmizerany/pat
# 以下はCLIでcommandからskeleton-projectを生成するのに必要です。
$ go get -u github.com/hybridgroup/gobot/gobot
CLIを確認します。
$ gobot -v
gobot version 0.1
generateコマンドでskeleton-projectを作成します。
$ gobot generate julius
$ ls
LICENSE julius_adaptor.go julius_driver.go
README.md julius_adaptor_test.go julius_driver_test.go
$ cd $GOPATH/src/example
$ ln -s ~/path/to/your/julius/ gobot-julius
Gobotを使ってみる
先程作ったskeleton-projectに接続するプログラム(sample.go)を書きます。
package main
import (
"fmt"
"github.com/hybridgroup/gobot"
"github.com/hybridgroup/gobot/api"
"github.com/example/gobot-julius"
)
func main() {
master := gobot.NewGobot()
api.NewAPI(master).Start()
juliusAdaptor := julius.NewJuliusAdaptor("julius-a01")
juliusDriver := julius.NewJuliusDriver(juliusAdaptor, "julius-d01")
master.AddRobot(
gobot.NewRobot(
"sample",
[]gobot.Connection{juliusAdaptor},
[]gobot.Device{juliusDriver},
func() {
fmt.Println("work")
}))
master.Start()
}
実行すると3000portでAPI-Serverが動きます。
$ go run sample.go
2014/07/13 14:28:42 Initializing API on :3000...
2014/07/13 14:28:42 Initializing Robot sample ...
2014/07/13 14:28:42 Initializing connections...
2014/07/13 14:28:42 Initializing connection julius-a01 ...
2014/07/13 14:28:42 Initializing devices...
2014/07/13 14:28:42 Initializing device julius-d01 ...
2014/07/13 14:28:42 Starting Robot sample ...
2014/07/13 14:28:42 Starting connections...
2014/07/13 14:28:42 Starting connection julius-a01...
2014/07/13 14:28:42 Starting devices...
2014/07/13 14:28:42 Starting device julius-d01...
2014/07/13 14:28:42 Starting work...
work
2014/07/13 14:28:42 WARNING: API using insecure connection. We recommend using an SSL certificate with Gobot.
2014/07/13 14:29:00 Error serving static file: Asset favicon.ico not found
2014/07/13 14:29:00 Error serving static file: Asset favicon.ico not found
RESTful APIとなっていて,GETリクエストに対してskeleton-projectに関する情報のJSONが返ってきます。
# access https://localhost:3000/
{
"robots": [
{
"name": "sample",
"commands": [],
"connections": [
{
"name": "julius-a01",
"port": "",
"adaptor": "julius.JuliusAdaptor"
}
],
"devices": [
{
"name": "julius-d01",
"driver": "julius.JuliusDriver}}",
"connection": {
"name": "julius-a01",
"port": "",
"adaptor": "julius.JuliusAdaptor"
},
"commands": []
}
]
}
],
"commands": []
}
[1] gobotは 2014/07/13時点で最新はver0.6.1です。(github)
* この記事はkarota-projectの活動に関する記事です。