Meng's Code
P_MAS_TG
Planner for Multi-Agent System under Temporal Goals
Download at GitHub.
Comments and contributions are most welcome!
Description:
this package contains implementation for plan synthesis algorithms given a finite transition system (as the agent motion model) and a Linear temporal logic formula (as the agent task). It outputs the static plan as a sequence of agent motion and action, required to fulfill the task.
Features:
Allow both general and co-safe LTL task formulas.
Handle both motion and action models.
Allow soft and hard task specifications.
NetworkX structure for FTS, Buchi and Product automata.
Static or on-the-fly construction of product automaton.
Easy integration with motion control, sensing and communication modules.
Can be used to generate ‘.dat‘ for MatLAB to load Buchi and product automata model. See square_world.py.
Application One
Follow the Example.py
Applied to two agents simultaneously.
Motion and action plan for flexible task specifications.
Simulation and demonstration. [Video 1] [Video 2]
P_MDP_TG
Planner for Markov Decision Process under Temporal Goals
Download at GitHub
Comments and contributions are most welcome!
Description:
this package contains the implementation for policy synthesis algorithms given a probabilistically-labeled Markov Decision Process (MDP) (as the robot motion model) and a Linear Temporal Logic (LTL) formula (as the robot task). It outputs a stationary and finite-memory policy consists of plan prefix and plan suffix, such that the controlled robot behavior fulfills the task with a given lower-bounded risk and minimizes the expected total cost.
Features:
Allows probabilistic labels on MDP states.
Tunable trade-off between risk and expected total cost in the plan prefix.
Linear programs for solving constrained stochastic shortest path (SSP).
Optimization over both plan prefix and suffix.
Relaxed policy generation for cases where no accepting end components (AECs) exist.
Interface between LTL formula, Buchi Automaton, Deterministic Robin Automaton and NetworkX graph objects.
Computing maximal accepting end components (MAEC) of MDPs.
|
|
Python Implementation of Reciprocal Velocity Obstacle (RVO) for Multi-agent Systems
Download at GitHub
Comments and contributions are most welcome!
Check out [Video1], [Video2].
Description:
This package contains a plug-and-play Python package for collision-avoidance in multi-agent system, based on reciprocal velocity obstacles (RVO) and hybrid reciprocal velocity obstacles (HRVO).
Features:
Takes a 2D workspace with any number of non-overlaping circular or square obstacles
Any number of dynamic agents with non-zero volume.
Allow the choice of VO, RVO, HRVO.
Direct plug-and-play and fully integrate-able with your control objective, i.e., the output velocity is a minimal modification of the desired velocity.
Scalable and fast, see examples below.
HIL_Mix_Initiative
Human-in-the-loop mix initiative control under temporal tasks
Download at GitHub
Comments and contributions are most welcome!
Description:
This package contains the implementation of the mix-initiative control of a single robot under temporal tasks. The human operator can directly modify the navigation input of the robot and assign new tasks to the robot during run time. The workspace is assumed to be only partially-known and possibly dynamic. More importantly, via this interaction, the robot can learn the human preference for the parameters used in the plan synthesis.
Features:
Human operator can influence the ‘‘cmd_vel" control velocities directly whenever needed:
Safety is ensured for all time by the mix-initiative controller, for all possible human inputs.
Human can assign contingent short-term tasks during run time, which the robot will accommodate within the given deadline.
Given the past inputs from the human, the robot could learn the preferred value of the parameters used in the plan synthesis, with inverse reinforcement learning (IRL) algorithms.
Python Interface for Controlling iRobots with OptiTrack
Download at GitHub
Comments and contributions are most welcome!
Description:
this package contains the Python interface used at the RAMA lab of Prof. Zavlanos, Duke University. The hardware structure consists of
one Windows PC (W), which connects to all OptiTrack cameras and runs program Motive to calibrate and retrieve data from OptiTrack.
one Ubuntu machine (U), which runs ROS and does the algorithmic computation to compute the control signals for each iRobot.
several iRobots (I), which runs iRobot driver locally, receives control commands from (U) and sends sensory data back to (U).
Features:
Retrieve multiple rigid-body data.
Plot real-time positions of all rigid bodies.
Can be easily extended to more complicate motion and task planning scenarios.
|