Let me know

Is there any feature I should add? Add a comment on my new Chat Page

InMoov Control System

The InMoov Robot


My InMoov robot is controlled by multiple servo units, each moving a part of the robot.   The servos can be programmed to move to defined positions using hardware and software control systems.

An important  choice you need to make is the software/hardware control system for your InMoov.
The options under discussion here are MRL [Myrobotlab.org]  and  EZRobot [https://www.ez-robot.com/]. There are other systems available, an example being ROS [http://www.ros.org/] but I have not used them so cannot comment on them here [check out ROS as it look really interesting...].  

I am currently using the EZ-B V4/2 wifi robot controllers and the EZ-Builder software program for my InMoov robot.   I have also used the MRL system with the Arduino boards.

The InMoov project is based on the MRL approach and Gaels own robots use MRL, which is an open source Java based framework for machine control. It is a very good way to learn in depth programming skills and uses the latest technologies. Support the project! 

The EZRobot system is a commercially developed system and only partially open source.  The advantage of the commercial hardware/software system for the hobbyist is that it is perhaps easier to use and less of a software learning curve.

Anyway, as I have used both systems, my InMoov is a bit of a hybrid in wiring, initially being Arduino controlled with the Nervo Boards feeding the robots servos and then rewired for the EZ-B V4 devices.  I then rewired all again to add in variable power supplies for different servos.

The EZ-Builder Approach

I am assuming that you have downloaded and installed the EZ-Builder for Windows software.  Also that you have an understanding of the basics of the software. If not, do read the ezrobot tutorials, in particular the various "getting started pages" and also take your time and explore the "EZ-Script Examples" supplied with the program.  The latter are really essential reading.   Also read the forums articles. 

The EZ-B V4 units can control up to twenty four servo units each and you can have up to five device units under control at anyone time [devices 0-4].   I am using two of the controllers, device-0 controlling the hands, arms and head movement servos and the device-1 controlling the eyes and stomach positions.

In addition there is an EZ-B Camera unit in the eye socket of the robot, this is connected to controller device-0. Controller device-1 provides the audio output to the robots amplifier and loudspeaker.  

AutoPosition graphics

Graphics help to make sense of your controls when using the "Auto Position" panels in EZ-Builder.  The various servo units can be easily identified and labelled with both their function and EZB digital control number.   The auto-position panels allow a snap-shot of your servos positions and you can create a sort of "stop-motion" of the servos and they transform from position to position on each stop-motion page.  Very clever stuff and read about it here.  

You can only access a single instance of an EZB controller within an auto position panel, so you are limited to a maximum of twenty four servos per panel.    

In this panel I am controlling both left and right ARMS and the HEAD movement.  The hands are also shown on the graphics but I actually use a third auto-position panel to control them specifically. 


The next auto-position panel is showing the EYES, JAW and STOMACH servos controls. 

You can have as many auto-positions panels as you want, so you can as mentioned have an auto-position panel specifically for the hands.   This makes programming easier I find as you are not accidentally controlling other servos within the hands "panel" for example.

Servo Position Allocation


The following tables show the servo connections to both of the EZB controllers and their functions.









The following tables show the servo default degree positions [minimum, maximum and at rest].
Also shown here are the colour codes for the cables I am using from the EZB controller to my small PCB distribution boards [these are Dupont style cables]




Power Distribution Box Overview
Schematic V1 [provisional]





Power Distribution Fused PCB Boards V2b provisional [Changed 11th Nov 2017]



Also note that in the above schematic, the LEDs that I am using have built in resistors, and I have not shown the resistors in this layout.  If you use LEDs without resistors, you need to add a resistor in series to each LED of approx 330-470 Ohm range.   The Servos themselves complete the circuit back to Ground/OV.


Power Distribution Non-Fused PCB Boards for the Hands
V1 [provisional]



Ribbon Cable Breakout Board Wiring - Views 1 & 2


The next two schematics both show the same Ribbon Cable Breakout Board Wiring, shown in different ways.
These boards are used to connect the two EZB devices to the ribbon cables.

DuPont female ended cables plug onto the EZB digital servo SIGNAL pins [white rows of pins] and the other end of these cables  are hard-wired to my small PCB boards.  These boards have 20-way ribbon sockets soldered on them and the DuPont cables are soldered to specific pins on the sockets.






Important point - each ribbon cable must have an 0V/Earth connection connected to the EZB device 0V digital servo pin.  All the 0V pins are connected together within the EZB units so just pick any BLACK 0V pin on the device.

Important point - My InMoov does not use the DC power output pins of the EZB controller devices, but instead has separate power cables run to the Servo Units from my Power Distribution Board. I do not connect any cables to the POWER PINS on the EZB units for powering the servos.

The power output from the EZB is UNREGULATED so as I am powering the EZB with 12-Volts DC, there will be 12-Volts DC on these pins!   If you connect a standard Servo to these pins, you will damage it.

See notes here from the EZ-Bv4 data sheet below [full doc here]


You can of course power the EZB controller at a lower voltage, 5-volts DC for example, as I used to do before I added in the BEC regulators.   You can then connect your Servos cabling direct to the EZB units using all three wires [0V, +V and Signal].     Many people do connect their EZB units this way to their InMoov robots. 

You are limited in this way to a single operating voltage and also current limited to the maximum EZB 20-Amp rating [fused at 20-amp in the EZB device base].    
You will need to disable the "low battery warning" as mentioned above as it becomes very annoying.   
Note also that the BECs I use are "switching" BECS and are very efficient.  The comment in the EZB data sheet above applies to cheap non-switching style regulators. 

Here are some close up pictures of the  wiring as discussed above

This is EZB Device-1 with the HEAD and NECK wiring. 

Note the BLACK 0V DuPont cable connected to the EZB black row of pins.  Each ribbon loom requires this 0V.    See also on PIN-11 there is a RED & BLACK cable with the white cable cut off.  This is picking up a 12-V DC feed to send up to the audio amplifier in the head that powers the head loudspeaker.


This picture shows the  PCB Ribbon Breakout Boards with the ribbons plugged in to them




This picture shows clearly the DuPont cable male pin ends soldered to the board.   They are then wired on the underside of the board to the specified ribbon socket pins.





More views here....












Here is the STOMACH/TORSO PCB fuse board, but all these  boards are identical


You can see the reset-able fuses plugged in to a DIL socket base and the LEDs wired inside.

The picture below shows the right arm shoulder PCB










This next picture shows the NON-FUSED PCB boards for the hands.  These boards just add in the DC power to the ribbon going to the hands.    So one of the ribbons comes from the Ribbon Breakout Board and the other ribbon goes to the hand.    The XT-60 feeds power on to the board and is wired to the power pins of the ribbon "hands" socket.




The pictures below show the EZB Device-0.   Note the camera cable [white 6-core ribbon] plugged into the middle socket.  Both the EZB units are mounted upside down just so I could access the power connectors from the top.








InMoov with the back cover removed. Note the Audio-Output cable coming out of the EZB-1 device [right side]










General wiring pictures...
















Finally with the back cover on.  I am printing a cover plates for the top section and a surround plate for the power switch box.   Plus some blanks for the two switch outlets either side.
















Comments

  1. Hi Perry,
    Awesome job with your description of your inmoov, im just curious did you fit finger sensors and if so how did you go about connecting them with ezy bot .
    Regards mitch

    ReplyDelete
    Replies
    1. Hi Mitch, I haven't tried finger sensors but it should be fairly straightforward. If you use the finger sensors that are suggested on the InMoov site, I would guess that they could be connected up to the 8x analogue ADC ports on the EZB. With a bit of coding, this should work. Its worth searching the EZB forums to see if anyone has done this with InMoov. Certainly its likely that someone has suggestions on coding the ADC ports. The forums moved and is now called Synthiam https://synthiam.com/.
      Glad you like the blog, InMoov is so cool, kyle

      Delete

Post a Comment