lift_node.md - dingdongdengdong/astra_ws GitHub Wiki
graph TD
A[Start] --> B{Initialize ROS 2};
B --> C[Create lift_node];
C --> D[Get Logger];
D --> E[Declare Parameter device];
E --> F[Declare Parameter joint_names];
F --> G[Get Parameter Values];
G --> H{Assert 1 Joint Name};
H --> I[Instantiate LiftController];
I --> J[Create JointState Publisher];
I --> K[Create Error Publisher];
K --> L[Assign State Callback to LiftController];
L --> M[Assign Error Callback to LiftController];
M --> N[Create Joint Command Subscriber];
N --> O[rclpy.spin node];
O --> P[State Callback Triggered by LiftController];
P --> Q[Construct JointState Msg];
Q --> R[Publish JointState Msg];
R --> O;
O --> S[Error Callback Triggered by LiftController];
S --> T[Construct String Msg with Error Data];
T --> U[Publish Error Msg];
U --> O;
O --> V[Joint Command Callback Triggered by Subscription];
V --> W{Msg Joint Name Valid?};
W -- Yes --> X[Extract Position Command];
X --> Y[Call lift_controller.set_pos];
Y --> O;
W -- No --> O;
O --> Z[Node Shutdown];
Z --> AA[ROS 2 Shutdown];
AA --> AB[End];