goArm – some structure

Alright, vision-based robot arm playing go.

As I said before I see the project as mostly integration, rather than R&D. None of the modules or tasks is innovative or even try to be. We have:

  1. Camera  – to discover new moves and also find stones of own colour to place them on the board.
  2. Arm – controlled by simple commands (move to XYZ, take a stone, drop a stone).
  3. GTP engine – someone has to be smart and decide where to put a stone. Many of GTP engines are open, many are cross-platform which could make my development easier (because I develop for raspberry pi on windows and Linux). No specific license issues as I have no intention of changing them or redistributing.
  4. Script – An algorithm to show a game/play/show problem etc. I anticipate naive implementation.
  5. Integration point – wiring to be developed. Both OpenMV and uArm have nice python libraries, so it couldn’t be difficult. Anyone could download source code from GitHub.

There could also be some kind of control interface and web GUI to represent what is on the board.

arm selection


So it started and one decided to make it. Robot arm which will literally play go.

From words to action I’ve reviewed a few arms on the market and narrowed my selection to dobot m1, uArm pro and 7bot. All from China. All are accurate and have reasonable programmatic interfaces. But!

Dobot m1

Dobot could be a good choice, because of customisable end-effectors, but OpenCV camera for dobot costs like Ferrari ($600). Their sales team and local distributor failed to tell me the price after 1.5 weeks of emails coming back and forth.


The range is small (340mm from the axis), none in stock. No vision unit developed.

uArm Swift Pro

Happened to be the selection. Pro model comes with the OpenMV camera and also has nice camera-to-arm communication interface out of the box.

The picture was found much later than selection, so I wasn’t biased! The arm of the photo is clearly blind 🙂

uArm was ordered somewhere in spring and delivered to my door early August.

goArm – why not?

I’ve read an article on Facebook the other day. Robot arm playing chess, implemented with $500K industrial arm weight 50 kilo. Which sounds like an overkill a bit haha…

Next day we had an event with Moscow Go Federation who came up with a robot costume. And… It was attractive.

What if I make a robot arm to play on exhibitions? Sounds like an integration project for me, and not too expensive.

Aiming for attractiveness and easy operation it has to be:

  • Small – a few kilo
  • Accurate
  • Human like positioning and stone handling
  • Play game, show game (both colours), put problems on the board
  • Speak
  • Operated from smartphone

Broadly speaking, I have small to no knowledge in robotics, kinematics, pictures processing. It’s gonna be an interesting trip.