kwatters's blog

2 Cameras 1 Kinect...

kwatters's picture

So,  I was able to get 2 cameras (OpenCV) working at the same time as having 1 Kinect (OpenNI) running.

Interestingly enough, comparing the camera images to the kinect image, it seems the kinect has the image reversed on the x axis...



Reflections on the resistance of power supply lines to a servo motor

kwatters's picture

I recently saw some posts in the InMoov forum talking about how the supply lines are very important to being able to power the servos properly.  My initial reaction was that the resistance of the wires going to the servo motors should be negligable.  I mean, after all , it's wire.. it's copper.. it's a conductor.  When we think about circuits we always consider that the wires don't have any resistance at all.  They're ideal conductors, if you will.

The road to industrial robot control for hobbyests

kwatters's picture

My new years resolution is to really get a good understanding of industrial robot arm control with the hopes to come up with some dynamic control to keep robots balanced and borg that into MRL.

I recently picked up a robot arm kit from OWI.  It's a 5 degree of freedom robotic arm.  It took about 2.5 hours to assemble.    

The OWI Robotic Arm Edge Kit


Python Robotics Toolkit

kwatters's picture


Based on

I've been working through getting a kinematic model for the InMoov, recently, I stumbled across a python library based on the matlab robotics toolkit.  It uses NumPy for much of the heavy lifting math operations.  

So far I've been able to create a very small script to compute forward kinematcis of a set of links using this python robotics toolkit

Python easy install on windows

kwatters's picture

Here's a quick little page with some notes of how to install python and dependent modules.  This was done on python 2.7


1. download and install python 2.7.x from  

2. install python in the default directory  c:\Python27

3. download the script from   (save this file in c:\Python27 )

4. open up a command prompt 

5. type   cd %PYTHON_PATH%

6. type   "set PYTHON_PATH=c:\Python27"

3D printed leg from 3DPrinterOS

kwatters's picture

Here's a fun little project and was open sourced at

This leg is about 1/2 the size that the inmoov would need, but it's interesting as a start.  The parts were reasonably easy to print, though some did need to be printed with supports. 

Center-tap pot and the oscope

kwatters's picture

I've tried connecting up the center tap of the servo pot to an analog input of the arduino and measured it with the oscope of MRL.  fun...


here's some images of the with and without the ground line connected.. i'll leave it up to you to see which is which.  (I was manually turning the pot myself.. watching what happened on the analog input pin 0 of the arduino that i connected up...)


D-H Parameters and the InMoov for a Kinematic Model

kwatters's picture

Update:   I'm kinda geekin' out about this right now...  It looks like all those matrix multiplications do something useful...



Did a quick simulation with MRPT of what I believe is a resonable approximation of the InMoov arm.



Closing the Loop on Hobby Servos with MRL

kwatters's picture

This is really a page to talk about how to measure the actual angle that a servo has reached, rather than the last position the servo was told to move to.  The aim is to be able to allow the servos to automatically configure their actual max/min angles.  In addition, it should allow for quicker response to the stop() method.

The stop() method stops the sweeper that is currently running for the servo.  However, this only tells it to stop the sweeper, the servo will continue to move to the last position it was told to go to.