OpenCV 3 Using GoCV

We've had support for OpenCV for quite some time, but have been stuck on older versions (2.x) from a couple of years ago, due to the challenges involved in wrapping the OpenCV C++ code in Go.

Thanks to a new project from our team called GoCV (https://gocv.io), we now can use the latest version of OpenCV 3.3. We even have it running on Linux, OS X, and Windows too!

Because of this very significant development, Gobot can make use of the very latest work in open source computer vision. Watch this space for more soon.

GoPiGo3 Robot

Thanks to the efforts of an entire team of contributors at Gophercon, especially @ulisesflynn we have support for the GoPiGo3 robot from Dexter Industries..

The GoPiGo3 is a rolling robotic platform based on the Raspberry Pi, intended for people who want to learn about robotics. In addition to the built-in motor controller, you can also connect Grove GPIO, Analog (AIO), and I2C devices very easily. You can use any of the Gobot GPIO, AIO, or I2C drivers with the GoPiGo3.

Check out this example that blinks the LEDs on the GoPiGo's built-in "eyes":

SPI

SPI is a standard high-speed communication interface used for embedded devices. Making use of the fine work done by Golang expert @rakyll on defining a SPI interface for Go we are now able to connect SPI devices to the rest of the Gobot ecosystem.

The first platform supporting the SPI interface is an adaptor for the Raspberry Pi, but we will be adding all of the Linux systems that support SPIDEV.

Need to add a SPI device to your Gobot solution? Now you can! Let us know what devices you want, we're happy to help.

Holystone HS-200 Drone

The other major platform contribution to come out of Gophercon was experimental support for the Holystone HS-200 WiFi controlled drone. We did not know much about this quadcopter but thanks to the efforts of contributor @GuySirton we have been able to fly.

There's More

We have more goodness in this release, so do please checkout the changelog for the complete story.

Keep In Touch

This month's Gobot 1.5 release focuses on big things in very small packages.

We now have support for a couple different Analog to Digital Converter (ADC) devices such as the ADS1015. This lets you add analog input to digital-only boards such the Raspberry Pi, with a single line of code.

A Release Of Some Substance

This has been one of our more substantial releases. This post has been all about the new capabilities, but there are also a number of important bug fixes in this release. Not to mention that our overall test coverage has increased to over 85%. Thank you so much to all of the contributors and collaborators that make Gobot happen.

Stay Informed

Stay informed about the latest Gobot project developments by following us on Twitter at @gobotio. Thank you!

Keep In Touch

Hello, dear friends. We present to you today release v1.3 of Gobot, our Golang framework for programming devices in the real world.

We've been very busy at conferences like SCaLE 15x over the last month since the big Golang birthday bash, but thanks to our hard-working team and contributors we're so very happy to present to you our latest and greatest.

BBC Microbit support

Inspired by lots of activity around the BBC Microbit in the kids programming world, we now have support for this friendly Bluetooth LE connected microcontroller.

Here is an example that uses the built-in LEDs to display "Hello" then a smile:

Keep On Moving

Last weekend, we took the robot world tour back to L.A. for SCaLE15x. Back for its 15th year, the community-organized Southern California Linux Expo is one of our favorite conferences because of all the young programmers (read: kids) that participate.

We brought out the latest version of our robotic "lasertag" game running the newest Gobot with all the trimmings, and the youthful crowd nearly went, dare we say it, "Berzerk"*.

As flashy as the LEDs in our demo are, however, they are only one attraction for the kids of "SCaLE: The Next Generation". SCaLE: TNG is an entire day with a parallel track of presentations by kids, for kids, that takes place colocated with the main conference. How awesome is that!

Kids, parents, and teachers from all over attend sessions, learn from each other, and even occasionally from a few of us so-called grownups. And most importantly, play with robots and spark their excitement about learning and sharing.

Of course, the main SCaLE conference is well attended by many members of the open source community, with many technical sessions and workshops. But it is SCaLE: THG that really helps make it special.

Thank you to everyone who makes this fantastic annual event happen, we are so very happy to be a part of it!

Please follow us on Twitter at @gobotio for the latest project information as we continue our adventures in programming the physical world using Golang.

Big I2C Refactor

You can optionally override the defaults to control which I2C bus you are using, and also use multiple I2C buses at the same time by putting different I2C devices on separate buses. Maximum performance and flexibility!

Stay In Touch

Last week we took the robot world tour to Brussels, Belgium for FOSDEM 2017. Founded in 2000, FOSDEM is unarguably one of Europe's most fun and important open source conferences, and we were excited to share our work in open source robotics & IoT using Golang.

Metal Gobot

Metal Gobot gives the developer the lowest-level control over the hardware interfaces themselves. If you want discrete control over exactly how your application handles concurrency, failover, and everything else, then Metal Gobot is looking pretty shiny.

This is a program that blinks an LED using "Metal Gobot" style. The platform is an Intel Edison single-board Linux computer.

Keep Up To Date

Forgive us, dear friends, that it has been a couple of months since our last update, but we wanted to release our newest version as part of the Golang 1.6 release party.

So, without further ado, say hello to version 0.11 of Gobot, our open source robotics and Internet of Things (IoT) framework written in the Go programming language.

Welcome, C.H.I.P.

Once of the most exciting parts of the new 0.11 release, is adding support for C.H.I.P the $9 computer. Yes, you read that correctly. Thanks to awesome contributor Hrishikesh Tapaswi, we now have support for one of the most exciting pieces of hardware we've seen for a while. Check it out in action:

Keep Up To Date

We've just released the new 0.10 version of Gobot, our open source robotics and Internet of Things (IoT) framework written in the Go programming language. This new version incorporates many changes and community contributions to make Gobot much faster, leaner. And of course, add lots more hardware support.

We've got a list of the new changes below, but if you want to see the gory details, please check out the compare view on GitHub.

What Happened To The 0.9 Release?

There were so many important changes, especially ones worked on by the amazing participants at the "sold-out" Gopherconhardware hackday, that we decided to hold off on that version, and instead go right on to this new 0.10 release.

Changelog

Refactor core to cleanup robot initialization and shutdown

Remove unnecessary goroutines spawned by NewEvent

api

Update Robeaux to v0.5.0

bebop

Add support for the Parrot Bebop drone

keyboard

Add support for keyboard control

gpio

Support added for 10 new Grove GPIO devices:

Grove Touch Sensor

Grove Sound Sensor

Grove Button

Grove Buzzer

Grove Led

Grove Light Sensor

Grove Vibration Sensor

Grove Rotary

Grove Relay

Grove Temperature Sensor

i2c

Support added for 2 new Grove i2c devices:

Grove Accelerometer

Grove LCD with RGB backlit display

gort

Update bluetooth Linux support for BlueZ 5.x

Bugfixes

docs

Many useful fixes and updates for docs, mostly contributed by our wonderful community.

Contributors

So many people helped with this release, both formally via code or documentation contributions, as well as helpful feedback, comments, and hallway chats. Gobot could not be what it is without all of us in this community working together. We really appreciate it!

Issues

As always, if you find any issues with the new Gobot release, please let us know by entering a GitHub issue and we'll get back to you as soon as possible. We're also around on IRC (#gobotio on freenode) as much as we can be.

Keep Informed

To stay informed on our progress, please follow us on Twitter at @gobotio, as our team and contributors continue our work together.

Just recently, a wonderful interview was published in Vice with The Hybrid Group's Ringleader Ron Evans about the "Internet of Toys", open source, and how The Hybrid Group is bringing programming of the physical world to the masses. Read the full article titled "Opening Up the World of Robotics: 'The Internet Of Toys'" here.

Gobot was mentioned in the recent interview with The Hybrid Group Ringleader Ron Evans in the venerable SD Times about the Internet of Things (IoT) and future implications of a connected world.

Evans describes his real-world experiences, open source IoT, security & privacy, and why he thinks the Intel Edison is so interesting. Read the full post titled "Internet of Things: Closing the gap between customers, business" here.

The Hybrid Group's own Ringleader Ron Evans got to speak with Wired about the Internet of Things (IoT) and open source robotics. The interview covers our robotics frameworks Cylon.js, Artoo, and Gobot, as well as what direction we see them moving towards in the future.

Evans also went into detail about his experiences working on Apple's program Hypercard, and how that open source mentality went on to influence The Hybrid Group's other projects such as KidsRuby later on. Read the full article titled "Internet of Anything: Simple Tools Make It Possible for Anyone to Hack Robots" here.

This release brings a number of very large and necessary changes to Gobot. Over time our interfaces have grown out of hand and are becoming unmanagable and largely unecessary. With the Gobot 0.8 release, we have completely changed the core interfaces as well as our gpio and i2c driver interfaces.

In addition to this, we are finally correctly passing errors throughout the system and have removed all panics! Altough this is very exciting, this also means that there are many breaking api changes, especially if you have written your own drivers and adaptors.

If you're not ready to update to the new interfaces or errors handling, then you're in luck! We create a tag with every new Gobot release, so rolling back to the previous release is as easy as:

You really should update to the latest release however, it's much better!

Here's a overview of the changes, but if you want to see more check out the compare view on GitHub.

Changelog

This release includes a number of breaking api changes!

Refactor core, gpio, and i2c interfaces

Correctly pass errors throughout packages and remove all panics

Numerous bug fixes and performance improvement

api

Update robeaux to v0.3.0

firmata

Add optional io.ReadWriteCloser parameter to FirmataAdaptor

Fix thread exhaustion error

cli

generator

Update generator for new adaptor and driver interfaces

Add driver, adaptor and project generators

Add optional package name parameter

Contributors

A special thanks to everyone who made this release possible. You've been very nice!

Documentation

We are now generating our platforms pages directly from our README files for easier editing and collaboration, thanks zankavrogin! You can find the latest documentation on the docs page.

Issues

If you find any issues with Gobot, please let us know. We try to be on IRC (#gobotio on freenode) as much as possible, but if we're not around leave us a GitHub issue and we'll get back to you as soon as possible.

Stay In Touch

Please follow us on Twitter at @gobotio for the latest updates, as we continue to work on this amazing platform.

We've been quietly (and not so quietly) working these last couple of months, and we've just released Gobot 0.7! This is a very big release, that adds a lot of new capabilities, adds a lot of test coverage, refactors code, and adds support for a whole bunch of new hardware platforms too.

Here's a overview of the changes, but if you want to see more check out the compare view on GitHub.

Contributors

Documentation

We are now generating proper godoc docs from our code. In addition, we're constantly updating the Gobot docs site with additional info to keep them up-to-date. You can find the latest info on the docs page.

Issues

If you find any issues with Gobot, please let us know! We try to be on IRC (#gobotio on freenode) as much as possible, but if we're not around leave us a GitHub issue and we'll get back to you as soon as possible.

Stay In Touch

Please follow us on Twitter at @gobotio for the latest updates, as we continue to work on this amazing platform.

The Gobot team was in attendance at the recent Intel Developer Forum in San Francisco, and we were able to get one of the new Intel Edison single board computers. Our mission: get Golang running on the Edison, so we can use it with Gobot for robotics or connected devices.

The Edison is a very small System-on-Chip (SoC) single board Linux computer. Its dual-core Atom processor, 1GB of RAM, and built-in WiFi/Bluetooth LE all make it a very powerful machine in a very tiny package. The base Edison itself requires that at least one of the Edison's breakout boards, known as "blocks", be connected via the 70-pin Hirose connector. This is rather different from most other single-board computers. This extreme modularity is a very interesting design approach, and Sparkfun has an entire line of blocks that will be coming out in the coming weeks.

Once we got ahold of the Edison, we immediately retired to a corner of the conference, and set to work putting the new board through its paces. The results were successful! The Edison is able to run Go code.

Of course, for us running Golang was just the beginning. We wanted to use the Edison's many bult-in GPIO & i2c pins, so we can communicate with many devices.

So we rolled up our sleeves, and got to work. In many cases, we made good progress from reading the code helpfully provided by the Intel IoT team's MRAA library. In others, we were simply blazing a trail of code.

With that, we now present to you gobot-intel-iot, our support in Gobot for the Edison board's wonderful capabilities.

Here is a short video using Gobot to control the Edison's GPIO for reading analog input, and then using PWM output to turn on the LED:

During a group photo that took place the day after our talk about "The 10 Rules of RobotOps", we had a golden opportunity to fly around a little inside the facility, and captured some rather unique footage, as you can see above.

We will be releasing our code for the Golang MAVLINK generator, along with gobot-mavlink itself, very soon. Here is a little taste of what we can do:

Contributors

A huge thanks to our contributors who made this release possible.

Documentation

We're constantly updating the Gobot docs to keep them up-to-date. You can find the latest info on the docs page.

Issues

If you find any issues with Gobot, please let us know! We try to be on IRC (#gobotio on freenode) as much as possible, but if we're not around leave us a GitHub issue and we'll get back to you as soon as possible.

We're happy to announce the release of Gobot 0.5! This release is the culmination of lessons learned at GopherCon and many weeks of hard work.

Here's a overview of the changes, but if you want to see more check out the compare view on GitHub.

Changelog

Idomatic clean up: All files and tests have been refactored and ran through golint

Removed reflections throughout packages: We used reflection in a few situations to retrieve elements from structs and execute functions. Those reflections have been removed in favor in better interface design

All officially supported platforms are now in ./platforms: Instead of each platform being in a seperate repo, they are all now included in the main Gobot repo.

API is now a new package ./api: The RESTful API is now in a seperate api package and must be explicitely imported for use in your Gobot program.

All platforms examples are in ./examples: All examples has now been moved into a shared examples folder.

Replaced martini with net/http: We no longer use Martini as our API server, and now use the standard net/http package with pat as our pattern muxer.

Replaced ginkgo/gomega with system testing package: We now use the system testing package for testing

Refactor gobot/robot/device commands: User defined API commands have been completely refactored and now have an easier definition. You may now attach a command to your robot like this

Added Event type: Added a new type for registering and responding to device events

Replaced Master type with Gobot type: The Master type is now known as Gobot

Every and After now accept time.Duration

Removed reflection helper methods: We had a few helper methods for retrieveing fields from structs and executing functions on structs. Those have been removed.

Contributors

Documentation

We're constantly updating the Gobot docs to keep them up-to-date. You can find the latest info on the docs page.

Issues

If you find any issues with Gobot, please let us know! We try to be on IRC (#gobotio on freenode) as much as possible, but if we're not around leave us a GitHub issue and we'll get back to you as soon as possible.

We just left the amazing GopherCon in Denver, the first conference dedicated to the Go programming language. A remarkable array of speakers and attendees were present, including Rob Pike and many members of the Golang core team.

It was a great honor for Team Gobot to be invited to speak to such an illustrious crowd, and we worked hard to prepare some demos worthy of the event. When you do live coding of flying objects, there is of course, always some element of aerial risk. However, the talk went off without a hitch! We will post a link once the video is online.

One new demo we've added, is running Gobot on the ARDrone's own internal board in parallel to their firmware, while controlling it using a different Gobot running on a separate computer controlling the drone. How meta!

The next day was the open hack day, and we brought lots of Sphero robots to play with. It was especially fun and exciting to pair up with the master himself. When Rob Pike sat down to play, and to help us improve our code, we were giddy to say the least. Thanks, Rob!

Thank you to the conference organizers, staff, the other presenters, and especially the attendees for making it a great experience. We really enjoyed showing our robotics road show to so many of the best and brightest in the Golang community.

Please follow us on Twitter at @gobotio to keep up to date on the latest news and information, as the community continues to work together on Golang powered robotics using Gobot.

Continuing our robot road show in recognition of National Robotics Week, we brought Gobot (http://gobot.io) our Golang robotics framework, to Boston to speak to BostonGolang. Boston has a thriving technology community, and we were happy to present our work to one of the most quickly growing meetup groups focusing on the Go programming language.

Held at the Akamai offices in Cambridge, we had just introduced our new "10 Rules Of Robot Ops" site earlier in the day, so we used that as the theme for the talk. We had also just finished support for the Neurosky Mindwave Mobile EEG, and it was neat to incorporate Brain-Computer Interfaces (BCI). We also demoed our Golang powered version of Conway's Game of Life using Sphero robots.

Thanks to all of you who came out to see us, we had a great time sharing our latest work with Boston's Golang community of enthsuiasts!

Please follow us on Twitter at @gobotio for the latest news and information, as we continue to work on this exciting platform.

We are very excited to introduce Gobot (http://gobot.io), a new and powerful open source robotics platform written using the Go programming language. Go has remarkable abilities when it comes to massive concurrency with only modest use of system resources. In addition, the expressive nature of the programming language makes it really nice code to work with.

Our team will post here with all our exciting developments, as well as anything else of interest to the robot community. We've got a lot of plans in store for all of you, our dear users, so please follow us on Twitter at @gobotio to follow our progress.