ExoStack / ROS 2 interfaces

Profile node

Turns a lookup-table row (Deployment) or an optimizer candidate (HIL) into the profile a planner plays.

In Deployment, a timer at rate reads the speed (and intent), looks up a table row and publishes the built profile with k = 0. In HIL, the node builds and publishes each candidate once, keeping its k. The profile is sent on the profile_topic of the planner it serves.

Node name<profile>_profile
Executableactuation_profile via profile_launch.py
Instances×P, one per entry of profile.yaml

Subscribed topics

TopicDescriptionMessage type
/<speed_topic>walking speed (Deployment, if speed_required)std_msgs/Float32estimator input layout
/<intent_topic>locomotion intent (Deployment, if intent_required)std_msgs/Float32estimator input layout
/<hil_output_topic>next candidate (HIL)std_msgs/Float32MultiArrayHIL candidate layout

Published topics

TopicDescriptionMessage type
/<profile_topic>the profile for the planner, every 1/rate (Deployment) or per candidate (HIL)std_msgs/Float32MultiArrayprofile layout

Configuration

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

KeyMeaning
profiles.<p>.planner_nameplanner served; its profile_topic is used
modeDeployment or HIL
profile_builder_algobuilder in algo/builder/
lookup_algolookup plug-in (Deployment)
lookup_tableJSON table (Deployment)
speed_requiredsubscribe to speed_topic
speed_topicspeed input
intent_requiredsubscribe to intent_topic
intent_topicintent input
ratepublication rate in Deployment, Hz
hil_output_topiccandidate input (HIL)