Hubo Question and Answer:


1.    Vision:

a.    Does HUBO have any cameras installed right now?  

1.    No


b.    When the camera is installed what is it’s physical configuration?

1.    Single camera in the front facemask of the head of the Hubo approximately 1.2m off the ground.  Please note that the head can act as a pan tilt unit.


c.    What is the model number of the camera that will be used?

1.    It has not been chosen yet but it will probably be a single Microsoft Lifecam VX-3000


d.    What is the resolution of the camera?

1.    See the webcam’s data sheet


e.    Is the camera to be used in color or grayscale?

1.    Users choice


f.     How is the camera connected?

1.    Through a USB 2.0 port


g.    What computer is the camera connected to?

1.    The main processing computer running Windows XP Embedded with RTX


h.    Is their motion on the camera independent of HUBO's head?

1.    The camera is fastened directly to the Hubo’s head.  The only movement that the camera can have is via movement of the head


i.      Will all computing be on board HUBO?

1.    Yes


j. What kind of computing hardware is available (For Vision)?

1.    The computer used is the Advantech PCM-3380


3.    Data Sheet


k.      What kind of tether do we have, or is HUBO wireless Ethernet?

1.    Wired or wireless but ALL computation is to be done onboard.


l.  The 933 PIII is a good CPU, but in my experience it would be difficult to run both the robot control system and a serious vision system on it simultaneously.  I think we should attempt to put a second CPU on the robot dedicated to vision and social interaction if HUBO is going to do that.  An identical advantech board would be acceptable, although it would be best to have one with a firewire connection, if at all possible.  There are PC104 firewire adapters available.

1.    I agree I believe that it would be best to have a separate computer for the vision.  Depending on the size and configuration, it is probably best to stick with the same board but just use an add-on firewire card to the PC104 slot.


m.    If we can get a firewire connection, it would be nice to have a better camera, like the Point Grey Flea.  It would give us better data and much more control over the imaging parameters.

1.    I also agree, do they make a Point Grey Flea with stereo vision?  One concern about the camera is the size, we have to make sure it fits in the faceplate.


n.    I'd like the vision/social interaction CPU to be running linux.  Since it doesn't have to deal with the real-time control aspects of the robot, we have some flexibility, and the two CPUs can be linked together pretty easily using ethernet.

1.    Hubo will not be running multiple operating systems.  One of the goals of the project is to make the Hubo as easy to use as possible.  Thus having a single operating system is a must.  The makers of Hubo have already chosen Windows XP Embedded so that is what we are going with.  If there are too many problems with using Windows XP Embedded I am sure an alternate operating system will be discussed, but I personally do not see any reason to switch at this time besides user's preference.



2.    Programming:

a.    How is programming the New Hubo going to be different than programming the previous version?

1.    The code will be significantly cleaned up, i.e. the TimerHandler() will not hold all of the code for making the Hubo function and thus will not be over 20K lines long for the single function.

2.    New Hubo will be broken up into separate smaller functions, such as move(motor_number, desired_angle) to simplify things

3.    New Hubo will still implement the SharedMemory.h which allows the windows GUI and Windows Code talk to the Hard Real-Time code that controls the TimerHandler() and the CAN Bus.

4.    New Hubo will have the option to have the movement commands be set via setting values in SharedMemory.h like the old Hubo had implemented.


b.    We'll likely need to communicate between applications both on and off HUBO. Do you see any problems with writing a program/thread that acts as a bridge between the shared memory and other applications?

1.    Besides latency no, that is what the SharedMemory.h is there for.  Though the preference is that all processing is done onboard of Hubo.  Please note that we might be able to put an additional computer in the head of Hubo.  If this is done plan on it being similar to the PCM-3370.


k.    What kind of computing hardware is available (For Control)?

1.    The computer used is the Advantech PCM-3370


3.    Data Sheet


c.      What kinds of connections are available?

1.    1 x RS-232/422/485

2.    1 x RS232

3.    1 x K/B

4.    1 x Mouse

5.    1 x 10/100Mbps PCI Ethernet interface

6.    1x WLAN 802.11b/g

7.    PC104 (No room for more boards)



3.    Movement:

a.    As for programming HUBO, I guess my question was more about what the level of abstraction will be.  It sounds like it will still be at the level of joint angles.  Are there plans to create a higher level abstraction that allows a programmer to tell HUBO to go to a particular relative location (e.g. 1m forward) or to execute one of a serious of actions (e.g. wave)?

1.    I am currently working on adding the following high level abstractions:

a.    Hand placement: Tell Hubo where to place his hand and the rest of the arm/body already knows what to do.

b.    Simple Movement: Tell Hubo to move at a given velocity and a given arch length

2.    Note: This is not required of me to do so I will not guarantee that these functions will be completed.  I am also working on a higher level API for Hubo to make all of our lives EZer.  This should be posted on my Hubo page within the next few weeks.