Repository of the ROC Controls
Part of the ROC project
Here we aim to control any type of robots ! Be it your own one or some bigs shots robots.
R.O.C stands for Remote Oculus Controller. Our goal is to transcript the direct environment of a robot to distant user which controls it. It is made of three main part a client, a video-server and a control-server. More info and take look here
Here we are going to see the control part. It is designated be adaptive and evolve to the constraint of embedded system and user needs.
R.O.C is golang package build on top of gobot.io that add network interaction and R.O.C protocols as well as a nice features.
The server is made entirely in go and we are using protobuff. The project (Controls) can be build on any platform as long as you meet this requirement. Nonetheless we recommend Linux as a development platform as the installation is easier and you will meet less trouble on the way.
###Todo list
- Smoothed movement in Motion example
- Add movement prediction in GPS module
- Look for a keep alive on websocket
- Finish 3D support for robot
- Complete Wiki
Required system packages installation.
Follow your system package manager instruction, be sure to have at least version 1.6. ex:
$ pacman -S golang
...
$ go verion
golang version go1.6 ....
Or you install via the source. source
Golang was supported in protobuff v2 so it is mandatory to have v3. Protobuff compile .proto and then create your .go source files.
It can be tricky to install depending on system and often the v3 is not present by official repository.
On Arch-based system use yaourt to access AUR packages:
yaourt -S protobuf-go
The installation will take some times. In the mean times you can pull the control repository or go through the wiki!
Once the installation is complete you should be able to do this:
$ protoc --version
libprotoc 3.X.X
Warning: The first number should be 3 and nothing else !
Now that your system is up to the task you can build the controls.
go get Remote-Oculus-Controller/R.O.C-CONTROLS
On success you will now be able to build a robot that will be able to interact to other R.O.C projects !
Notes: R.O.C Controls use an other package "proto" which is a located here