# grbl_node *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.* ## Node Description A ROS2 node representing a single GRBL device. This node's main function is to publish the real-time pose of the GRBL device as a ROS2 transform (tf). Additionally, it enables the ROS2 user to send GCODE commands and files to the GRBL device and monitor its status. ## Publishers | Topic | Message Type | Description | |-------|--------------|-------------| | `{machine_id}/machine_position` | `geometry_msgs/msg/Pose` | Publishes the machine position of the GRBL device | | `{machine_id}/work_position` | `geometry_msgs/msg/Pose` | Publishes the work position of the GRBL device | | `{machine_id}/state` | `grbl_msgs/msg/State` | Publishes the current state of the GRBL device | | `/tf` | `tf2_msgs/msg/TFMessage` | Publishes transforms via TransformBroadcaster | ## Services | Service | Service Type | Description | |---------|--------------|-------------| | `{machine_id}/stop` | `grbl_msgs/srv/Stop` | Stops the GRBL device (disables or fires steppers) | ## Actions | Action | Action Type | Description | |--------|-------------|-------------| | `{machine_id}/send_gcode_cmd` | `grbl_msgs/action/SendGcodeCmd` | Sends a single GCODE command to the GRBL device | | `{machine_id}/send_gcode_file` | `grbl_msgs/action/SendGcodeFile` | Sends a GCODE file to the GRBL device (streams file line by line) | ## Parameters | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `machine_id` | string | `"cnc_001"` | Unique identifier for the GRBL machine | | `port` | string | `"/dev/ttyUSB0"` | Serial port for the GRBL device | | `baudrate` | int | `115200` | Baud rate for serial communication | | `acceleration` | int | `50` | Axis acceleration in mm/min² | | `x_max` | int | `300` | Maximum X-axis travel in mm | | `y_max` | int | `200` | Maximum Y-axis travel in mm | | `z_max` | int | `150` | Maximum Z-axis travel in mm | | `default_v` | int | `100` | Default velocity in mm/min | | `x_max_v` | int | `150` | Maximum X-axis velocity in mm/min | | `y_max_v` | int | `150` | Maximum Y-axis velocity in mm/min | | `z_max_v` | int | `150` | Maximum Z-axis velocity in mm/min | | `x_steps` | int | `100` | X-axis steps per mm | | `y_steps` | int | `100` | Y-axis steps per mm | | `z_steps` | int | `100` | Z-axis steps per mm | ## Example Usage ```bash # Run with default parameters ros2 run grbl_ros grbl_node # Run with custom parameters from config file ros2 run grbl_ros grbl_node --ros-args --params-file /path/to/config.yaml ```