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>_plannerExecutable
mplanner via mplanner_launch.pyInstances×P, one per entry of mplanner.yaml
Subscribed topics
| Topic | Description | Message type |
|---|---|---|
/<gait_event_topic> | starts the profile | std_msgs/Int32gait event layout |
/<profile_topic> | profile to play, buffered | std_msgs/Float32MultiArrayprofile layout |
/<gait_phase_topic> | time argument (gait_phase_based only) | std_msgs/Float32estimator input layout |
/<planner>/manual_mode | manual override on or off | std_msgs/Int32manual override layout |
/<planner>/manual_cmd | set-point in manual mode | std_msgs/Float32manual override layout |
Published topics
| Topic | Description | Message type |
|---|---|---|
/<output_topic> | actuator set-point, at rate | std_msgs/Float32set-point layout |
/<planner>/profile_status | candidate and gait-cycle count, at each event | std_msgs/Float32MultiArrayprofile status layout |
Configuration
The keys that name or shape the topics above; every key is explained in Configuration.
| Key | Meaning |
|---|---|
planners.<planner>.gait_event_topic | event that starts the profile |
planner_algorithm | plug-in in planner/ |
profile_topic | profile input, published by the profile node |
profile_type | List or Function |
output_topic | command topic of the actuator |
approach | time_based or gait_phase_based |
rate | set-point rate, Hz |
default_output | set-point outside the profile window |
gait_phase_topic | phase input for gait_phase_based |