RobotStudio event

Autonomous robot's navigation

Since October 2007 I developed new object recognition algorithm "Associative Video Memory" (AVM).

A?Algorithm AVM uses a principle of multilevel decomposition of recognition matrices, it is steady against noise of the camera and well scaled, simply and quickly for training.

A?And now I want to introduce my experiment with robot navigation based on visual landmark beacons: "Follow me" and "Walking by gates".

image
Follow Me

image
Walking from p2 to p1 and back

I embodied both algorithms to Navigator plugin for using within RoboRealm software.
A?So, you can try now to review my experiments with using AVM Navigator.

The Navigator module has two base algorithms:

-= Follow me =-
A?The navigation algorithm do attempts to align position of a tower and the body
A?of robot on the center of the first recognized object in the list of tracking
A?and if the object is far will come nearer and if it is too close it will be
A?rolled away back.

-= Walking by gates =-
A?The gate data contains weights for the seven routes that indicate importance of this gateway for each route. At the bottom of the screen was added indicator "horizon" which shows direction for adjust the robot's motion for further movement on the route. Field of gates is painted blue if the gates do not participate in this route (weight rate 0), and warmer colors (ending in yellow) show a gradation of "importance" of the gate in the current route.

* The procedure of training on route
A?For training of the route you have to indicate actual route (button "Walking by way")
A?in "Nova gate" mode and then you must drive the robot manually by route (the gates will be installed automatically). In the end of the route you must click on the button "Set checkpoint" and then robot will turn several times on one spot and mark his current location as a checkpoint.


A?So, if robot will walk by gates and suddenly will have seen some object that can be recognized then robot will navigate by the "follow me" algorithm.

A?If robot can't recognize anything (gate/object) then robot will be turning around on the spot
A?for searching (it may twitch from time to time in a random way).

A?For more information see also thread: "Autonomous robot's navigation" at Trossen Robotics.

Now AVM Navigator v0.7 is released and you can download it from RoboRealm website.
In new version is added two modes: "Marker mode" and "Navigate by map".

Marker mode

image

Marker mode provides a forming of navigation map that will be made automatically by space marking. You just should manually lead the robot along some path and repeat it several times for good map detailing.

Navigation by map

image

In this mode you should point the target position at the navigation map and further the robot plans the path (maze solving) from current location to the target position (big green circle) and then robot begins automatically walking to the target position.


image

For external control of "Navigate by map" mode is added new module variables:

NV_LOCATION_X - current location X coordinate;
NV_LOCATION_Y - current location Y coordinate;
NV_LOCATION_ANGLE - horizontal angle of robot in current location (in radians);


Target position at the navigation map
NV_IN_TRG_POS_X - target position X coordinate;
NV_IN_TRG_POS_Y - target position Y coordinate;

NV_IN_SUBMIT_POS - submitting of target position (value should be set 0 -> 1 for action).

Examples

image
Quake 3 Odometry Test

image
Navigation by map

image
Visual Landmark Navigation


Comments


  • I have done
    new plugin for RoboRealm:

    image

    Digital
    Video Recording system (DVR)

    You can use
    the "DVR Client-server" package as a Video Surveillance
    System
    in which parametric data
    (such as
    VR_VIDEO_ACTIVITY) from different video cameras will help you search for a
    video fragment
    that you
    are looking for. 

    You can use
    the "DVR Client-server" package as a powerful instrument for
    debugging your video processing
    and control
    algorithms that provides access to the values of your algorithm variables that
    were archived
    during recording.
     

     

    Technical
    Details

     - ring video/parametric archive with
    duration of 1 - 12 months;

     - configurable database record (for
    parametric data) with maximal length of 190 bytes;

     - writing of parameters to database with discretization
    250 ms;

     - the DVR Client can work
    simultaneously with four databases that can be located at remote
    computers.

      

    image


  • [quote="Mel"]Hey
    EDV!

     I finally got my hands on a Roomba robot that
    I could try with the Nav programs. I went through all of the items and
    tutorials. When I placed the robot in the NAV mode, it moved. All others did
    not move unless I used the arrows to train them. The Nav by map mode showed the
    progress, but I could not get it to move by clicking on Left mouse. When I
    clicked on Left mouse it did not do anything. I would like to make that work.
    Can it work on it's own, or do I have to train it in one of the other
    modes?[/quote]

     

    I prepared
    simple video tutorial
    "Route training and
    navigation by map"
    :

     

    image

     

    See
    more
    details
    about tuning of "Marker mode" and
    "Navigation by map" modes.

    http://edv-detail.narod.ru/trend_empty_cells.png 

    http://edv-detail.narod.ru/dvr_client_trend_2.png  


  • AVM
    Navigator v0.7.4.2 update

     Changes: 

       - The indication drawing
    was carried to ::Annotate method

       
    image

       - Into camera view was
    added 3D marker of target position of robot

       
    image

       ...

     See
    here
    about all other changes.



  • Fun with AVM Navigator

    image

    It's little demo of object recognition and learning from motion with helping of AVM Navigator.

    All object rectangle coordinates are available in RoboRealm pipeline from external variables:
    NV_ARR_OBJ_RECT_X - left-top corner X coordinate of recognized object
    NV_ARR_OBJ_RECT_Y - left-top corner Y coordinate of recognized object
    NV_ARR_OBJ_RECT_W - width of recognized object
    NV_ARR_OBJ_RECT_H - height of recognized object

    So you can use it in your VBScript program.

    See here for more details.

    [quote="Alan"]Hi,

    I noticed in the youtube video that you jiggle the object (your face or the book) slightly during the learrning phase. Is this an advantage?

    Cheers,

    Alan[/quote]

    In fact the AVM algorithm is not invariance to rotation and you should show the object for memorizing to AVM search tree under different angles during training for further correct recognition.

    See also an example of using of Canny module as background for AVM Navigator:

    image

     

  • Hi guys,

    I'm still working over AVM technology. Now I've founded my own company that is named [url=http://invarivision.com]Invarivision.com[/url].
    We are small but passionate team of developers that are working over [url=http://invarivision.com/help.php]system which would be able watch TV[/url] and recognize video that interests user.

    And we need your help! 

    It seems that interface of our search system is good enough because we try to make it to be simple and user friendly but from other point of view it could be a total disaster.

    Could you  please [url=http://invarivision.com]take a look to our system[/url] and then tell us about good and bad sides of this?

    The constructive criticism is welcome.

    With kind regards, EDV.