Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Warehouse Robotics Simulation (Project 212) #41

robertogl started this conversation in Collaborate
Discussion options

Contribute to the discussion by asking and/or answering questions, commenting, or sharing your ideas for solutions to project 212

You must be logged in to vote

Replies: 10 comments 12 replies

Comment options

Hey, I'm Machio Brian [Kenya], I'll be working on Project 212

You must be logged in to vote
0 replies
Comment options

In Project 212
How can we create different warehouse models?
I was able to create in 2D but I don't how to create a model in gazebo?
Also can I create dynamic obstacle in 2D environment ?
And how to implement dynamic obstacle avoidance in 2D environment

You must be logged in to vote
1 reply
Comment options

robertogl Mar 14, 2022
Maintainer Author

Hi @adityabastapure,

We have several examples with a 3D warehouse-like environment created in Gazebo. This example is one of them and you can find the Gazebo scenario within the Virtual Machine that we ship with the examples. You can start with the 'Gazebo Warehouse Robot with Obstacles' world and modify it as you need.

Regarding obstacle avoidance, we ship an implementation of the Vector Field Histograms (VFH) algorithm as part of the Navigation Toolbox. The name of the function is controllerVFH.

I hope this helps!

Comment options

mobileRobotPRM difference plaannerPRM matlab
please reply as soon as possible

You must be logged in to vote
8 replies
Comment options

load exampleMaps
map = binaryOccupancyMap(simpleMap);

start = [5,5];
goal = [20,20];

planner = plannerAStarGrid(map);
path = plan(planner,start,goal)

subplot(1,2,1)
show(map)
hold on

getting error while plotting this

Comment options

Comment options

ss = stateSpaceSE2;
sv = validatorOccupancyMap(ss);
load exampleMaps
map = occupancyMap(simpleMap);
sv.Map = map;
sv.ValidationDistance = 0.01;

planner = plannerRRT(ss,sv);

planner.MaxConnectionDistance = 2.5;
% planner.BallRadiusConstant = 5;
planner.MaxNumTreeNodes = 100;
start = [5,5,0];
goal = [20,20,0];

[pthObj,solnInfo] = plan(planner,start,goal)

subplot(1,2,1)
show(map)
hold on

plot(solnInfo.TreeData(:,1),solnInfo.TreeData(:,2),'.-'); % tree expansion
plot(pthObj.States(:,1),pthObj.States(:,2),'r-','LineWidth',2) % draw path

path = pthObj.States(:,1:2)

controller = controllerPurePursuit;
controller.Waypoints = path;
controller.DesiredLinearVelocity = 0.6;
controller.MaxAngularVelocity = 2;
controller.LookaheadDistance = 1;
Capture2

Comment options

Capture

I will get back to you on this one soon.

Comment options

load exampleMaps map = binaryOccupancyMap(simpleMap);

start = [5,5]; goal = [20,20];

planner = plannerAStarGrid(map);
path = plan(planner,start,goal)

subplot(1,2,1) show(map) hold on

getting error while plotting this.

Hi @adityabastapure,

plannerAStarGrid works by default for grids, hence start & goal given currently are considered as grid points whose origin is top-left corner. Hence, plot seems wrong.

I understand that you want to search in the world frame of reference with 'X & Y'.
For that you must call plan(planner,start,goal,'world') instead of plan(planner,start,goal) as given below.

load exampleMaps;
map = binaryOccupancyMap(simpleMap);

start = [5,5];
goal = [20,20];

planner = plannerAStarGrid(map);
path = plan(planner,start,goal. 'world')
show(planner);

Comment options

ss = stateSpaceSE2;
sv = validatorOccupancyMap(ss);
load exampleMaps
map = occupancyMap(simpleMap);
sv.Map = map;
sv.ValidationDistance = 0.01;
planner = plannerRRTStar(ss,sv);

% planner.MaxConnectionDistance = 2.5;
planner.BallRadiusConstant = 10; ***************************** This parameter is not showing any effect on output
% planner.MaxNumTreeNodes = 100;

start = [5,5,0];
goal = [20,20,0];

[pthObj,solnInfo] = plan(planner,start,goal)

subplot(1,2,1)
show(map)
hold on

plot(solnInfo.TreeData(:,1),solnInfo.TreeData(:,2),'.-'); % tree expansion
plot(pthObj.States(:,1),pthObj.States(:,2),'r-','LineWidth',2) % draw path

path = pthObj.States(:,1:2)

% Calculates Path Length
j = size(path);
j = j(1)
Path_Length = 0;
i = 1;
while i < j
W1 = path(i,:);
W2 = path(i+1,:);
distance = norm(W1 - W2)
Path_Length = Path_Length + distance;
i = i + 1;
end
Path_Length

RRT* should have more optimal solution than RRT
depending upon planner.BallRadiusConstant = 10; ***************************** This parameter is not showing any effect on output

But its exactly reverse RRT is having optimal solution than RRT*
Please help me out fast

You must be logged in to vote
1 reply
Comment options

Could you clarify on what you expect on RRTStar output compared to RRT. Is it path length you are referring to?
You could try the plannerBenchmark feature to find which planner provide the least path length . Also for computing path length, consider creating navPath object, which can easily calculate path length.

Comment options

for PlannerRRT/PlannerRRTStar
IsPathFound: 0

Is their any threshold radius around goal point to consider sampled node is equivalent to goal point

If algorithm compares sampled node exactly to the goal coordinate the solution will be not found easily

You must be logged in to vote
2 replies
Comment options

I need to run planner until and unless solution is found

Comment options

Hi @adityabastapure,

The default GoalReachedFcn is nav.algs.checkIfGoalIsReached, which has a tolerance of 0.5 meters. That means the planner will be able to find a path even if the goal point is in 0.5m radius. You could easily customize this function by editing the default function and provide the function handle to the GoalReachedFcn property of plannerRRTStar.

Comment options

Hi am ozayo from wits university (South Africa), am interested in robotics and am currently learning BSc in mechanical engineering. I am looking for collaboration in project title: Warehouse Robotics Simulation.

You must be logged in to vote
0 replies
Comment options

hi everyone im Thokozani from wits university (South Africa) and studying towards a (BSc Mechanical engineering). i am currently looking for collaborators in the Warehouse Robotics Simulation project

You must be logged in to vote
0 replies
Comment options

Hii everyone, I am Prajwal Ahire from Walchand College of Engineering ( India ). I aminterested in working and collaborating on this project

You must be logged in to vote
0 replies
Comment options

Hello, I'm Emilia Skye Hills from the University of Cape Town working on this project. I am also wondering if anyone else got stuck waiting to download the VMWare Workstation due to "Account Verification Pending"?

You must be logged in to vote
0 replies
Comment options

Hello everyone,
I see the official MathWorks VM uses Ubuntu 18.04 with ROS Melodic/Dashing and Gazebo 9 for the challenge examples.
Can I use a more recent setup, like Ubuntu 22.04 and ROS 2 Humble, for the Warehouse Robotics Simulation project? I am using MATLAB R2024b which supports ROS 2 Humble.
Will I face any integration issues with Gazebo or the example models, or are there recommended adaptations for running this project on the newer systems?

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

AltStyle によって変換されたページ (->オリジナル) /