Autonomous robot's navigation

Discussions regarding building a walking robot at home. Most of the robots participating at Robo-One competitions are custom fabricated.
29 postsPage 1 of 21, 2
29 postsPage 1 of 21, 2

Autonomous robot's navigation

Post by EDV » Tue Sep 28, 2010 8:13 am

Post by EDV
Tue Sep 28, 2010 8:13 am

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

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.

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.
So, you can try now to review my experiments with using AVM Navigator.

The Navigator module has two base algorithms:

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

-= Walking by gates =-
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
For training of the route you have to indicate actual route (button "Walking by way")
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.


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.

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

For more information see also thread: "Autonomous robot's navigation" at Trossen Robotics.
Since October 2007 I developed new object recognition algorithm "Associative Video Memory" (AVM).

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.

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.
So, you can try now to review my experiments with using AVM Navigator.

The Navigator module has two base algorithms:

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

-= Walking by gates =-
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
For training of the route you have to indicate actual route (button "Walking by way")
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.


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.

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

For more information see also thread: "Autonomous robot's navigation" at Trossen Robotics.
EDV offline
Robot Builder
Robot Builder
Posts: 22
Joined: Tue Sep 28, 2010 8:01 am

Post by limor » Mon Oct 04, 2010 8:35 pm

Post by limor
Mon Oct 04, 2010 8:35 pm

fascinating stuff! thanks for the post.
fascinating stuff! thanks for the post.
limor offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1845
Joined: Mon Oct 11, 2004 1:00 am
Location: London, UK

Post by EDV » Sun Jun 05, 2011 3:46 pm

Post by EDV
Sun Jun 05, 2011 3:46 pm

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


Quake 3 Mod

Image

Don't have a robot just yet? Then click here to view the manual that explains how to setup RoboRealm
with the AVM module to control the movement and processing of images from the Quake first person video game.
This allows you to work with visual odometry techniques without needing a robot!

The additional software needed for this integration can be downloaded here.
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


Quake 3 Mod

Image

Don't have a robot just yet? Then click here to view the manual that explains how to setup RoboRealm
with the AVM module to control the movement and processing of images from the Quake first person video game.
This allows you to work with visual odometry techniques without needing a robot!

The additional software needed for this integration can be downloaded here.
EDV offline
Robot Builder
Robot Builder
Posts: 22
Joined: Tue Sep 28, 2010 8:01 am

Post by EDV » Mon Jun 06, 2011 8:34 pm

Post by EDV
Mon Jun 06, 2011 8:34 pm

Is it possible to play with virtual robot in "Navigation by map" mode?

Yes!

Image

Just look into documentation and download the "AVM Quake 3 mod" installation.
Is it possible to play with virtual robot in "Navigation by map" mode?

Yes!

Image

Just look into documentation and download the "AVM Quake 3 mod" installation.
EDV offline
Robot Builder
Robot Builder
Posts: 22
Joined: Tue Sep 28, 2010 8:01 am

Post by EDV » Mon Jul 11, 2011 7:07 am

Post by EDV
Mon Jul 11, 2011 7:07 am

Next modification of AVM Navigator v0.7.2.1 is released.

Changes:
Visual odometry algorithm was updated:

Image
Visual Odometry
Next modification of AVM Navigator v0.7.2.1 is released.

Changes:
Visual odometry algorithm was updated:

Image
Visual Odometry
EDV offline
Robot Builder
Robot Builder
Posts: 22
Joined: Tue Sep 28, 2010 8:01 am

Post by EDV » Tue Aug 09, 2011 9:35 pm

Post by EDV
Tue Aug 09, 2011 9:35 pm

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
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
EDV offline
Robot Builder
Robot Builder
Posts: 22
Joined: Tue Sep 28, 2010 8:01 am

Post by EDV » Mon Oct 03, 2011 7:22 pm

Post by EDV
Mon Oct 03, 2011 7:22 pm

Mel wrote: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?


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.
Mel wrote: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?


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.
EDV offline
Robot Builder
Robot Builder
Posts: 22
Joined: Tue Sep 28, 2010 8:01 am

Post by i-Bot » Mon Oct 03, 2011 8:12 pm

Post by i-Bot
Mon Oct 03, 2011 8:12 pm

Great video and very thought provoking.

When the robot was to return to start, I thought at first it would turn around and view the path in reverse. Obviously it would not need to do that, though humans do.

It has helped my reunderstanding of maps. I realised recently when revisiting some places I had not been since very young, that the naive maps I had of those places were very accurate, but not properly described in 2D space. Places I know now are much better mapped in 2D space, which adds value, but appears is not essential.
Great video and very thought provoking.

When the robot was to return to start, I thought at first it would turn around and view the path in reverse. Obviously it would not need to do that, though humans do.

It has helped my reunderstanding of maps. I realised recently when revisiting some places I had not been since very young, that the naive maps I had of those places were very accurate, but not properly described in 2D space. Places I know now are much better mapped in 2D space, which adds value, but appears is not essential.
i-Bot offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1142
Joined: Wed May 17, 2006 1:00 am

Post by limor » Tue Oct 04, 2011 8:44 am

Post by limor
Tue Oct 04, 2011 8:44 am

I loved the video.
seems like during the learning phase, couple of times/sec, you define waypoints based on some SURF/SIFT points and then the robot navigates by trying to find matching waypoints. very clever and surprisingly fast.

Why does it take the robot so long to start navigating from the moment it has been put back in the initial position ?
I loved the video.
seems like during the learning phase, couple of times/sec, you define waypoints based on some SURF/SIFT points and then the robot navigates by trying to find matching waypoints. very clever and surprisingly fast.

Why does it take the robot so long to start navigating from the moment it has been put back in the initial position ?
limor offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1845
Joined: Mon Oct 11, 2004 1:00 am
Location: London, UK

Post by EDV » Wed Oct 19, 2011 8:00 pm

Post by EDV
Wed Oct 19, 2011 8:00 pm

>> Why does it take the robot so long to start navigating from the moment it has been put back in the initial position ?

The start action is given by manually but I just was unhurried :D


It's test of new algorithm for AVM Navigator v0.7.3. In this video was demonstrated how robot just try to go back on checkpoint from different positions of the learned route.

Image

Back to checkpoint!

First in video the robot has received command: "go to the checkpoint" and when robot arrived to the checkpoint then I brought robot back (several times) in different position of learned route. When robot noticed the changes then it indicated that robot was displaced because any commands were not given by robot to his motors however changes were seen in the input image.

Then robot started looking around and localized his current position. Further the robot just calculated path from current position to the checkpoint and went there (and so forth).
>> Why does it take the robot so long to start navigating from the moment it has been put back in the initial position ?

The start action is given by manually but I just was unhurried :D


It's test of new algorithm for AVM Navigator v0.7.3. In this video was demonstrated how robot just try to go back on checkpoint from different positions of the learned route.

Image

Back to checkpoint!

First in video the robot has received command: "go to the checkpoint" and when robot arrived to the checkpoint then I brought robot back (several times) in different position of learned route. When robot noticed the changes then it indicated that robot was displaced because any commands were not given by robot to his motors however changes were seen in the input image.

Then robot started looking around and localized his current position. Further the robot just calculated path from current position to the checkpoint and went there (and so forth).
EDV offline
Robot Builder
Robot Builder
Posts: 22
Joined: Tue Sep 28, 2010 8:01 am

Post by EDV » Wed Nov 30, 2011 9:46 am

Post by EDV
Wed Nov 30, 2011 9:46 am

AVM Navigator v0.7.3 is released!

Changes:
- The new "Back to checkpoint" algorithm was added in "Navigation by map" mode.
http://www.youtube.com/watch?v=wj-FKhdaU5A

- Also new "Watching mode" was developed.
And robot can move to direction where motion was noticed in this mode.
http://www.youtube.com/watch?v=c1aAcOS6cAg

Also common usability was improved.

By the way I received new video from user that succeed in "Navigation by map":
http://www.youtube.com/watch?v=214MwcHMsTQ

His robot video and photo:
http://www.youtube.com/watch?v=S7QRDSfQRps
http://roboforum.ru/download/file.php?i ... &mode=view
http://roboforum.ru/download/file.php?i ... &mode=view
http://roboforum.ru/download/file.php?i ... &mode=view

I believe that you also will have success with visual navigation by AVM Navigator module ;-)
AVM Navigator v0.7.3 is released!

Changes:
- The new "Back to checkpoint" algorithm was added in "Navigation by map" mode.
http://www.youtube.com/watch?v=wj-FKhdaU5A

- Also new "Watching mode" was developed.
And robot can move to direction where motion was noticed in this mode.
http://www.youtube.com/watch?v=c1aAcOS6cAg

Also common usability was improved.

By the way I received new video from user that succeed in "Navigation by map":
http://www.youtube.com/watch?v=214MwcHMsTQ

His robot video and photo:
http://www.youtube.com/watch?v=S7QRDSfQRps
http://roboforum.ru/download/file.php?i ... &mode=view
http://roboforum.ru/download/file.php?i ... &mode=view
http://roboforum.ru/download/file.php?i ... &mode=view

I believe that you also will have success with visual navigation by AVM Navigator module ;-)
EDV offline
Robot Builder
Robot Builder
Posts: 22
Joined: Tue Sep 28, 2010 8:01 am

Post by EDV » Fri Dec 02, 2011 8:33 pm

Post by EDV
Fri Dec 02, 2011 8:33 pm

Yet another video from user whose robot has extremely high turn speed but AVM Navigator module could control robot navigation even in this bad condition!
http://www.youtube.com/watch?v=G7SB_jKAcyE

His robot video:
http://www.youtube.com/watch?v=FJCrLz08DaQ
Yet another video from user whose robot has extremely high turn speed but AVM Navigator module could control robot navigation even in this bad condition!
http://www.youtube.com/watch?v=G7SB_jKAcyE

His robot video:
http://www.youtube.com/watch?v=FJCrLz08DaQ
EDV offline
Robot Builder
Robot Builder
Posts: 22
Joined: Tue Sep 28, 2010 8:01 am

Post by retro_boy » Sat Dec 03, 2011 9:13 pm

Post by retro_boy
Sat Dec 03, 2011 9:13 pm

Possible to make this work with Bioloid Premium?
Possible to make this work with Bioloid Premium?
retro_boy offline
Robot Builder
Robot Builder
Posts: 22
Joined: Sat Nov 19, 2011 8:48 pm

Post by EDV » Sun Dec 04, 2011 10:01 am

Post by EDV
Sun Dec 04, 2011 10:01 am

I did not find direct link about bioloid connection to RoboRealm but I think that it is possible:

Tracking red object with Bioloid using RoboRealm software


The AVM Navigator is working in RoboRealm environment and you can use RoboRealm API for connection AVM Navigator (with helping “NV_” variables) to any external application or device.

See for more detail:
Extending/Interfacing/Programming RoboRealm
Serial Communication
AVM Navigator Module
I did not find direct link about bioloid connection to RoboRealm but I think that it is possible:

Tracking red object with Bioloid using RoboRealm software


The AVM Navigator is working in RoboRealm environment and you can use RoboRealm API for connection AVM Navigator (with helping “NV_” variables) to any external application or device.

See for more detail:
Extending/Interfacing/Programming RoboRealm
Serial Communication
AVM Navigator Module
EDV offline
Robot Builder
Robot Builder
Posts: 22
Joined: Tue Sep 28, 2010 8:01 am

Post by EDV » Mon Feb 13, 2012 10:12 am

Post by EDV
Mon Feb 13, 2012 10:12 am

It is a testing of new robot for AVM Navigator project:

Image

Testing of new robot

See this topic for more details:
http://www.roborealm.com/forum/index.ph ... d_id=4329#
It is a testing of new robot for AVM Navigator project:

Image

Testing of new robot

See this topic for more details:
http://www.roborealm.com/forum/index.ph ... d_id=4329#
EDV offline
Robot Builder
Robot Builder
Posts: 22
Joined: Tue Sep 28, 2010 8:01 am

Next
Next
29 postsPage 1 of 21, 2
29 postsPage 1 of 21, 2