{"id":28247198,"url":"https://github.com/mikeferguson/simple_grasping","last_synced_at":"2025-07-30T21:35:57.321Z","repository":{"id":28890642,"uuid":"32415320","full_name":"mikeferguson/simple_grasping","owner":"mikeferguson","description":"ROS components for grasping","archived":false,"fork":false,"pushed_at":"2025-05-30T19:07:00.000Z","size":69,"stargazers_count":55,"open_issues_count":2,"forks_count":36,"subscribers_count":8,"default_branch":"ros2","last_synced_at":"2025-05-31T03:55:41.379Z","etag":null,"topics":["grasping","manipulation","robotics","ros","ros2"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mikeferguson.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2015-03-17T19:29:38.000Z","updated_at":"2025-05-30T19:05:45.000Z","dependencies_parsed_at":"2025-05-30T20:47:39.938Z","dependency_job_id":"ee8baf9e-6a40-47b3-9502-18bec344d151","html_url":"https://github.com/mikeferguson/simple_grasping","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/mikeferguson/simple_grasping","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikeferguson%2Fsimple_grasping","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikeferguson%2Fsimple_grasping/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikeferguson%2Fsimple_grasping/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikeferguson%2Fsimple_grasping/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mikeferguson","download_url":"https://codeload.github.com/mikeferguson/simple_grasping/tar.gz/refs/heads/ros2","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikeferguson%2Fsimple_grasping/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267945371,"owners_count":24170218,"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","status":"online","status_checked_at":"2025-07-30T02:00:09.044Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["grasping","manipulation","robotics","ros","ros2"],"created_at":"2025-05-19T10:08:50.049Z","updated_at":"2025-07-30T21:35:57.312Z","avatar_url":"https://github.com/mikeferguson.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# simple_grasping\n\nROS2 components for simple perception and grasping.\n\n## Basic Grasping Perception Node\n\nThe most common use of this package is to run the\n``basic_grasping_perception_node``. This node connects to an RGBD\ncamera and offers a ``find_objects`` action server.\n\nThe node can be run with visualization using:\n\n```\nros2 run simple_grasping basic_grasping_perception_node --ros-args -p debug_topics:=true\n```\n\n### Parameters\n\nIn addition to the following parameters, this node supports all of\nthe same parameters as the \n\n * **debug_topics** - If true, debug topics will be published.\n   Default: false.\n * **continuous_detection** - If true, will continuously segment\n   objects and support surfaces. This is only useful if using\n   the debug topics downstream. Default: false.\n * **frame_id** - frame ID that RGBD point cloud should be\n   transformed into - the \"world frame\". Default: \"base_link\".\n\n## Subscribed Topics\n\n * **/head_camera/depth_registered/points** - RGBD camera input.\n\n## Published Topics\n\n * **object_cloud** - Colorized point cloud of objects detected.\n   Only published if **debug_topics** is set to true.\n * **surface_cloud** - Colorized point cloud of surfaces detected.\n   Only published if **debug_topics** is set to true.\n\n## Actions\n\n * **find_objects** - primary action interface, of type\n   ``grasping_msgs::action::FindGraspableObjectsAction``. Returns\n   an array of ``grasping_msgs::msg::GraspableObjects`` and an\n   array of support surfaces as ``grasping_msgs::msg::Object``\n\nFor an example using this node, see ``ubr1_demo`` in the\n[ubr_reloaded package](https://github.com/mikeferguson/ubr_reloaded).\n\n## Standalone Grasp Planner\n\nThe grasp planner can also be run standalone using ``grasp_planner_node``.\n\n### Parameters\n\nThe grasp planner works for a parallel jaw gripper.\n\n * **gripper/left_joint** - name of the left gripper joint. Default: \"l_gripper_finger_joint\".\n * **gripper/right_joint** - name of the right gripper joint. Default: \"r_gripper_finger_joint\".\n * **gripper/max_opening** - maximum opening of the gripper, in meters. Default: 0.110.\n * **gripper/max_effort** - maximum effort of the gripper, in Newtons. Default: 50.0.\n * **gripper/finger_depth** - length of the gripper fingers, in meters. The grasp will be\n   centered in this region. Default: 0.02.\n * **gripper/grasp_duration** - maximum amount of time to wait for gripper to close, in\n   seconds. Default: 2.0.\n * **gripper/gripper_tolerance** - the gripper will open at least this much larger\n   than the object. Size in meters. Default: 0.02.\n * **gripper/approach/frame** - name of the robot link the approach portion of the\n   grasp will be referenced to. Default: \"wrist_roll_link\".\n * **gripper/approach/min** - minimum distance that gripper needs to approach,\n   in meters. Default: 0.1.\n * **gripper/approach/max** - maximum distance that gripper should use for approach,\n   in meters. Default: 0.15.\n * **gripper/retreat/frame** - name of the robot link the retreat portion of the\n   grasp will be referenced to. Default: \"wrist_roll_link\".\n * **gripper/retreat/min** - minimum distance that gripper needs to retreat,\n   in meters. Default: 0.1.\n * **gripper/retreat/max** - maximum distance that gripper should use for retreat,\n   in meters. Default: 0.15.\n * **gripper/tool_to_planning_frame** - distance between planning frame and tool\n   frame, in meters. The planning frame is usually the last wrist frame and so\n   this distance offsets the \"tool\" location, which is usually the center of the\n   gripper fingers, from that wrist frame. Default: 0.165.\n\n## Actions\n\n * **plan** - primary action interface, of type\n   ``grasping_msgs::action::GraspPlanningAction``. Returns\n   an array of ``moveit_msgs::msg::Grasp`` for a given object.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikeferguson%2Fsimple_grasping","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmikeferguson%2Fsimple_grasping","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikeferguson%2Fsimple_grasping/lists"}