ExoStack / ROS 2 interfaces

Motion planner

Plays the active profile after each gait event and publishes the actuator set-point.

At every event on gait_event_topic the planner starts its active profile. A profile that arrives while one is playing waits in a buffer and becomes active only between executions, so the assistance never changes mid-stride. At rate it publishes next_point(t) of its plug-in, with t the time since the event (time_based) or the gait phase (gait_phase_based), and default_output outside the profile window or on an emergency stop.

Node name<planner>_planner
Executablemplanner via mplanner_launch.py
Instances×P, one per entry of mplanner.yaml

Subscribed topics

TopicDescriptionMessage type
/<gait_event_topic>starts the profilestd_msgs/Int32gait event layout
/<profile_topic>profile to play, bufferedstd_msgs/Float32MultiArrayprofile layout
/<gait_phase_topic>time argument (gait_phase_based only)std_msgs/Float32estimator input layout
/<planner>/manual_modemanual override on or offstd_msgs/Int32manual override layout
/<planner>/manual_cmdset-point in manual modestd_msgs/Float32manual override layout

Published topics

TopicDescriptionMessage type
/<output_topic>actuator set-point, at ratestd_msgs/Float32set-point layout
/<planner>/profile_statuscandidate and gait-cycle count, at each eventstd_msgs/Float32MultiArrayprofile status layout

Configuration

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

KeyMeaning
planners.<planner>.gait_event_topicevent that starts the profile
planner_algorithmplug-in in planner/
profile_topicprofile input, published by the profile node
profile_typeList or Function
output_topiccommand topic of the actuator
approachtime_based or gait_phase_based
rateset-point rate, Hz
default_outputset-point outside the profile window
gait_phase_topicphase input for gait_phase_based