Add ros2_medkit packages - #262
Conversation
Summary of platform statusAfter testing ros2_medkit on all platforms, there are a few upstream portability issues worth flagging before this is ready for review. tl;dr: everything builds on linux-64; the gateway stack is blocked on the other platforms for different reasons, each described below. Version (0.6.0 via additional_recipes)The jazzy snapshot pins ros2_medkit 0.4.0, which doesn't build against conda-forge's current cpp-httplib 0.51: the gateway used linux-aarch64 — only blocked by cpp-httplibThe only blocker on linux-aarch64 is that conda-forge doesn't ship macOS (osx-64 / osx-arm64) —
|
|
I can take care of cpp-httplib! |
Goal
Add the
ros2_medkitdiagnostic stack to the robostack-jazzy distribution.Description
ros2_medkit(https://index.ros.org/r/ros2_medkit/) is a structured diagnostic model for ROS 2 robots that exposes faults over a REST/SOVD API. This PR adds the released 0.4.0 packages: the message/service interfaces, the fault manager and detection, the diagnostic/log/action bridges, the REST gateway SOVD plugins.The dependency
libcpp-httplib-devis mapped to the conda-forgecpp-httplibpackage (used by the gateway's REST server).Changes
vinca.yaml.libcpp-httplib-dev -> cpp-httplibinrobostack.yaml.std::vector<bool>build error inros2_medkit_serializationon macOS (see Notes).License
ros2_medkitis licensed under Apache-2.0 (per the upstream packages).Notes
Build tested locally on osx-arm64.
macOS (serialization):
ros2_medkit_serializationfailed to compile on clang/libc++ with:error: implicit instantiation of undefined template 'YAML::convert<std::__bit_const_reference<std::vector<bool>>>'. The vendoreddynmsgcode pushes astd::vector<bool>::operator[]proxy directly into a yaml-cpp node; clang has no conversion for that proxy type. Fixed with a one-line patch casting the proxy toboolbeforepush_back(patch/ros-jazzy-ros2-medkit-serialization.patch). This is a genuine upstream bug (present in 0.4.0 through main).