ExoStack / ROS 2 interfaces

Cost evaluator

Scores each candidate over the configured gait cycles and returns the mean cost with its k.

The cost evaluator follows the planner's profile_status: for each new k it skips gait_cycles_to_skip cycles while the wearer adapts, evaluates its cost plug-in per cycle on the requested channels, external signals and gait marker, and publishes the mean over gait_cycles_to_consider cycles.

Node name<profile>_cost
Executablecost via cost_launch.py
Instances×C, one per profile with a cost

Subscribed topics

TopicDescriptionMessage type
/<planner>/profile_statuscandidate and cycle countstd_msgs/Float32MultiArrayprofile status layout
/synced_sensorschannels listed in sensorsstd_msgs/Float32MultiArraysynchronized channels layout
/<external_sensors_topic>optional external signalsstd_msgs/Float32MultiArrayexternal sensors layout
/<additional_gait_marker_topic>optional in-cycle markerstd_msgs/Int32gait marker layout

Published topics

TopicDescriptionMessage type
/<cost_topic>mean cost of a candidatestd_msgs/Float32MultiArraycost layout

Configuration

The keys that name or shape the topics above; every key is explained in Configuration.

KeyMeaning
profiles.<p>.cost_algoplug-in in algo/cost/
cost_paramsplug-in parameters
sensors[hub, channel] pairs used
cost_topicoutput; the optimizer's input
external_sensors_topicoptional input
additional_gait_marker_topicoptional input
gait_cycles_to_skipcycles discarded per candidate
gait_cycles_to_considercycles averaged