-
Notifications
You must be signed in to change notification settings - Fork 657
Towards MRPT 3.0.0 #1330
Open
Description
Motivation for the redesign
At present, installing most mrpt packages on any minimal docker image or headless PC would lead to installation of hundreds of dependencies, mostly required by GUI & OpenGL parts, even if not needed in those systems. Also, OpenCV imgproc module introduces tens of dependencies that will be avoided in MRPT 3.0.0 by not using opencv anymore.
Working branch
https://github.com/MRPT/mrpt/tree/3.0
The plan
Release to-do list here upstream:
- Refactor mrpt-opengl in two modules: one with the abstract representation of graphics, and one with their actual implementation using OpenGL.
- Split applications in cli & gui apps. The same for libmrpt-apps itself.
- Investigate surge of deps in mrpt-imgs (opencv?)
- Take ROS 1 & ROS 2 stuff out of this main repo to their own ones.
- mrpt-ros{1,2}bridge repo => https://github.com/MRPT/mrpt_ros_bridge
- rosbag2rawlog repo: unify ROS1 & ROS2 in one repo with two branches. https://github.com/MRPT/mrpt_ros_bridge
- Refactor rosbag2rawlog bag-reading part into ros-bridges?
- Create separate config.h files for each module:
- core
- opengl successors
- hwdrivers
- math?
- Limit dependencies even at the cost of usability: hwdrivers shouldn't depend on gui
- getAsSimplePointsMap() in maps: change signature to return shared_ptr.
Plus new features:
- zstd is a must: Consider adding zstd as default compression method #1306
- mrpt-math: New TOrientedBoundingBox, complementary with the axis-aligned TBoundingBox
- unembed exprtk: Bug#1094437: mrpt: please consider unembedding exprtk.hpp
- mrpt::serialization::CArchive& operator>>: Make them taking const ref to archive.
- Replace (and unvendor) TCLAP in favor of https://github.com/p-ranav/argparse (available as debian package since Ubuntu 24.04)
- "Backport" patches from MRPT 2.14.12...2.15.0
- Mark as deprecated all point cloud classes except the new
mrpt::maps::CGenericPointsMap==> Already done in 2.15.x. Remove them for 3.0.0. - CSensoryFrame: Make getters so const => ConstPtr.
- Pointcloud serialization: use Cloudini encoder
Post-release list for Debian:
- Reorganize d/control for dependencies and new packages
- Split apps into cli & gui.
- Submit ITP for new ROS1 lib & app package.
Post-release for ROS:
- Submit for index:
- mrpt-ros1bridge repo
- mrpt-ros2bridge repo
- rosbag2rawlog repo: unify ROS1 & ROS2 in one repo with two branches?
- Remove rosbag2rawlog from mrpt_navigation.
- Update all dependent pkgs (!)
Metadata
Metadata
Assignees
Labels
No labels
Type
Fields
Give feedbackNo fields configured for issues without a type.