Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

global_planner: enable default_tolerance with potential field, fix #262 #703

Conversation

nlimpert
Copy link
Contributor

@nlimpert nlimpert commented Mar 29, 2018

Previously the default_tolerance parameter was not used leading to
failure when the desired goal was inside an obstacle.
In case the goal is inside an obstacle the global_planner now tries to
find a cell with pot_field_max_cost as its maximum value as close as
possible around the desired goal pose. This is achieved by calculating a
potential field in the area of the desired goal pose.
This area is defined by the default_tolerance parameter.

@mikeferguson this should fix #262.
See a demonstration video at https://fh-aachen.sciebo.de/s/SReCNmR5Larlxt4

mikaelarguedas and others added 30 commits July 13, 2017 18:15
When building amcl with recent enough gcc v7 compilation fails with
the error

src/amcl/map/map_cspace.cpp: In function 'void enqueue(map_t*, unsigned int, unsigned int, unsigned int, unsigned int, std::priority_queue<CellData>&, CachedDistanceMap*, unsigned char*)':
src/amcl/map/map_cspace.cpp:98:34: error: call of overloaded 'abs(unsigned int)' is ambiguous
   unsigned int di = abs(i - src_i);

Use `int abs(int)` flavour of the abs() function.
…pendency

Cleanup PCL imports: fixes compilation on zesty and stretch
* Fix CMakeLists + package.xmls

This fixes compilation errors when rosjava is installed on the system.
It also removes a lot of errors reported by catkin_lint.

Fixes ros-planning#537 .

* Fix more CMakeLists.txt + package.xmls

* amcl: disambiguate include path

This fixes the following catkin_lint warning:

    amcl: warning: include paths 'include/amcl/map' and 'include' are ambiguous
         * You have used two include paths where one is a parent of the
         * other. Thus the same headers can be included with two different
         * include paths which may confuse users. It is recommended that
         * you keep your include paths consistent.
Adds a cost function and configuration parameter to penalize changes
in robot heading. This isn't relevant for diff-drive robots, where
heading changes are typically necessary to move towards goals.
However, this is useful for having control of the 'twirling' behavior
of holonomic robots. Setting the twirling_scale parameter to a high
value, say 50, causes the dwa planner to prefer to 'strafe' towards
goals rather than (eventually) aiming the robot at the goal while
driving. For some applications this is much preferred. This parameter
defaults to zero, which maintains the existing behavior unless it is
explicitly set to a non-zero value.
* Replace the priority_queue used on inflation layer by a map containing cells to inflate split by distance from the closest obstacle

* Update inflation test to match previous change
When force_publication is True, and no resample has been done the statistic
about the current clusters of particles are not recomputed. So amcl published
an outdated information.

This commit introduces a call to `pf_cluster_stats` when required (i.e no
resample but force_publication).
recompute cluster stat when force_publication
Inflation Layer protected members and virtual computeCost [ABI BREAKING]
corot and others added 5 commits June 18, 2019 20:09
…anning#738)

* Comment and description clarification

* Renamed resetOldParameters to loadOldParameters

* Upscaled pre-hydro parameter info message to warning and added costmap-name

* Warn user when static_map or map_type is set but not used while plugins are used

* Added function that copies parent parameters inside each layer (makes it possible to set a global inflation_radius)

* use parameter magic
@nlimpert nlimpert force-pushed the nlimpert/global_planner_default_tolerance branch from 2825e4f to e07ec77 Compare July 5, 2019 07:48
hadiTab and others added 20 commits August 29, 2019 09:40
…ea-melodic

[melodic] moving clearing area method to costmap_layer so other applications can clear other types.
* Don't publish empty paths

RViz will complain about not being able to transform the path if it doesn't have a frame ID, so we'll just drop these

Closes ros-planning#963

* Publish empty paths with a valid frame

* Fix indexing into empty plan for timestamp
Starting with CMake 3.15 an explicit include(CheckSymbolExists)
is required to use the check_symbol_exists macro.
…g_cmake_include

Add missing CMake include(CheckSymbolExists) for CMake >= 3.15
Fix move_slow_and_clear sending obsolete params to dwa_local_planner
Boost > 1.7 has signals by default
@nlimpert nlimpert force-pushed the nlimpert/global_planner_default_tolerance branch from e07ec77 to 8b29727 Compare March 13, 2020 14:19
@nlimpert
Copy link
Contributor Author

Closing this as it will be targeting melodic and it needs a proper rework of the proposed feature.

I'll open a new PR once I'm ready.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kinetic PRs for kinetic-devel planners
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet