{"id":48028493,"url":"https://github.com/alexarbogast/coordination_controllers","last_synced_at":"2026-04-04T13:53:18.073Z","repository":{"id":329370954,"uuid":"791970065","full_name":"alexarbogast/coordination_controllers","owner":"alexarbogast","description":"Coordinated motion control and redundancy resolution for multi-robot systems in ROS","archived":false,"fork":false,"pushed_at":"2026-03-23T03:26:14.000Z","size":220,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"ros2","last_synced_at":"2026-03-23T07:51:27.182Z","etag":null,"topics":["cartesian-controller","coordinated-manipulation","robotics","robotics-control","ros","ros-control","ros2","ros2-control"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexarbogast.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-04-25T18:12:27.000Z","updated_at":"2026-03-23T03:26:19.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/alexarbogast/coordination_controllers","commit_stats":null,"previous_names":["alexarbogast/coordination_controllers"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/alexarbogast/coordination_controllers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexarbogast%2Fcoordination_controllers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexarbogast%2Fcoordination_controllers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexarbogast%2Fcoordination_controllers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexarbogast%2Fcoordination_controllers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexarbogast","download_url":"https://codeload.github.com/alexarbogast/coordination_controllers/tar.gz/refs/heads/ros2","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexarbogast%2Fcoordination_controllers/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31402276,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: 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":["cartesian-controller","coordinated-manipulation","robotics","robotics-control","ros","ros-control","ros2","ros2-control"],"created_at":"2026-04-04T13:53:17.986Z","updated_at":"2026-04-04T13:53:18.066Z","avatar_url":"https://github.com/alexarbogast.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Coordination Controllers\n\n[![license - apache 2.0](https://img.shields.io/:license-Apache%202.0-yellowgreen.svg)](https://opensource.org/licenses/Apache-2.0)\n[![ROS2 CI](https://github.com/alexarbogast/coordination_controllers/actions/workflows/build-and-test.yml/badge.svg)](https://github.com/alexarbogast/coordination_controllers/actions/workflows/build-and-test.yml)\n[![ros - humble](https://img.shields.io/badge/ROS2-Humble-blue)](https://docs.ros.org/en/humble/index.html)\n[![ros - jazzy](https://img.shields.io/badge/ROS2-Jazzy-blue)](https://docs.ros.org/en/jazzy/index.html)\n\n**A ROS package providing coordinated motion controllers for the\n[ros_control](https://github.com/ros-controls/ros2_control) framework.** In\ngeneral, these controllers support coordinating the task-space motion of a\nmanipulator with external axes or positioner units.\n\nThis package implements a decentralized architecture for coordinated motion\ncontrol. The feedback communication between a manipulator and its coordinated\nunit is done via ROS messaging. This allows each mechanical unit (i.e.\nmanipulators and positioners) to be controlled from separate hardware devices.\n\n## Installation\n\nThis package depends on\n[`taskspace_control`](https://github.com/alexarbogast/taskspace_control).\nCreate a ROS 2 workspace and populate a src directory with this package and its\ndependencies.\n\n```bash\nsudo apt update\nrosdep update\ncd src\nvcs import \u003c coordination_controllers/coordination_controllers.repos\nrosdep install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y\n```\n\nBuild the packages:\n\n```bash\ncd \u003ccolcon_workspace\u003e\ncolcon build\n```\n\n## Coordinated Controller Configuration\n\nAn example configuration can be found in the `coordinated_motion_examples`\n[configuration](./coordinated_motion_examples/config). Or refer to the `yaml`\nfiles that lay out each controllers parameters for the [parameter\ngenerator](https://github.com/PickNikRobotics/generate_parameter_library). The\n`rr_objective_type` and `pos_objective_type` parameters decide the type of\nobjectives used for redundancy resolution and positioner control. The available\ncontroller types can be found in the [plugin\ndescription](./coordinated_motion_controllers/coordinated_controller_plugins.xml).\n\n#### Positioner State Interfaces\n\nThis package provides two interchangeable implementations for accessing the positioner joint state:\n\n- **TopicStateInterface**\n  (`state_interface` = topic)\n  Reads positioner joint position and velocity from ROS topics. This mode is\n  suitable when the positioner is controlled by a separate process or\n  controller manager, or when loose synchronization is acceptable.\n\n- **LoanedStateInterface**\n  (`state_interface` = loaned)\n  Reads positioner joint position and velocity directly from ros2_control\n  loaned state interfaces. This provides deterministic, zero-copy access\n  within the controller update loop and enables tight synchronization when the\n  positioner is managed by the same controller manager.\n\n## Running the Demos\n\nLaunch the demo multi-robot system with the desired robot.\n\n```bash\nros2 launch coordinated_motion_examples two_robot_bringup.launch.py robot_type:=robot6R controller:=coordinated_as_controller\n```\n\n```\n# 'robot_type' (default \"robot6R\"): One of 'robot6R', 'robot7R\n# 'controller' (default \"coordinated_as_controller\"): One of 'coordinated_pose_controller', 'coordinated_as_controller'\n```\n\nIn another terminal, launch the control demo with a matching robot_type and controller.\n\n```bash\nros2 launch coordinated_motion_examples coordinated_motion_demo.launch.py robot_type:=robot6R controller:=coordinated_as_controller\n```\n\nModify the positioner and redundancy resolution objectives in the respective\n`coordinated_motion_examples/config/\u003crobot_type\u003e_controllers.yaml`.\n\n- [robot6R config](./coordinated_motion_examples/config/robot6R_controllers.yaml)\n- [robot7R config](./coordinated_motion_examples/config/robot7R_controllers.yaml)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexarbogast%2Fcoordination_controllers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexarbogast%2Fcoordination_controllers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexarbogast%2Fcoordination_controllers/lists"}