All Projects → KavrakiLab → robowflex

KavrakiLab / robowflex

Licence: other
Making MoveIt Easy!

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
CSS
56736 projects
CMake
9771 projects
Dockerfile
14818 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to robowflex

Ur5 ros Gazebo
Universal Robot (UR5) Pick and Place Simulation in ROS-Gazebo with a USB Cam and Vacuum Grippers
Stars: ✭ 211 (+154.22%)
Mutual labels:  motion-planning
Robotics-Resources
List of commonly used robotics libraries and packages
Stars: ✭ 71 (-14.46%)
Mutual labels:  motion-planning
SS-Replan
Online Replanning in Belief Space for Partially Observable Task and Motion Problems
Stars: ✭ 43 (-48.19%)
Mutual labels:  motion-planning
Airsim Neurips2019 Drone Racing
Drone Racing @ NeurIPS 2019, built on Microsoft AirSim
Stars: ✭ 220 (+165.06%)
Mutual labels:  motion-planning
dwl
The Dynamic Whole-body Locomotion library (DWL)
Stars: ✭ 70 (-15.66%)
Mutual labels:  motion-planning
Pontryagin-Differentiable-Programming
A unified end-to-end learning and control framework that is able to learn a (neural) control objective function, dynamics equation, control policy, or/and optimal trajectory in a control system.
Stars: ✭ 111 (+33.73%)
Mutual labels:  motion-planning
Rrt Algorithms
n-dimensional RRT, RRT* (RRT-Star)
Stars: ✭ 195 (+134.94%)
Mutual labels:  motion-planning
moveIt
⏱️ Recupere o foco e seja mais produtivo com o Move.it!
Stars: ✭ 17 (-79.52%)
Mutual labels:  moveit
open manipulator simulations
ROS Simulation for OpenManipulator
Stars: ✭ 15 (-81.93%)
Mutual labels:  moveit
ADAM
ADAM implements a collection of algorithms for calculating rigid-body dynamics in Jax, CasADi, PyTorch, and Numpy.
Stars: ✭ 51 (-38.55%)
Mutual labels:  motion-planning
Pathfinder
Cross-Platform, Multi-Use Motion Profiling and Trajectory Generation
Stars: ✭ 227 (+173.49%)
Mutual labels:  motion-planning
pilz robots
PILZ robot manipulator module PRBT 6 in ROS
Stars: ✭ 44 (-46.99%)
Mutual labels:  moveit
Virtual-Lane-Boundary-Generation
Virtual Lane Boundary Generation for Human-Compatible Autonomous Driving
Stars: ✭ 22 (-73.49%)
Mutual labels:  motion-planning
Crocoddyl
Crocoddyl is an optimal control library for robot control under contact sequence. Its solver is based on various efficient Differential Dynamic Programming (DDP)-like algorithms
Stars: ✭ 207 (+149.4%)
Mutual labels:  motion-planning
welding-robot
30th June, 2019 - 30th June, 2020. Robotics and Machine Intelligence Lab, The Hong Kong Polytechnic University. This work is supported in part by the Chinese National Engineering Research Centre for Steel Construction (Hong Kong Branch) at The Hong Kong Polytechnic University under grant BBV8, in part by the Research Grants Council of Hong Kong …
Stars: ✭ 43 (-48.19%)
Mutual labels:  motion-planning
Rvo2 Cs
Optimal Reciprocal Collision Avoidance (C#)
Stars: ✭ 208 (+150.6%)
Mutual labels:  motion-planning
lqRRT
Kinodynamic RRT implementation
Stars: ✭ 76 (-8.43%)
Mutual labels:  motion-planning
MotionPlanner
Motion Planner for Self Driving Cars
Stars: ✭ 129 (+55.42%)
Mutual labels:  motion-planning
FUEL
An Efficient Framework for Fast UAV Exploration
Stars: ✭ 450 (+442.17%)
Mutual labels:  motion-planning
Autonomous-Parking-System
Automatic Parking is an autonomous car maneuvering system (part of ADAS) that moves a vehicle from a traffic lane into a parking spot to perform parallel parking. The automatic parking system aims to enhance the comfort and safety of driving in constrained environments where much attention and experience is required to steer the car. The parking…
Stars: ✭ 39 (-53.01%)
Mutual labels:  ompl

Robowflex 💪🤖

Making MoveIt Easy. Documentation for this project can be read online at GitHub pages. If you use Robowflex, please use the following citation for the associated paper:

@article{Kingston2021,
  author = {Kingston, Zachary and Kavraki, Lydia E.},
  booktitle = {IEEE/RSJ International Conference on Intelligent Robots and Systems},
  title = {{Robowflex}: Robot Motion Planning with {MoveIt} Made Easy},
  year = {2022},
  month = {10}
}

What is Robowflex?

Robowflex is primarily a wrapper around components from other robotics libraries (in particular, components from MoveIt). The 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. However, 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. Thus, the project has spun out and become a toolbox for motion planning using real robots that are MoveIt enabled.

The high-level goals of the project are as follows:

  • Provide an easy to use interface to complex robotics libraries by brushing cruft and idiosyncrasies under the rug.
  • Provide access to all underlying capabilities of the libraries so users are not hampered by Robowflex in any way.
  • Remain untied as possible to the greater ROS system, and support all distros from Kinetic onward.

Build Status

Workflow Status
Documentation Documentation
Linting Linting
Kinetic Build Kinetic
Melodic Build Melodic
Noetic Build Noetic

robowflex_library

A library that simplifies using MoveIt in applications. Examples of basic motion planning, benchmarking of planning requests, and input/output can be found in the robowflex_library/scripts directory.

Optional Robowflex Modules

Robowflex also comes with many optional modules that provide specific auxiliary library support through the standard Robowflex interface. The modules are only compiled if the required dependencies are installed.

robowflex_visualization

Python scripts for visualizing robots and motion plans in Blender. See robowflex_visualization/README.md for more information on how to use.

robowflex_ompl

An optionally compiled library component that adds more direct access to OMPL through a new robowflex::Planner. Requires moveit_planners_ompl, from MoveIt. Some basic examples of how to use the new planner are in robowflex_ompl/scripts.

robowflex_tesseract

An optionally compiled library component that adds support for tesseract-based planners. Requires both tesseract and trajopt. Some basic examples of how to use the new planner(s) are in robowflex_tesseract/scripts.

robowflex_movegroup

A library component with helper classes and functions to interact with a move_group process being used for motion planning. Scenes can be pushed and pulled and trajectories can be executed with this component through move_group.

robowflex_dart

A optionally compiled library that adds support for modeling and planning through DART (Dynamic Animation and Robotics Toolkit). There are features for loading robots just through DART or by converting _MoveIt robots into the DART representation. Motion planning is supported through OMPL. This module offers easy multi-robot motion planning through composing complex worlds with multiple robots. Additionally, this module has manifold-constrained motion planning with a Task Space Region constraint specification.

robowflex_resources

robowflex_resources is a separate repository that contains the MoveIt configuration and kinematic description for robots used in example scripts.

Installation Instructions

Robowflex is supported on many ROS platforms, from Kinetic on Ubuntu 14.04 to Melodic on 18.04. Here are some bare-bones installation instructions to get up and running on a new Ubuntu 18.04 machine without ROS already installed. This will only enable the core modules to be built, as some modules require special packages to be installed.

First, install ROS following the directions copied below:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install ros-melodic-desktop-full
sudo rosdep init
rosdep update
source /opt/ros/melodic/setup.bash
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

We recommend catkin-tools to build your ROS workspace:

sudo apt install python-catkin-tools

Install MoveIt and other required ROS packages:

sudo apt install ros-melodic-moveit ros-melodic-geometry

Finally, create a workspace with Robowflex inside:

cd ~
mkdir -p rb_ws/src
cd rb_ws
source /opt/ros/melodic/setup.bash # if you haven't already
catkin config --init
cd src
git clone https://github.com/KavrakiLab/robowflex.git
catkin build

To try out a demo script, you first need a robot description. The easiest to try is the Fetch robot, either by debian or source:

# Debian
sudo apt install ros-melodic-fetch-ros

# Or, Source
cd ~/rb_ws/src
git clone https://github.com/fetchrobotics/fetch_ros
catkin build

After the workspace is built, source and run a demo:

cd ~/rb_ws
source ./devel/setup.bash
rosrun robowflex_library fetch_test

Code Formatting

All C++ code should be formatted with clang-format. Use the format.sh script to automatically format the code base.

Applications

External projects that make use of Robowflex:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].