Skip to content

Commit

Permalink
add ros package
Browse files Browse the repository at this point in the history
  • Loading branch information
jlblancoc committed Jul 27, 2024
1 parent 746fcc3 commit f749805
Show file tree
Hide file tree
Showing 5 changed files with 154 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.vscode
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "upstream"]
path = upstream
url = https://github.com/MRPT/mrpt.git
68 changes: 68 additions & 0 deletions python_mrpt/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# ROS wrapper CMake project for these MRPT libraries:
# mrpt-nav, mrpt-kinematics

cmake_minimum_required(VERSION 3.5)
project(python_mrpt)

include(ExternalProject)

ExternalProject_Add(
mrpt
PREFIX ${CMAKE_BINARY_DIR}/mrpt-build
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../upstream/
CMAKE_ARGS
# Main settings:
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
# Disabled stuff:
-DDISABLE_JSONCPP=ON
-DMRPT_INSTALL_EXAMPLES=OFF
-DMRPT_INSTALL_SHARE_DIRS=OFF
-DMRPT_BUILD_MANPAGES=OFF
-DMRPT_INSTALL_CONFIG_HEADERS=OFF
# Granular builds for each ROS package:
-DMRPT_BUILD_APPLICATIONS=OFF
-DMRPT_DISABLE_PYTHON_BINDINGS=OFF # Build pymrpt!
-DMRPT_WITH_ROBOPEAK_LIDAR=OFF
-DMRPT_BUILD_wxThings=OFF
-DMRPT_BUILD_rplidar_sdk=OFF
-DMRPT_BUILD_xsens=OFF
-DMRPT_BUILD_nanogui=OFF
# Libs:
-DBUILD_mrpt-apps=OFF
-DBUILD_mrpt-bayes=OFF
-DBUILD_mrpt-comms=OFF
-DBUILD_mrpt-config=OFF
-DBUILD_mrpt-containers=OFF
-DBUILD_mrpt-core=OFF
-DBUILD_mrpt-expr=OFF
-DBUILD_mrpt-graphs=OFF
-DBUILD_mrpt-graphslam=OFF
-DBUILD_mrpt-gui=OFF
-DBUILD_mrpt-hwdrivers=OFF
-DBUILD_mrpt-img=OFF
-DBUILD_mrpt-io=OFF
-DBUILD_mrpt-kinematics=OFF
-DBUILD_mrpt-maps=OFF
-DBUILD_mrpt-math=OFF
-DBUILD_mrpt-nav=OFF
-DBUILD_mrpt-obs=OFF
-DBUILD_mrpt-opengl=OFF
-DBUILD_mrpt-poses=OFF
-DBUILD_mrpt-random=OFF
-DBUILD_mrpt-ros2bridge=OFF
-DBUILD_mrpt-rtti=OFF
-DBUILD_mrpt-serialization=OFF
-DBUILD_mrpt-slam=OFF
-DBUILD_mrpt-system=OFF
-DBUILD_mrpt-tclap=OFF
-DBUILD_mrpt-tfest=OFF
-DBUILD_mrpt-topography=OFF
-DBUILD_mrpt-typemeta=OFF
-DBUILD_mrpt-vision=OFF
# no install during build
INSTALL_COMMAND ""
)

# Actual "install":
install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR}/mrpt-build/src/mrpt-build --target install)")
81 changes: 81 additions & 0 deletions python_mrpt/package.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>python_mrpt</name>
<!-- Before updating version number, read [MRPT_ROOT]/version_prefix.txt first -->
<version>2.13.5</version>
<description>Python wrapper for Mobile Robot Programming Toolkit (MRPT) libraries</description>

<maintainer email="[email protected]">Jose-Luis Blanco-Claraco</maintainer>
<license>BSD</license>

<url type="website">https://www.mrpt.org/</url>
<url type="bugtracker">https://github.com/MRPT/mrpt/issues</url>

<author email="[email protected]">Jose-Luis Blanco-Claraco</author>

<!-- Deps required by user code (they are in public headers or built as ROS (vs system) packages -->
<depend>mrpt_libapps</depend>
<depend>mrpt_slam</depend>
<depend>mrpt_gui</depend>
<depend>mrpt_nav</depend>

<!-- COMMON DEPS: This ensures we have ROS_DISTRO, etc. env vars -->
<build_depend>ros_environment</build_depend>

<!-- Deps required by building only -->
<!-- <build_depend condition="$ROS_VERSION == 2">libfyaml-dev</build_depend> --> <!-- Removed since not packaged for non-Debian platforms -->
<build_depend>pkg-config</build_depend>
<build_depend>zlib</build_depend>

<!-- More build deps that are not actually required by this ROS package, but we need them for the mrpt/config.h to reflect we have such feature -->
<build_depend>libjpeg</build_depend> <!-- To ensure no built-in version is used -->
<build_depend>glut</build_depend>
<build_depend>libglfw3-dev</build_depend>
<build_depend>libxrandr</build_depend>
<build_depend>libxxf86vm</build_depend>
<build_depend>opengl</build_depend>
<build_depend>assimp-dev</build_depend>
<build_depend>ffmpeg</build_depend>
<build_depend>libfreenect-dev</build_depend>
<build_depend>libopenni2-dev</build_depend>
<build_depend>libpcap</build_depend>
<build_depend>libudev-dev</build_depend>
<build_depend>libusb-1.0-dev</build_depend>
<build_depend>pybind11-dev</build_depend>
<build_depend>python3-pip</build_depend>
<build_depend>tinyxml2</build_depend>
<build_depend>wx-common</build_depend>
<build_depend>wxwidgets</build_depend>

<!-- <build_depend>libqt5-opengl-dev</build_depend> -->
<!-- <build_depend>qtbase5-dev</build_depend> -->

<!-- Required for cmake scripts to find ament_cmake and then realize we are in ROS 2, not ROS 1 -->
<build_depend condition="$ROS_VERSION == 2">ament_cmake</build_depend>

<!-- Deps for ros1bridge/ros2bridge -->
<build_depend>cv_bridge</build_depend>
<build_depend>libopencv-dev</build_depend>
<build_depend>liboctomap-dev</build_depend>
<!--<depend>pcl_conversions</depend> WAS: To run unit tests only -->

<build_depend condition="$ROS_VERSION == 1">rosbag_storage</build_depend>
<build_depend condition="$ROS_VERSION == 2">rosbag2_storage</build_depend>
<build_depend condition="$ROS_VERSION == 1">roscpp</build_depend>
<build_depend condition="$ROS_VERSION == 2">rclcpp</build_depend>

<!-- for rosbag2rawlog (ROS 1 only, ROS 2 version lives in the mrpt_navigation repository) -->
<build_depend condition="$ROS_VERSION == 1">tf2_geometry_msgs</build_depend>

<doc_depend>doxygen</doc_depend>

<!-- Minimum entries to release non-catkin pkgs: -->
<buildtool_depend>cmake</buildtool_depend>
<export>
<build_type>cmake</build_type>
<rosdoc config="doc/rosdoc.yaml" />
</export>
<!-- End -->

</package>
1 change: 1 addition & 0 deletions upstream
Submodule upstream added at cf173a

0 comments on commit f749805

Please sign in to comment.