Пример #1
0
def dump_body(body, fixed=False):
    print('Body id: {} | Name: {} | Rigid: {} | Fixed: {}'.format(
        body, get_body_name(body), is_rigid_body(body), is_fixed_base(body)))
    for joint in get_joints(body):
        if fixed or is_movable(body, joint):
            print(
                'Joint id: {} | Name: {} | Type: {} | Circular: {} | Limits: {}'
                .format(joint, get_joint_name(body, joint),
                        JOINT_TYPES[get_joint_type(body, joint)],
                        is_circular(body,
                                    joint), get_joint_limits(body, joint)))
    link = NULL_ID
    print('Link id: {} | Name: {} | Mass: {} | Collision: {} | Visual: {}'.
          format(link, get_base_name(body), get_mass(body),
                 len(get_collision_data(body, link)),
                 NULL_ID))  # len(get_visual_data(body, link))))
    for link in get_links(body):
        joint = parent_joint_from_link(link)
        joint_name = JOINT_TYPES[get_joint_type(body, joint)] if is_fixed(
            body, joint) else get_joint_name(body, joint)
        print(
            'Link id: {} | Name: {} | Joint: {} | Parent: {} | Mass: {} | Collision: {} | Visual: {}'
            .format(link, get_link_name(body, link), joint_name,
                    get_link_name(body, get_link_parent(body, link)),
                    get_mass(body, link), len(get_collision_data(body, link)),
                    NULL_ID))  # len(get_visual_data(body, link))))
Пример #2
0
def link_from_name(body, name):
    from pybullet_planning.interfaces.robots.body import get_base_name
    if name == get_base_name(body):
        return BASE_LINK
    for link in get_joints(body):
        if get_link_name(body, link) == name:
            return link
    raise ValueError(body, name)
Пример #3
0
def is_rigid_body(body):
    for joint in get_joints(body):
        if is_movable(body, joint):
            return False
    return True