Concurrent Graph Exploration with Multiple Robots Hui Wang 12/1/2018
Outline Introduction Previous work (background) Concurrency concerns Skeleton of operation model 12/1/2018
Outline Introduction Previous work (background) Concurrency concerns Skeleton of operation model 12/1/2018
Introduction Address robotic exploration problem on a graph-like world Robot(s) given an unknown environment modeled as a graph Goal is to establish a graph representation of the underlying world (mapping) Exist single robot exploration algorithm Extended to multiple robot case in my Master’s studies Simple nature of synchronization and parallelism modeled 12/1/2018
Introduction (cont’) Extend the multiple robot exploration with concurrency concerns. Useful framework within which to explore fundamental issues related to concurrent data structure exploration. E.g., robot (thread) synchronization, contention, and communication Allows for in-depth investigation of real life exploration challenges, e.g., measuring real execution time. Subject to refinement in later work. 12/1/2018
Outline Introduction Previous work (background) Concurrency concerns Skeleton of operation model 12/1/2018
Previous work (background) Problem: Given an unknown environment modeled as an embedded graph Embedding: Explicit specification of the order of edges incident upon each vertex of the graph 12/1/2018
Previous work (background) Unpleasant Constraints No prior knowledge of the environment at all (except starting place) No distance and orientation metric (compass) Edges are featureless, vertices featureless except degree Cannot label real edges, vertices….. Still solvable? Generally not Unless augment robot with disambiguation capability. E.g., use marker (bread crumbs) to solve the ‘have I been here before?’ problem `Have I been here before?’ 12/1/2018
Single robot exploration Key idea: maintains currently known sub-graph S, which evolves during process Basic operation: selects an unexplored edge eunknown from currently known graph S, explores to an unknown end (vertex) vunknown of the edge Critical question: whether the end vunknown was known, i.e., vunknown in S? Deterministic solution: drops marker (bread crumbs) at vunknown, searches S for the marker. S eunknown v1 vu v2 v3 12/1/2018
Single robot exploration (cont’) drop marker at vunknown, search S for the marker. if marker is not found in S // both eunknown and vunknown are unknown add eunknown and vunknown to S else if marker is found in S // vunknown is v2 , only eunknown is unknown add eunknown to S S eunknown v1 vu v2 v3 S eunknown v1 v2 12/1/2018 v3
Multiple robots exploration Extended to multiple robots case. Same word model, Unique marker Common starting place, percept each other, and communicate (within vertex) Expectation: perform tasks faster, more robust than single one Alternating phases of independent exploration and coordinated merging of partial representations. Merge similar. common map := initial starting place while common map has unexplored part Partition the common map (Task split) Explore in parallel Meet at rendezvous place (common) after a certain time steps Merge the partial maps Merged map shared by all robots, becoming new common map End while 12/1/2018
Multiple robot exploration example 12/1/2018
12/1/2018
Multiple robot exploration on Real system 12/1/2018
Outline Introduction Previous work (background) Concurrency concerns Skeleton of operation model 12/1/2018
Concurrency concerns Pervious work assumes simple nature of parallelism and synchronization Operation not in full parallel Sufficient for specific problem solving (evaluate edge traversal) Not sufficient for other concerns (evaluate real execution time ) Concurrent modeling better reflects real life exploration Allow for investigation of more challenging problem e.g., meet in edge (hallway) e.g., resource contention, real time allocation 12/1/2018
Concurrency concerns Start with the basic algorithm -- modeling, implementing and testing Incorporating concurrency-related enhancements developed opportunistic communication parallelism in the merge phase Investigating more concurrency-related problems based on the concurrent model of the problem. encountering each other on edges evaluating by real resource consumption, e.g., execution time dealing with large groups (k ≥ 2) of robots. More new ideas acquired during the progress of the course work. 12/1/2018
Outline Introduction Previous work (background) Concurrency concerns Skeleton of operation model 12/1/2018
Skeleton of operation model We model the operation at each vertex as a sequence of action ( sense, initiate-communication, manipulate, move ). We assume the first 3 operation (sense, initiate-communication, manipulate, move) requires mutual exclusion. We distinguish two types of operation and communication at a vertex: at a rendezvous place at a non-rendezvous place 12/1/2018
Skeleton of operation model Operation at rendezvous place Challenge: synchronization 12/1/2018
Skeleton of operation model Operation at non-rendezvous place Challenge: establish communication (synchronous, asynchronous?) 12/1/2018
References [1] G. Dudek, M. Jenkin, E. Milios, and D. Wilkes. Robotic exploration as graph construction. IEEE Transactions on Robotics and Automation, 7: 859-864, 1991. (wiki) [2] G. Dudek, M. Jenkin, E. Milios, and D. Wilkes. Topological exploration with multiple robots. In 7th International Symposium on Robotics and Automation (ISORA).1998. (wiki) [3] H. Wang. Multiple Robot Graph Exploration. Master’s Thesis. York University, 2007. (webpage) Thank you 12/1/2018
Extra slide: Two robots vs. single robot 12/1/2018
Extra Slide: About isomorphic Problem (goal) : Given an unknown environment modeled as a graph, formulate an exploration strategy which enable the robot to form a representation of environment that is isomorphic to the finite world it has been assigned to explore. isomorphic: Two graphs are isomorphic if there is a one-to-one correspondence between their vertices and there is an edge between two vertices of one graph if and only if there is an edge between the two corresponding vertices in the other graph. v2 v1 v1 v2 v3 v4 v4 v3 12/1/2018