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>_costExecutable
cost via cost_launch.pyInstances×C, one per profile with a cost
Subscribed topics
| Topic | Description | Message type |
|---|---|---|
/<planner>/profile_status | candidate and cycle count | std_msgs/Float32MultiArrayprofile status layout |
/synced_sensors | channels listed in sensors | std_msgs/Float32MultiArraysynchronized channels layout |
/<external_sensors_topic> | optional external signals | std_msgs/Float32MultiArrayexternal sensors layout |
/<additional_gait_marker_topic> | optional in-cycle marker | std_msgs/Int32gait marker layout |
Published topics
| Topic | Description | Message type |
|---|---|---|
/<cost_topic> | mean cost of a candidate | std_msgs/Float32MultiArraycost layout |
Configuration
The keys that name or shape the topics above; every key is explained in Configuration.
| Key | Meaning |
|---|---|
profiles.<p>.cost_algo | plug-in in algo/cost/ |
cost_params | plug-in parameters |
sensors | [hub, channel] pairs used |
cost_topic | output; the optimizer's input |
external_sensors_topic | optional input |
additional_gait_marker_topic | optional input |
gait_cycles_to_skip | cycles discarded per candidate |
gait_cycles_to_consider | cycles averaged |