ros2_client 0.1.0
ros2_client: ^0.1.0 copied to clipboard
A type-safe, streaming ROS 2 client for Dart and Flutter. Topics, services, actions, parameters and introspection over rosbridge.
Changelog #
0.1.0 #
Initial release.
-
Code generator (
dart run ros2_client:generate) for.msg,.srvand.actiondefinitions, with automatic transitive dependency resolution; generated services and actions register typed codecs, socallServiceandsendGoalneed no type strings -
sendGoaltakes an optionaltimeout: a goal sent to an action server that does not exist gets no reply at all, and would otherwise never complete -
CBOR is now the default wire encoding: rosbridge serialises non-finite floats as JSON
null, soinfandnanare indistinguishable over plain JSON -
Connection management with exponential backoff, jitter, and a stability window so a flapping bridge is backed off rather than hammered
-
Typed topic subscribe/advertise via a message codec registry
-
Services, ROS 2 actions (goal/feedback/result/cancel), and parameters
-
Full ROS 2 QoS profiles, including
sensorDataandtransientLocalpresets -
JSON and CBOR wire codecs; CBOR typed arrays decode without a per-element copy. Handles base64
uint8[]and message fragmentation -
Non-finite floats are encoded as
nullon the wire.jsonEncodethrows oninf/nan, so republishing aLaserScanwhose out-of-range beams areinfpreviously crashed -
tf2 transforms:
TfBufferwith tree walking, time interpolation and slerp,TfListenerfeeding it from/tfand/tf_static, and rigid-body maths on thegeometry_msgstypes -
Graph introspection through
rosapi, with timeouts sized for how slow those graph-wide queries actually are -
std_msgs,geometry_msgs,sensor_msgsandnav_msgscore types