{"id":21103120,"url":"https://github.com/robotnikautomation/scene_manager","last_synced_at":"2026-02-11T00:01:47.045Z","repository":{"id":141532045,"uuid":"493214534","full_name":"RobotnikAutomation/scene_manager","owner":"RobotnikAutomation","description":"Scene Manager package is a ROS package created by Robotnik to help build and interact with MoveIt’s robot’s planning scene. ","archived":false,"fork":false,"pushed_at":"2024-12-02T11:39:55.000Z","size":288,"stargazers_count":1,"open_issues_count":2,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-20T04:44:28.110Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RobotnikAutomation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2022-05-17T11:07:22.000Z","updated_at":"2024-12-02T11:39:59.000Z","dependencies_parsed_at":"2024-11-19T23:57:51.306Z","dependency_job_id":"15812879-ec09-471e-a5a8-5da78a62a100","html_url":"https://github.com/RobotnikAutomation/scene_manager","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/RobotnikAutomation/scene_manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Fscene_manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Fscene_manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Fscene_manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Fscene_manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RobotnikAutomation","download_url":"https://codeload.github.com/RobotnikAutomation/scene_manager/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Fscene_manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29322733,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T20:44:44.282Z","status":"ssl_error","status_checked_at":"2026-02-10T20:44:43.393Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2024-11-19T23:57:46.055Z","updated_at":"2026-02-11T00:01:46.809Z","avatar_url":"https://github.com/RobotnikAutomation.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# scene_manager\nScene Manager package is a ROS package created by Robotnik to help build and interact with MoveIt’s robot’s planning scene. \n\n## Background Info \n\n### MoveIt Planning Scene\n\n- Is an object used for storing the representation of the world around the robot (external collisions) and also the state of the robot itself (internal collisions and current position).\n- The collision environment can be built using MoveIt Collision Objects or Octomap.\n- The Planning Scene is used by MoveIt during path planning, to obtain collision-free trajectories. \n- It is important to have an accurate representation of the world. \n- MoveIt allows the user to interact with Collision Objects (attach, detach objects) present in the Planning Scene.  \n\n\n## Scene Manager\n\n- Facilitates the creation of the Planning Scene, as well as the interaction with the Planning Scene. \n- C++ Class that inherits from the Class moveit::planning_interface::PlanningSceneInterface.\n- API that allows user to easily interact with the MoveIt Planning Scene. \n\n### Advantages\n\n- MoveIt Collision Objects are easily defined in a YAML file that can be modified at any time. \n- Allows user to construct matrices of same object (useful for palletizing applications).\n- Adds new functionalities to interact with objects (ex: move relative to object, enable/disable collision checking with object, ..).\n- Exposes ROS Services to call all Scene Manager functionalities, external user can easily interact with the environment. \n- Includes visualization in RViz of object names.\n- Publishes object's frame with respect to world in TF Tree.\n\n### How to add Scene Manager to a project\n\n- Add [scene_manager](https://github.com/RobotnikAutomation/scene_manager.git) and [scene_manager_msgs](https://github.com/RobotnikAutomation/scene_manager_msgs.git) packages to catkin workspace.\n- Inside the ROS package where you are going to use the Scene Manager add the depency to the above packages both in CMakeLists.txt and package.xml files. \n- Add Scene Manager library to the CPP node you are developing: \n\n    ```\n    #include \u003ccorosect_manipulation/scene_manager.h\u003e\n    ```\n- Create object of SceneManager Class:\n\n    ```\n    ros::NodeHandle nh;\n    // Init Scene Manager\n    bool wait = true;\n    std::unique_ptr\u003cSceneManager\u003e scene_manager_ = std::make_unique\u003cSceneManager\u003e(nh , wait);\n    ```\n### Scene Manager YAML:\n\nAllows user to easily add Collision Objects into a Planning Scene, for each object one should add the following attributes:\n\n- **spawn:**  By default the object is added to Planning Scene during initialization of scene by Scene Manager.\n- **static:**  Static objects cannot be manipulated, nor its position in space changed. \n- **frame_id:**  Object's position in scene is defined with respect to this axes.\n- **geometry:** Geometric shape (box) or route to mesh file (package://ros_package_name/route_to_file_folder/mesh_file_name.stl).\n- **pose:**  xyz displacement or rpy orientation with respect to the frame_id axes.\n- **layout:** Can be used to add a matrix of the current object (ex: pallet with boxes).\n\n\n    \u003cp align=\"justify\"\u003e\n        \u003cdiv class=\"row\"\u003e\n          \u003cdiv class=\"column\"\u003e\n            \u003cimg src=\"images/YAML.png\" height=\"300\u003e\n          \u003c/div\u003e\n          \u003cdiv class=\"column\"\u003e\n            \u003cimg src=\"images/collision_objects.png\" height=\"300\"\u003e\n          \u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/p\u003e \n\n### Scene Manager Functionalities:\n\nScene Manager class exposes the following methods:\n\n- **SceneManager::initScene()** : Adds objects defined in YAML file to the Planning Scene.\n- **SceneManager::addObjects(vector\u003c string \u003e object_ids)** : Add specific object to Planning Scene. \n- **SceneManager::removeObjects(vector\u003c string \u003e object_ids)** : Remove specific object to Planning Scene.\n- **SceneManager::attachObjects(vector\u003c string \u003e object_ids)** : Attach collision object to end-effector. \n- **SceneManager::detachObjects(vector\u003c string \u003e object_ids)** : Detach collision object to end-effector. \n- **SceneManager::moveRelativeTo(string object_id, rel_pose)** : Move end-effector with a relative pose with respect to a given object's frame id.\n- **SceneManager::allowCollision(string link_id, vector\u003c string \u003e objects_id)** : Allows collision between a robot link or a collision object with respect to other collision object. \n- **SceneManager::restoreCollision(string link_id, vector\u003c string \u003e objects_id)** : Restores collision avoidance between a robot link or a collision object with respect to other collision object. \n\n### Scene Manager ROS Services:\n\nScene Manager exposes ROS Services to call all Scene Manager functionalities, external user can easily interact with the arm and the scene. \n\n- /scene_manager/add_objects\n- /scene_manager/remove_objects\n- /scene_manager/attach_objects\n- /scene_manager/detach_objects\n- /scene_manager/modify_object\n- /scene_manager/move_relative_to\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobotnikautomation%2Fscene_manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobotnikautomation%2Fscene_manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobotnikautomation%2Fscene_manager/lists"}