We study the problem of optimal multi-robot path planning on graphs (MPP) over the makespan (last arrival time) criteria. We implemented A* search algorithm to find solution. In an MPP instance, the robots are uniquely labeled (i.e., distinguishable) andare confined to an nxn squared connected graph. The robots may move from a vertex to an adjacent one in one time step in theabsence of collision, which may occur when two robots simultaneously move to the same vertex or along the same edge indifferent directions. A distinguishing feature of our MPP formulation is that we allow robots on fully occupied cycles to rotatesynchronously.
Let G = (V, E) be a connected, undirected, simple graph, with V = {vi} being the vertex set and E = {(vi, vj )} the edgeset. Let R = {r1, . . . , rn} be a set of n robots. The robots move at discrete time steps (i.e., at t = 0, 1, . . .). At time step t = 0, each robot occupies a distinct vertex of G. In general, at any time step t = 0, 1, . . ., the robots assume a configuration that is an injective map from R to V . The start (initial) and goal configurations of the robots are denoted as xI and xG, respectively.Following figure shows a possible configuration and its possible goal configuration of 9 robots on a 3 × 3 grid graph.
During a discrete time step, each robot may either remain stationary or move to an adjacent vertex. To formally describe a plan, let a scheduled path be a map pi : Z+ → V , in which Z+ := N ∪ {0}. A scheduled path pi is feasible if it satisfies the following properties:
robot ri stays at vertex pi(t) between the time steps t and t + 1). We say that two paths pi, pj are in collision if there exists k ∈ Z+ such that pi(t) = pj (t) (meet collision) or (pi(t), pi(t + 1)) = (pj (t + 1), pj (t)) (head-on collision).
To solve above problem, we implemented A* algorithm to find optimum route from given initial 3x3 robot positions and desired 3x3 robot positions. First algorithm starts to construct graph, whose connections shows possible movement. Then we extented it as time based graph. According to time extented graph, all nodes are dublicated for every single of time step. That means, if we have 3x3 node for given example, we will have 3x3xts number of node in our time expanded graph. We set it ts=7 for our demo which means algorithm just search optimal solution up to 7 time step. Every node in t layer has connection to its own node in (t+1) layer but it has connection to one step far nodes in (t+1) layer as well.
You can define your own start and end positions of all 9 robot repectively. For instance here is the demo's starting and end positions.
sp=[3 5 6 2 9 7 8 4 1];
ep=[1 2 3 4 5 6 7 8 9] + ngrid*ngrid*(ts-1);
You should define all 9 robots start position with sp vector. !st elemnet show 1st robot position, 2nd element show 2nd robot position. So as given vector, 1st robot stay on 3th cell, 2nd robot stay on 5th cell, as how it was in above figure.
You can run all demo with following command.
> main
Then you will take following results for given start and end positions.
[1] Yu, Jingjin, and Steven M. LaValle. "Optimal multirobot path planning on graphs: Complete algorithms and effective heuristics." IEEE Transactions on Robotics 32.5 (2016): 1163-1177.
SO Planning 是一个简单的在线计划软件,可以用来作为个人或者团队的项目计划工具。
Adaptive Planning Express 是一个适用于中型公司和部门使用的自动预算软件,其功能远远超越Excel。
weixin-robot 是一个微信机器人,是本人在学习使用 Node.js 的过程中,为激发自身的学习热情而做的项目。 功能 已经实现的功能 文字信息的转发 图片的转发 尚未实现的功能 对微信消息中连接消息的转发 引入持久化存储,记录每次转发的消息 完善log日志(目前很多log语句被注释掉,log的格式也不一致)
wukong-robot 是一个简单、灵活、优雅的中文语音对话机器人/智能音箱项目,目的是让中国的 Maker 和 Haker 们也能快速打造个性化的智能音箱。 wukong-robot 还可能是第一个开源的支持脑机唤醒的智能音箱。 特性 模块化。功能插件、语音识别、语音合成、对话机器人都做到了高度模块化,第三方插件单独维护,方便继承和开发自己的插件。 中文支持。集成百度、科大讯飞、阿里、腾讯等多
叮当是一款可以工作在 Raspberry Pi 上的中文语音对话机器人/智能音箱项目。 叮当包括以下诸多特性: 模块化。功能插件、语音识别、语音合成、对话机器人都做到了高度模块化,第三方插件单独维护,方便继承和开发自己的插件。 微信接入。支持接入微信,并通过微信远程操控自己家中的设备。 中文支持。集成百度、科大讯飞、阿里、谷歌等多家中文语音识别和语音合成技术,且可以继续扩展。 对话机器人支持。支
deploy-robot 是 SegmentFault 出品的 Github 自动部署机器人,将你从繁冗的部署工作中解放出来,让你的部署流程更加自动化。 特点: 与 GitHub 深度整合,利用 GitHub API 读取相关部署指令,并及时反馈部署情况 与人工部署不同的是,自动部署不会疲劳,也不会喊累,你永远可以不停地折腾它 使用方法 执行以下命令安装 npm install -g deploy