Task 9: tines-ros2 — pure topic_name escaping (default, tested) + optional rclrs TinesNode (feature ros2)
Adds the ninth fleet-deployment crate. Default build is ROS2-free: topic_name hex-escapes arbitrary tines topics into valid ROS2 names under /tines/ (deterministic, injective) and wires Node<LogStore, BtTransport>. The rclrs-backed self-contained TinesNode lives under #[cfg(feature="ros2")] with an off-by-default ros2 feature, so the crate builds/tests without a ROS2 toolchain. Adds scripts/check-ros2.sh (needs a ROS2 toolchain; not run in CI), registers the crate in workspace members, and passes sh scripts/ci.sh.
This commit is contained in:
Executable
+23
@@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Build the rclrs-backed ROS2 node for the `tines-ros2` crate.
|
||||
#
|
||||
# This compiles the `ros2` feature, which pulls in `rclrs` and its dependency
|
||||
# on the ROS2 C libraries. It therefore REQUIRES a ROS2 toolchain installed
|
||||
# (a sourced `colcon`/`/opt/ros/<distro>/setup.bash` and `rclrs` on the
|
||||
# registry); it is NOT run in CI.
|
||||
#
|
||||
# The default (ROS2-free) build and tests — including `topic_name` escaping —
|
||||
# are exercised in CI via `cargo test --workspace` and need no ROS2 toolchain.
|
||||
#
|
||||
# Usage:
|
||||
# source /opt/ros/<distro>/setup.bash # any ROS2 distro rclrs supports
|
||||
# ./scripts/check-ros2.sh
|
||||
set -euo pipefail
|
||||
|
||||
cd "$(dirname "$0")/.."
|
||||
|
||||
echo "Building tines-ros2 with the ros2 feature (requires a ROS2 toolchain)..."
|
||||
cargo build -p tines-ros2 --features ros2
|
||||
|
||||
echo "OK: tines-ros2 (ros2 feature) built against ROS2."
|
||||
Reference in New Issue
Block a user