Code covered by the BSD License  

Highlights from
Optical flow based robot obstacle avoidance with Matlab


4.0 | 1 rating Rate this file 38 Downloads (last 30 days) File Size: 215 KB File ID: #22713
image thumbnail

Optical flow based robot obstacle avoidance with Matlab



18 Jan 2009 (Updated )

Navigate a virtual robot in a virtual environment to avoid obstacles by using optical flow field.

| Watch this File

File Information

Matlab’s Virtual Reality toolbox makes it possible to not only visualize a virtual world, but also capture it into an image from a specified position, orientation and rotation. The virtual world was created in VRML with a plain text editor and it can be viewed in your internet browser if you have installed a VRML viewer.

For calculating the optical view field of two successive camera images, I used a C optimized version of Horn and Schunk’s optical flow algorithm.

Based on this optical flow field, the flow magnitudes of right and left half of each image is calculated. If the sum of the flow magnitudes of the view reaches a certain threshold, it is assumed there is an obstacle in front of the robot. Then the computed flow magnitude of right and left half image is used to formulate a balance strategy: if the right flow is larger than the left flow, the robot turns left - otherwise it turns right.

Requires Matlab (Windows, Mac or Linux).

Note: On Mac or Linux, first the Matlab wrapper needs to be compiled into a mex file using Matlab by going to the directory containing the library and running the following command within Matlab:

mex OpticalFlowMatlab.cpp

Start the robot simulation by typing in Matlab:


Required Products Simulink 3D Animation
Image Processing Toolbox
MATLAB release MATLAB 7.6 (R2008a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (2)
28 Jun 2013 Mihai Chirca

??? Error using ==> vrsfunc
This operation is not permitted in the demonstration version of Simulink 3D

Error in ==> vrworld.vrworld at 86 = vrsfunc('VRT3LoadScene', foundname, strcmp(createmode,

Error in ==> ofnav at 30 = vrworld('obstacles.wrl');

any idea why i have this message?

05 Mar 2009 Syed Noman Hussain  
20 Jan 2009

Deleted Mex file

24 Jan 2009

Added additional Product Requirement "Image Processing Toolbox" , it was missing in the initial submit.

Contact us