Suggestions on using GMapping or AMCL SLAM for Robot in Industrail Use - Case [closed]

Hi Everyone,

I am developing some software packages for a robot which will be used for Shop-floor material handling. The use case is simple as follows:

I will have web based GUI interface to call a robot to particular place on a map, The robot will have a preplanned path to follow to reach that place.

Now since we don't want to modify existing infrastructure I want to use natural navigation/SLAM techniques to achieve this. ROS Navigation stack has GMapping and Hector SLAM packages. I have used GMapping to create map of the environment. I am using AMCL to localize the robot and I am giving a initial pose from rviz, then using Move base to send goal positions to make robot move in pre-planned path,

But to achieve a accuracy of 20mm near to position of goal what changes should I do in the package. How to disable robot recovery behavior when it sense a obstacle i.e if it finds a obstacle in its path I want it to stop. I want to restrict the possible areas the robot can move in a map. How to do it ?

Any suggestions, links to resources will be helpful. As I post this questions just looking for ideas and resources please be considerate. Thank you

edit retag reopen merge delete

Closed for the following reason too subjective or argumentative by BV_Pradeep close date 2019-09-16 02:27:20.727736

Sort by » oldest newest most voted

Note that you are actually asking for a solution to a full application. This will not be doable without some good state machine or other coordination system on top. And you'll probably not be sufficiently satisfied with the out-of-the-box tools.

But to achieve a accuracy of 20mm near to position of goal what changes should I do in the package.

This will be hard to achieve out of the box. You should probably try an approach with a separate node that starts at the goal positions that does e.g. a scan matching at the goal positions. With this, given you have enough stable features, you can get the required accuracy.

How to disable robot recovery behavior

Those are the recovery behaviors of move_base and are intended to clear the local costmap. You can set the recovery_behavior_enabled parameter of move_base to false to disable that.

i.e if it finds a obstacle in its path I want it to stop.

This is however hinting at that you don't want the recovery_behaviors to behave differently, but rather the local planners. Again, there is nothing known to me with the standard planners (i.e. TrajectoryPlannerROS from the base_local_planner package and DWAPlannerROS from dwa_local_planner package) that allow for this out of the box. Especially since you probably want to resume automatically after the path is cleared. If you don't ever want the robot to drive around obstacles, you are probably best off with writing your own Local Planner Plugin that does exactly what you want.

I want to restrict the possible areas the robot can move in a map.

Here I see two ways: one is to write another costmap layer that you can configure to add lethal obstacles in the area you don't want to drive. The other is to directly patch this somehow in the global planner plugin. With the second approach, you need to be a little bit careful though, that this plays nicely with your local planner plugin.

more

@mgruhler, thank you for the helpful suggestions. I was reading about Custom costmap layer from this paper It seems this will be most useful approach for the movement restriction in the planner. But to achieve the accuracy need I want write a node that will break a goal point into intermediate goal points on straight line. will this approach we useful in your view

( 2019-09-11 01:51:31 -0500 )edit

I want write a node that will break a goal point into intermediate goal points on straight line. will this approach we useful in your view

Depending on your kinematics, this could help with reaching the goal with higher accuracy. However, I think your problem will most likely be that you won't reach the 20mm localization accuracy using gmapping/AMCL. The approach I'd take is described in this paper

( 2019-09-11 02:39:15 -0500 )edit

@mgruhler, thank you for the resource. I will read the paper

( 2019-09-11 03:54:55 -0500 )edit

As a bit of a followup, it doesn't seem like the navigation stack is what you want if you don't want online planning, recoveries, or deviation from a path.

( 2019-09-11 08:08:31 -0500 )edit

@stevemacenski you are right there. This would actually be down-stripping the navigation stack pretty much. Thus, it might make sense to develop from scratch or try something like move_base_flex or robot_navigation that are more flexible.

( 2019-09-12 01:48:51 -0500 )edit

@stevemacenski and @mgruhler , thank you for the suggestions.

( 2019-09-12 23:59:23 -0500 )edit

Stats

Asked: 2019-09-10 23:46:27 -0500

Seen: 58 times

Last updated: Sep 11 '19