Creating a safety distance from an obstacle in occupancyMap

5 次查看(过去 30 天)
Hi, I have a txt file that I read with the help of occupancyMap and it forms the map of my robot's environment.
The map has obstacles that the robot must not encounter while planning its route (using the RRT algorithm)
The routes I get are very, very close to the obstacles on the map, and since my robot is big, it gets stuck on these obstacles.
That's why I want to thicken the obstacles a little. So that the algorithm will think that there is an obstacle at certain points, even though in reality there is not, and thus it will not plan for the route to pass close to the obstacles.
I tried to use inflate(inflatedmap,10^-1), but it really thickens the obstacles and it's not good..
What other way can be done to solve this problem?
Look at the red route.. its too close to the obstacle

回答(1 个)

Image Analyst
Image Analyst 2023-12-14
编辑:Image Analyst 2023-12-14
If you have the Image Processing Toolbox, you can use imdilate - it does what you ask for.
If you don't want blobs to join/connect, then you can use bwmorph with the 'thicken' option.
Also see Steve's multi-part blog on shortest paths:
To find the midline (skeleton) of the white regions, you can use bwskel.
If you don't have the Image Processing Toolbox, you could thicken the white blobs in the original mask by blurring and then thresholding.
windowSize = 15; % Whatever.
kernel = ones(windowSize) / windowSize^2;
blurredImage = conv2(mask, kernel);
% Threshold to creat a new, bigger mask
mask = mask > 0.2; % Adjust value to adjust thickness.

类别

Help CenterFile Exchange 中查找有关 Mapping 的更多信息

产品


版本

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by