220 likes | 354 Vues
This work explores motion planning for retrieval agents within a defined workspace, utilizing a pre-computed roadmap to facilitate exploration and task fulfillment. The goal is for agents to visit all nodes and edges at least once while retrieving scattered particles. Agents communicate indirectly via roadmap encoding, lacking direct communication. The paper details strategies for exploration and homing, adaptive edge weight updates, and behavioral steering, employing techniques akin to ant colony optimization and dynamics based on physical modeling to enhance efficiency.
E N D
Motion Planning for Retrieval Agents • Relevant Papers • Better Group Behaviors using Rule-Based Roadmaps • O. Burchan Bayazit, Jyh-Ming Lien, and Nancy M. Amato • Steering Behaviors for Autonomous Characters • Craig W. Reynolds
Motion Planning for Agents • Objective: Given a known workspace and a pre-computed roadmap that ‘covers’ the space • Visit every node and edge at least once • Retrieve all scattered particles
Assumptions • Agents have no prior knowledge of particle locations • Agents have omni-directional line of sight vision capabilities (not constrained by distance or angle) • There is no direct communication between agents but they communicate indirectly by encoding information in the roadmap • Global information • Node Positions • Geometry and location of obstacles
Roadmap • Roadmap contains a set of nodes from which entire polygonal workspace is visible • Nodes represent feasible agent configurations • Edges represent feasible sub-paths • Roadmap is adaptive; edge weights are updated by agents
Agent Strategies • Exploring • Objective is to traverse the roadmap until it finds a particle • Homing • Objective is to carry a discovered particle to a drop-off location
Algorithms • Exploring Strategy • Each agent moves independently • All edges have equal weights to start with • At each node, an agent chooses an edge to follow based on the weights of the node’s attached edges. Similar to ant colony optimization, guarantees all nodes eventually get visited • The weight of the chosen edge is increased
Algorithms • Exploring Strategy • AgentVar Node nextNode; • AgentVar Edge edge; • edge = node.probMinEdge(); • nextNode = edge.end; • agent.goal = nextNode.position; • edge.weight = edge.weight+1;
Algorithms • Homing Strategy • Agent accesses global data to retrieve a path from its current position to the drop-off location
Algorithms • Homing Strategy • AgentVar LinkedList path; • AgentVar Node nextNode; • AgentVar Node currentNode; • AgentVar Edge edge; • Path = global.getPath(thisPoint, dropOff) • while(!path.empty()) { • nextNode = path.getNextNode(); • edge = currentNode.getEdge(nextNode); • agent.goal = nextNode.position;
Velocity-Aligned Local Coordinate Space Side Vector Forward Vector
Agent: Physical Model • Based on a point mass approximation • Model Properties: • mass scalar • position vector • velocity vector • max_force scalar • max_speed scalar • orientation 2 basis vectors
Agent Dynamics • Based on forward Euler integration method • At each time step behaviorally determined steering forces (limited by max_force) are applied to model
Agent Dynamics • steering_force = truncate (steering_direction, max_force) • acceleration = steering_force / mass • velocity = truncate (velocity + acceleration, max_speed) • position = position + velocity • newForward = normalize(velocity) • newSide.x = newForward.y • newSide.y = newForward.x;
Steering Behaviors • Seeking (targeting a goal) • Separation (from other agents) • Obstacle Avoidance
Seeking Steering Behavior • desired_velocity = normalize (target - position) * max_speed • steering = desired_velocity - velocity
Separation Steering Behavior • Agents considers agents in its neighborhood • Neighborhood is characterized by distance (defines when two agents are nearby) and angle (defines agent’s field of view) • Agents outside neighborhood are not considered
Separation Steering Behavior • Compute repulsion force for each agent in neighborhood • repulsionForce = (-1/r)*normalize (neighborPosition – position) • Sum up repulsion forces from all neighbors • steeringForce += repulstionForce
Obstacle Avoidance Steering • Implemented when an obstacle lies in the path of an agent (range specified by a ‘safe_distance’ parameter) • Goal is to maintain an imaginary rectangular free space in front of the agent • On encountering an obstacle, agent steers to the nearest visible node that lies in its general direction
Combining Behaviors • At each time step, select (in pre-determined sequence) one steering component to apply • Apply relevant weighting factors, max_force and max_speed, to each steering component