{"id":45454666,"url":"https://github.com/kavrakilab/robowflex","last_synced_at":"2026-02-22T06:03:37.017Z","repository":{"id":38747764,"uuid":"136487567","full_name":"KavrakiLab/robowflex","owner":"KavrakiLab","description":"Making MoveIt Easy!","archived":false,"fork":false,"pushed_at":"2023-08-01T15:07:55.000Z","size":8510,"stargazers_count":94,"open_issues_count":29,"forks_count":22,"subscribers_count":16,"default_branch":"master","last_synced_at":"2023-08-04T06:59:03.654Z","etag":null,"topics":["motion-planning","moveit","ompl","ros"],"latest_commit_sha":null,"homepage":"https://kavrakilab.github.io/robowflex/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KavrakiLab.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}},"created_at":"2018-06-07T14:16:03.000Z","updated_at":"2023-08-02T17:28:06.000Z","dependencies_parsed_at":"2023-01-19T07:00:39.699Z","dependency_job_id":null,"html_url":"https://github.com/KavrakiLab/robowflex","commit_stats":null,"previous_names":[],"tags_count":4,"template":null,"template_full_name":null,"purl":"pkg:github/KavrakiLab/robowflex","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KavrakiLab%2Frobowflex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KavrakiLab%2Frobowflex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KavrakiLab%2Frobowflex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KavrakiLab%2Frobowflex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KavrakiLab","download_url":"https://codeload.github.com/KavrakiLab/robowflex/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KavrakiLab%2Frobowflex/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29705848,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-22T05:59:28.568Z","status":"ssl_error","status_checked_at":"2026-02-22T05:58:46.208Z","response_time":110,"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":["motion-planning","moveit","ompl","ros"],"created_at":"2026-02-22T06:03:34.699Z","updated_at":"2026-02-22T06:03:37.012Z","avatar_url":"https://github.com/KavrakiLab.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Robowflex 💪🤖\nMaking MoveIt Easy.\nDocumentation for this project can be read online at [GitHub pages](https://kavrakilab.github.io/robowflex/).\nIf you use Robowflex, please use the following citation for the [associated paper](https://arxiv.org/pdf/2103.12826.pdf):\n```bibtex\n@article{Kingston2021,\n  author = {Kingston, Zachary and Kavraki, Lydia E.},\n  booktitle = {IEEE/RSJ International Conference on Intelligent Robots and Systems},\n  title = {{Robowflex}: Robot Motion Planning with {MoveIt} Made Easy},\n  year = {2022},\n  month = {10}\n}\n```\n\n## What is Robowflex?\n\nRobowflex is primarily a wrapper around components from other robotics libraries (in particular, components from _MoveIt_).\nThe name \"Robowflex\" is a portmanteau of \"Robot\" and \"Bowflex\", as Robowflex was intended just to be better \"bench\"-marking software (as in \"bench press\") than the rest.\nHowever, the software needed for doing benchmarking was the same as the software needed for running motion planning in \"isolation\" from a ROS system while still using ROS components, useful for many other things other than benchmarking.\nThus, the project has spun out and become a toolbox for motion planning using real robots that are _MoveIt_ enabled.\n\nThe high-level goals of the project are as follows:\n- Provide an easy to use interface to complex robotics libraries by brushing cruft and idiosyncrasies under the rug.\n- Provide access to all underlying capabilities of the libraries so users are not hampered by Robowflex in any way.\n- Remain untied as possible to the greater ROS system, and support all distros from Kinetic onward.\n\n## Build Status\n| Workflow      | Status                                                                                                                                                                              |\n|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Documentation | ![Documentation](https://github.com/KavrakiLab/robowflex/workflows/Documentation/badge.svg)                                                                                         |\n| Linting       | ![Linting](https://github.com/KavrakiLab/robowflex/workflows/Linting/badge.svg)                                                                                                     |\n| Kinetic       | ![Build Kinetic](https://github.com/KavrakiLab/robowflex/workflows/Build%20Kinetic/badge.svg)                                                                                       |\n| Melodic       | ![Build Melodic](https://github.com/KavrakiLab/robowflex/workflows/Build%20Melodic/badge.svg)                                                                                       |\n| Noetic        | [![Build Noetic](https://github.com/KavrakiLab/robowflex/actions/workflows/build-noetic.yml/badge.svg)](https://github.com/KavrakiLab/robowflex/actions/workflows/build-noetic.yml) |\n\n## robowflex_library\nA library that simplifies using [_MoveIt_](https://github.com/ros-planning/moveit) in applications.\nExamples of basic motion planning, benchmarking of planning requests, and input/output can be found in the `robowflex_library/scripts` directory.\n\n# Optional Robowflex Modules\nRobowflex also comes with many optional modules that provide specific auxiliary library support through the standard Robowflex interface.\nThe modules are only compiled if the required dependencies are installed.\n\n## robowflex_visualization\nPython scripts for visualizing robots and motion plans in [Blender](https://www.blender.org/).\nSee [`robowflex_visualization/README.md`](robowflex_visualization/README.md) for more information on how to use.\n\n## robowflex_ompl\nAn optionally compiled library component that adds more direct access to [OMPL](http://ompl.kavrakilab.org/) through a new `robowflex::Planner`.\nRequires [`moveit_planners_ompl`](https://github.com/ros-planning/moveit/tree/kinetic-devel/moveit_planners/ompl), from [_MoveIt_](https://github.com/ros-planning/moveit).\nSome basic examples of how to use the new planner are in `robowflex_ompl/scripts`.\n\n## robowflex_tesseract\nAn optionally compiled library component that adds support for [tesseract](https://github.com/ros-industrial-consortium/tesseract)-based planners.\nRequires both [tesseract](https://github.com/ros-industrial-consortium/tesseract) and [trajopt](https://github.com/ros-industrial-consortium/trajopt_ros).\nSome basic examples of how to use the new planner(s) are in `robowflex_tesseract/scripts`.\n\n## robowflex_movegroup\nA library component with helper classes and functions to interact with a `move_group` process being used for motion planning.\nScenes can be pushed and pulled and trajectories can be executed with this component through `move_group`.\n\n## robowflex_dart\nA optionally compiled library that adds support for modeling and planning through [DART (Dynamic Animation and Robotics Toolkit)](https://dartsim.github.io/).\nThere are features for loading robots just through DART or by converting __MoveIt_ robots into the DART representation.\nMotion planning is supported through [OMPL](http://ompl.kavrakilab.org/).\nThis module offers easy multi-robot motion planning through composing complex worlds with multiple robots.\nAdditionally, this module has [manifold-constrained motion planning](http://ompl.kavrakilab.org/constrainedPlanning.html) with a Task Space Region constraint specification.\n\n## robowflex_resources\n[robowflex_resources](https://github.com/KavrakiLab/robowflex_resources) is a separate repository that contains the MoveIt configuration and kinematic description for robots used in example scripts.\n\n# Installation Instructions\n\nRobowflex is supported on many ROS platforms, from Kinetic on Ubuntu 14.04 to Melodic on 18.04.\nHere are some bare-bones installation instructions to get up and running on a new Ubuntu 18.04 machine without ROS already installed.\nThis will only enable the core modules to be built, as some modules require special packages to be installed.\n\nFirst, [install ROS](http://wiki.ros.org/melodic/Installation/Ubuntu) following the directions copied below:\n\n```sh\nsudo sh -c 'echo \"deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main\" \u003e /etc/apt/sources.list.d/ros-latest.list'\nsudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654\nsudo apt update\nsudo apt install ros-melodic-desktop-full\nsudo rosdep init\nrosdep update\nsource /opt/ros/melodic/setup.bash\nsudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential\n```\n\nWe recommend `catkin-tools` to build your ROS workspace:\n```sh\nsudo apt install python-catkin-tools\n```\n\nInstall _MoveIt_ and other required ROS packages:\n```sh\nsudo apt install ros-melodic-moveit ros-melodic-geometry\n```\n\nFinally, create a workspace with Robowflex inside:\n```sh\ncd ~\nmkdir -p rb_ws/src\ncd rb_ws\nsource /opt/ros/melodic/setup.bash # if you haven't already\ncatkin config --init\ncd src\ngit clone https://github.com/KavrakiLab/robowflex.git\ncatkin build\n```\n\nTo try out a demo script, you first need a robot description.\nThe easiest to try is the _Fetch_ robot, either by debian or source:\n```sh\n# Debian\nsudo apt install ros-melodic-fetch-ros\n\n# Or, Source\ncd ~/rb_ws/src\ngit clone https://github.com/fetchrobotics/fetch_ros\ncatkin build\n```\n\nAfter the workspace is built, source and run a demo:\n```sh\ncd ~/rb_ws\nsource ./devel/setup.bash\nrosrun robowflex_library fetch_test\n```\n\n## Code Formatting\nAll C++ code should be formatted with `clang-format`.\nUse the `format.sh` script to automatically format the code base.\n\n## Applications \nExternal projects that make use of Robowflex:\n- Learning and Motion Planning Algorithms: https://github.com/KavrakiLab/pyre\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkavrakilab%2Frobowflex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkavrakilab%2Frobowflex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkavrakilab%2Frobowflex/lists"}