# turtlebot3_patrol_client *This file is ai generated. Do not edit this file directly. Instead, edit the node source code and run the generate-node-docs command to update this file.* ## Description An interactive action client node that sends patrol goals to the TurtleBot3 patrol server. Users can specify the patrol pattern (square or triangle), the side length, and the number of iterations through a command-line interface. The client monitors action feedback and displays the patrol progress. ## Actions ### Client - `turtlebot3` ([turtlebot3_msgs/Patrol](https://github.com/ROBOTIS-GIT/turtlebot3_msgs)) - Sends patrol goals to the patrol server - Receives feedback during execution - Receives final result upon completion ## Parameters None - the node uses interactive command-line input for configuration. ## Example Usage Launch the patrol client (requires patrol server to be running): ```bash # Terminal 1: Start the patrol server ros2 run turtlebot3_example turtlebot3_patrol_server # Terminal 2: Start the patrol client ros2 run turtlebot3_example turtlebot3_patrol_client ``` Input example: ``` TurtleBot3 Patrol Client ---------------------------------------------- Input below mode: s: square, t: triangle travel_distance (unit: m) patrol_count ---------------------------------------------- mode(s: square, t: triangle): s travel_distance: 1.0 patrol_count: 2 ``` This will command the robot to perform 2 square patterns with 1.0 meter sides. ## Interactive Input ### Mode Selection - `s` - Square patrol pattern - `t` - Triangle patrol pattern - `x` - Exit the program ### Parameters 1. **travel_distance** (float): - Side length of the geometric pattern in meters - Must be positive - Typical values: 0.5 to 2.0 meters 2. **patrol_count** (int): - Number of complete patterns to execute - Must be positive integer - Typical values: 1 to 5 iterations ## Behavior ### Goal Submission 1. User provides input for mode, distance, and count 2. Client converts mode character to numeric value: - 's' → 1.0 (square) - 't' → 2.0 (triangle) - 'x' → shutdown 3. Client packages parameters into Patrol goal message: - `goal.x` = pattern type - `goal.y` = travel distance - `goal.z` = patrol count 4. Client waits for server availability 5. Client sends goal asynchronously ### Feedback Handling During patrol execution: - Client receives periodic feedback from server - Displays progress messages: "Received feedback: line 1", "line 2", etc. - Feedback indicates which side of the pattern is being traversed ### Result Handling Upon completion: - Client receives final result from server - Displays completion message: "Result: square patrol complete!!" or "Result: triangle patrol complete!!" - Node shuts down automatically ### Error Handling If goal is rejected: - Displays "Goal rejected :(" - Returns without executing patrol If goal is accepted: - Displays "Goal accepted :)" - Continues monitoring feedback and result ## Example Scenarios ### Small Square Test ``` mode: s travel_distance: 0.5 patrol_count: 1 ``` Result: One 0.5m × 0.5m square ### Large Triangle Patrol ``` mode: t travel_distance: 1.5 patrol_count: 3 ``` Result: Three triangles with 1.5m sides ### Multiple Squares ``` mode: s travel_distance: 1.0 patrol_count: 5 ``` Result: Five 1.0m × 1.0m squares ## Notes - Requires `turtlebot3_patrol_server` to be running - Both client and server shut down after completing the patrol - Restart both nodes for subsequent patrol missions - Invalid mode input will cause the node to shut down - The client uses asynchronous action calls with callbacks - Feedback is logged in real-time during execution - Compatible with any action server implementing the Patrol action interface