{"id":26962332,"url":"https://github.com/flynneva/grbl_ros","last_synced_at":"2025-04-03T05:28:00.206Z","repository":{"id":44642079,"uuid":"280988379","full_name":"flynneva/grbl_ros","owner":"flynneva","description":"ROS2 node for interfacing with a GRBL device","archived":false,"fork":false,"pushed_at":"2023-05-07T04:43:34.000Z","size":695,"stargazers_count":16,"open_issues_count":4,"forks_count":10,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-05-28T16:34:17.034Z","etag":null,"topics":["cnc","gcode","grbl","robotics","ros","ros2"],"latest_commit_sha":null,"homepage":"https://flynneva.github.io/grbl_ros/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flynneva.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-20T01:57:41.000Z","updated_at":"2024-04-27T19:11:53.000Z","dependencies_parsed_at":"2023-01-22T16:15:44.572Z","dependency_job_id":null,"html_url":"https://github.com/flynneva/grbl_ros","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flynneva%2Fgrbl_ros","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flynneva%2Fgrbl_ros/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flynneva%2Fgrbl_ros/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flynneva%2Fgrbl_ros/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flynneva","download_url":"https://codeload.github.com/flynneva/grbl_ros/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246943133,"owners_count":20858641,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cnc","gcode","grbl","robotics","ros","ros2"],"created_at":"2025-04-03T05:27:59.586Z","updated_at":"2025-04-03T05:28:00.196Z","avatar_url":"https://github.com/flynneva.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# grbl_ros ![ROS2 CI](https://github.com/flynneva/grbl_ros/workflows/ROS2%20CI/badge.svg)\r\n\r\nA simple ROS2 package for interfacing with a [grbl device](https://github.com/gnea/grbl).\r\n\r\nCurrently supports:\r\n- polling status of grbl device\r\n- sending plain GCODE commands using ROS2 service\r\n\r\n## Supported Platforms\r\n**All Tier 1 platforms = Windows 10, Mac OS X, and either Ubuntu 18.04 or Ubuntu 20.04**\r\nOS           | ROS 2 Version |\r\n------------ | ------------- |\r\nAll Tier 1 platforms | [Dashing Diademata](https://index.ros.org/doc/ros2/Releases/Release-Dashing-Diademata/) | \r\nAll Tier 1 platforms | [Eloquent Elusor](https://index.ros.org/doc/ros2/Releases/Release-Eloquent-Elusor/) |\r\nAll Tier 1 platforms | [Foxy Fitzroy](https://index.ros.org/doc/ros2/Releases/Release-Foxy-Fitzroy/) |\r\nAll Tier 1 platforms | [Rolling Ridley](https://index.ros.org/doc/ros2/Releases/Release-Rolling-Ridley/) |\r\n\r\nDashing and Eloquent target Ubuntu 18.04 while Foxy and Rolling target Ubuntu 20.04.\r\n\r\n## How to use\r\nThe `grbl_ros` package exposes two major functionalities to ROS: pose tracking of the GRBL device and sending commands to the GRBL device.\r\n\r\nThis package publishes a transform (aka `tf`) to the most recent machine coordinates received from the GRBL device. This allows for other ROS nodes to \"know\" where the machine is which can help enable many different functions.\r\n\r\nSecondly this package runs two ROS2 actions: `send_gcode_cmd` and `send_gcode_file`. Both actions do what they say they do and enable the user to monitor the status of these actions as they happen.\r\n\r\n## Getting started\r\n\r\nQuick start:\r\n```bash\r\n# for Ubuntu\r\nsudo apt install ros-\u003cyour-distro\u003e-grbl-ros\r\n```\r\n\r\nFork and clone the repository if you'd like to compile it yourself.\r\nOnce cloned, you can now build your workspace by running the following from your workspace's root directory:\r\n```bash\r\ncolcon build\r\n```\r\n\r\nOnce built, just make sure you've sourced your overlay (`source /path/to/workspace/install/setup.bash`) and you should be able to start up the `grbl_ros` node:\r\n\r\n```\r\nros2 run grbl_ros grbl_node --ros-args --params-file /path/to/workspace/src/grbl_ros/config/cnc001.yaml\r\n```\r\n\r\nBefore you can command your GRBL device to move, most likely you'll need to unlock it using the `$X` command:\r\n```\r\nros2 action send_goal /cnc_001/send_gcode_cmd grbl_msgs/action/SendGcodeCmd '{command: $X}'\r\n```\r\n\r\nYou should see `Goal finished with status: SUCCEEDED` and a print-out in the `grbl_ros` terminal that the GRBL device is now unlocked.\r\n\r\nFrom here, you can send your device whatever GCODE commands you would like. Here are a few common ones to get you started:\r\n```\r\nros2 action send_goal /cnc_001/send_gcode_cmd grbl_msgs/action/SendGcodeCmd '{command: X1.0}'\r\n# TBD, recommend more if you'd like more to be listed here!\r\n```\r\n\r\n\r\n## Testing\r\nUnit tests are run on every PR and every release across every supported platform for each ROS2 release. Refer to [the \"actions\" tab for this repository](https://github.com/flynneva/grbl_ros/actions?query=workflow%3A%22ROS+2+CI%22) to see these tests yourself.\r\n\r\n## Contributing\r\nAre you using `grbl_ros`? Do you like what functionality it provides but want it to do something more? PLEASE reach out!!! I want to hear from you! Make an issue, PR or smoke signal to get my attention as I would love to hear from you!\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflynneva%2Fgrbl_ros","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflynneva%2Fgrbl_ros","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflynneva%2Fgrbl_ros/lists"}