kwatters's blog

Lloyd, an evolved InMoov for Telepresence and Augmented Reality

kwatters's picture

It's been a goal of mine(ours?) for a long time to have a proper telepresent InMoov.  I believe Lloyd is that.  There is a new branch of MyRobotLab called "lloyd" based off the develop branch.  This is where I'll be continuing work on my customizations without breaking horribly things that are already working.


New Tracking Algorithms, TLD, MedianFlow, and More!

kwatters's picture

So, in OpenCV 3.x there is a new opencv_tracking module that is exposed via JavaCV. 

This module contains 7 different implementation of object trackers.  There is a new "Tracker" filter that allows you to switch between any of these 7 tracking algorithms.  It should work pretty similar to how the lk tracking works in that it should publish the point that's being tracked.  Right now the filter only supports tracking a single point.  


Robot Memories Solr and InMoov

kwatters's picture

So,  I've been playing around a bit with using Solr as the basis for recording data that flows through MyRobotLab and exposing it for search later on.  Here's a screen shot of the new (very sparse) solr search gui in the swing gui.

 

 


Custom grabbers and OpenCV capture

kwatters's picture

There's been some refactoring of OpenCV to expose a method on it that allows you to pass in a custom frame grabber directly when you tell opencv to start.  This means we can programmatically control the settings on the grabber 

 

Here's a small python example of creating a frame grabber, intializing it with the filename and the api preference and then 

 


Updated joystick example

kwatters's picture

It's come to my attention that the joystick example scripts are pretty far out of date and definitely don't work very well with manticore.

I have updated an example joystick script that will work with manticore

https://github.com/MyRobotLab/pyrobotlab/blob/develop/home/kwatters/joys...

This is a very simple example of the joystick analog stick x axis controlling the speed and direction of the a servo motor.  This is a much more simplified approach than having to deal with the "sweep" function on the servo.

 


Crossing the Rift into the Yolo valley.

kwatters's picture

Oculus Rift with Yolo filter

The OculusRift service has been updated to support the CV1 version of the Oculus.  The service still is pretty rough and needs some polishing, but it's functional if nothing else.


New style Config for MRL, custom robots, and InMoov2

kwatters's picture

I wanted to start a conversation about how to structure the configuration for a robot running MyRobotLab.

Having a consistent configuration that is flexible that defines the services that are started and how they attach to each other would be a great starting place.  


Robot Memories...

kwatters's picture

So the general question is:

What should your robot remember?  What should your robot recall?  How do you want to access their memories?

More details to follow...

 

Teaser:  We will embed a "core" to store robot memories.  I think these memories probably include things like.

1. what did I hear?

2. what did I say?

3. what did I see?

4. what did I feel/taste?

5. what did I smell?

 

We can establish a common storage format for all of this and it can be shared!


The uncanny Mr. Turing and his deep learning of with LSTM neural networks

kwatters's picture
 
 
I recently attended some training classes around a deep learning framework called Deeplearning4j.  It was provided by the company SkyMind.IO, they're the ones that created, maintain, and support the dl4j open source project.
 

This script can save your life...

kwatters's picture

So, sometimes an arduino running mrlcomm will get away from you.  The best way to reset it is to toggle the serial port.  This resets the arduino that's connected and thus clearing the device list in mrlcomm.

Here's a small snippet of python code that will toggle the DTR pin and reset the arduino.

pi@raspberrypi:~ $ cat reset.py