This page describes Loki’s electronics. My other robots use similar, with variations. So, most of the core info is here, but there may be details specific to each robot on its design page.
All of my robots use a main processor (laptop or PDA/Phone) for the higher level software, and a microprocessor for sensor interface, and often motor or servo control. Loki has a laptop embedded in his chest that communicates via USB to various electronics.
For the MicroProcessor, I have been using a PIC-based Mark III controller board, which used to be available here, but I have heard may not be available any longer.
1/15/2013 Update! I finally moved to Arduino! See Arduino section below.
(click on pictures for larger view)
Loki USB Connections
Sensors and Control Block Diagram
Wiring Diagram
PIC Interface Board
PIC I/O Expansion Board
Head and Arm Boards
Power Distribution
Arduino Robot Interface Shield
Arduino Interface Schematic
Arduino Board layout, using a proto shield








Great job with LOKI. I was wondering if you could share how you were able to coordinate LOKI’s arm/hand location with the vision system?
Hi Robert,
The Kinect sensor code creates an XYZ point cloud of everything it sees. the function “FindObjectsOnFloor” uses this data to identify objects of interest. Then in ArmControl.h” there is a function called “CalculateArmMoveToXYZ”. For pure vision (which I don’t rely upon as much, since I added the Kinect), the camera can be pointed with the function in HeadControl.h called “LookAtXYZ”. The Behavioral module Calls these functions to guide the arm to pick up the object. Note that XYZ maps as follows: Y= distance in front of robot’s front bumper. Z= height above ground, X=distance Right/Left of centerline (Left is negative).
Hope this helps!
You may want to check out http://www.EZ-Robot.come
kinect when you connected to the PC you had problems?
Nice going on LOKI!! He’s intelligent, more intelligent than I thought. It must have costed alot to build him, but hey, a robotics engineer can have some fun can’t they?