コード例 #1
0
 def fn(q2):
     facts = []
     for q1 in vertices:
         (t, ) = plan_motion(q1, q2)
         facts.extend([
             ('Motion', q1, t, q2),
             ('Traj', t),
         ])
     vertices.append(q2)
     return WildOutput(facts=facts)
コード例 #2
0
def cfree_motion_fn(outputs, certified):
    assert (len(outputs) == 1)
    q0, q1 = None, None
    placed = {}
    for fact in certified:
        if fact[0] == 'motion':
            q0, _, q1 = fact[1:]
        if fact[0] == 'not':
            _, b, p = fact[1][1:]
            placed[b] = p
    return plan_motion(q0, q1)
コード例 #3
0
def cfree_motion_fn(outputs, certified):
    if not outputs:
        return None
    assert (len(outputs) == 1)
    q0, q1 = None, None
    placed = {}
    for fact in certified:
        if fact[0] == 'motion':
            if q0 is not None:
                return None
            q0, _, q1 = fact[1:]
        if fact[0] == 'not':
            _, b, p = fact[1][1:]
            placed[b] = p
    if q0 is None:
        t = []
        return (t, )
    return plan_motion(q0, q1)
コード例 #4
0
def cfree_motion_fn(outputs, facts, hint={}):
    if not outputs:
        return None
    assert (len(outputs) == 1)
    # TODO: handle connected components
    q0, q1 = None, None
    placed = {}
    for fact in facts:
        if fact[0] == 'motion':
            if q0 is not None:
                return None
            q0, _, q1 = fact[1:]
        if fact[0] == NOT:
            _, b, p = fact[1][1:]
            placed[b] = p
    if q0 is None:
        t = []
        return (t, )
    return plan_motion(q0, q1)