-
Notifications
You must be signed in to change notification settings - Fork 71
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #46 from naturerobots/41-port-cvp_mesh_planner-pkg…
…-to-ros2 41 port cvp mesh planner pkg to ros2
- Loading branch information
Showing
9 changed files
with
284 additions
and
292 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,16 @@ | ||
# Mesh Navigation | ||
|
||
The *Mesh Navigation* bundle provides software to perform efficient robot navigation on 2D-manifolds in 3D represented | ||
as triangular meshes. It allows to safely navigate in various complex outdoor environments by using a modular extendable | ||
layerd mesh map. Layers can be loaded as plugins and represent certain geometric or semantic metrics of the terrain. | ||
The layered mesh map is integrated with Move Base Flex (MBF) which provides a universal ROS action interface for path | ||
planning and motion control, as well as for recovery behaviours. Thus, additional planner and controller plugins running | ||
on the layered mesh map are provided. | ||
The *Mesh Navigation* bundle provides software for efficient robot navigation on 2D manifolds, which are represented in 3D as triangle meshes. It enables safe navigation in various complex outdoor environments by using a modularly extensible | ||
layered mesh map. Layers can be loaded as plugins representing specific geometric or semantic metrics of the terrain. This allows the incorporation of obstacles in these complex outdoor environments into path and motion motion planning. | ||
The layered *Mesh Map* is integrated with *Move Base Flex (MBF)*, which provides a universal ROS action interface for path planning, motion control, and for recovery behaviors. We also provide additional planner and controller plugins that run on the layered mesh map. | ||
|
||
Maintainer: [Sebastian Pütz](mailto:[email protected]) | ||
Author: [Sebastian Pütz](mailto:[email protected]) | ||
|
||
* [Publications](#publications) | ||
* [Installation](#installation) | ||
* [Software Stack](#software-stack) | ||
* [Usage](#usage) | ||
* [Mesh Map](#mesh-map) | ||
* [Planners](#planners) | ||
* [Controllers](#controllers) | ||
|
@@ -115,9 +113,21 @@ The package structure is as follows: | |
|
||
- `mesh_client` Is an experimental package to additionally load navigation meshes from a server. | ||
|
||
## Usage | ||
|
||
See the **[pluto_robot](https://github.com/uos/pluto_robot)** bundle for example configurations of the mesh navigatoin stack and usage. | ||
|
||
### Mesh map configuratoin | ||
|
||
TODO | ||
|
||
### Planner and Controller configurations | ||
|
||
TODO | ||
|
||
### Path Planning and Motion Control | ||
|
||
Use the `MeshGoal` tool to select a goal pose on the shown mesh in RViz. | ||
Use the *MeshGoal* tool from the MeshTools bundle to select a goal pose on the shown mesh in *RViz*. This can be added to the top panel *RViz*. | ||
|
||
## Mesh Map | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,58 +1,32 @@ | ||
cmake_minimum_required(VERSION 2.8.3) | ||
cmake_minimum_required(VERSION 3.8) | ||
project(cvp_mesh_planner) | ||
|
||
set(CMAKE_CXX_STANDARD 14) | ||
set(CMAKE_CXX_STANDARD_REQUIRED ON) | ||
set(CMAKE_CXX_EXTENSIONS OFF) | ||
find_package(ament_cmake_ros REQUIRED) | ||
find_package(mbf_mesh_core REQUIRED) | ||
find_package(mbf_msgs REQUIRED) | ||
find_package(mbf_utility REQUIRED) | ||
find_package(mesh_map REQUIRED) | ||
find_package(rclcpp REQUIRED) | ||
|
||
find_package(catkin REQUIRED COMPONENTS | ||
roscpp | ||
mbf_mesh_core | ||
mbf_utility | ||
mbf_msgs | ||
mesh_map | ||
dynamic_reconfigure | ||
) | ||
|
||
find_package(PkgConfig REQUIRED) | ||
pkg_check_modules(JSONCPP jsoncpp) | ||
|
||
generate_dynamic_reconfigure_options( | ||
cfg/CVPMeshPlanner.cfg | ||
) | ||
pluginlib_export_plugin_description_file(mbf_mesh_core cvp_mesh_planner.xml) | ||
|
||
catkin_package( | ||
LIBRARIES cvp_mesh_planner | ||
CATKIN_DEPENDS roscpp mbf_mesh_core mbf_utility mbf_msgs mesh_map dynamic_reconfigure | ||
) | ||
|
||
include_directories( | ||
include | ||
${catkin_INCLUDE_DIRS} | ||
) | ||
|
||
add_library(${PROJECT_NAME} | ||
src/cvp_mesh_planner.cpp | ||
) | ||
|
||
add_dependencies(${PROJECT_NAME} | ||
${${PROJECT_NAME}_EXPORTED_TARGETS} | ||
${catkin_EXPORTED_TARGETS} | ||
${PROJECT_NAME}_gencfg | ||
) | ||
|
||
target_link_libraries(${PROJECT_NAME} | ||
${catkin_LIBRARIES} | ||
${JSONCPP_LIBRARIES} | ||
) | ||
add_library(${PROJECT_NAME} src/cvp_mesh_planner.cpp) | ||
target_include_directories(${PROJECT_NAME} PUBLIC | ||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> | ||
$<INSTALL_INTERFACE:include>) | ||
target_compile_definitions(${PROJECT_NAME} PRIVATE "CVP_MESH_PLANNER_BUILDING_LIBRARY") | ||
ament_target_dependencies(${PROJECT_NAME} mbf_mesh_core mbf_msgs mbf_utility mesh_map rclcpp) | ||
|
||
install(DIRECTORY include DESTINATION include) | ||
install(TARGETS ${PROJECT_NAME} | ||
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} | ||
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} | ||
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} | ||
) | ||
|
||
install(FILES cvp_mesh_planner.xml | ||
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} | ||
EXPORT export_${PROJECT_NAME} | ||
ARCHIVE DESTINATION lib | ||
LIBRARY DESTINATION lib | ||
RUNTIME DESTINATION bin | ||
) | ||
|
||
ament_export_include_directories(include) | ||
ament_export_libraries(${PROJECT_NAME}) | ||
ament_export_targets(export_${PROJECT_NAME}) | ||
ament_export_dependencies(mbf_mesh_core mbf_msgs mbf_utility mesh_map rclcpp) | ||
ament_package() |
Empty file.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,19 @@ | ||
<?xml version="1.0"?> | ||
<package format="2"> | ||
<package format="3"> | ||
<name>cvp_mesh_planner</name> | ||
<version>1.0.1</version> | ||
<description>The Continuous Vector Field Planner (CVP) mesh planner package</description> | ||
<maintainer email="[email protected]">Sebastian Pütz</maintainer> | ||
<license>BSD 3-Clause</license> | ||
<author email="[email protected]">Sebastian Pütz</author> | ||
|
||
<buildtool_depend>catkin</buildtool_depend> | ||
|
||
<depend>roscpp</depend> | ||
<depend>rclcpp</depend> | ||
<depend>mbf_mesh_core</depend> | ||
<depend>mbf_utility</depend> | ||
<depend>mbf_msgs</depend> | ||
<depend>mesh_map</depend> | ||
<depend>dynamic_reconfigure</depend> | ||
|
||
<export> | ||
<mbf_mesh_core plugin="${prefix}/cvp_mesh_planner.xml"/> | ||
<build_type>ament_cmake</build_type> | ||
</export> | ||
</package> |
Oops, something went wrong.