Esempio n. 1
0
def robot_to_sdf(robot, name="test_bot", plugin_controller=None):
    model = builder.get_sdf_model(robot,
                                  plugin_controller,
                                  update_rate=UPDATE_RATE,
                                  name=name)
    sdf = SDF()
    sdf.add_element(model)
    return sdf
Esempio n. 2
0
def get_analysis_robot(robot, builder):
    """
    Creates an SDF model suitable for analysis from a robot object
    and a builder.
    :param robot:
    :type robot: Robot
    :param builder:
    :type builder: BodyBuilder
    :return:
    """
    model = builder.get_sdf_model(robot, analyzer_mode=True, controller_plugin=None, name="analyze_bot")
    model.remove_elements_of_type(Sensor, recursive=True)
    sdf = SDF()
    sdf.add_element(model)
    return sdf
Esempio n. 3
0
def get_simulation_robot(robot, name, builder, conf):
    """
    :param robot:
    :param name:
    :param builder:
    :param conf: Config
    :return:
    """
    model = builder.get_sdf_model(robot, controller_plugin="libtolrobotcontrol.so",
                                  update_rate=conf.controller_update_rate, name=name)

    apply_surface_parameters(model)

    sdf = SDF()
    sdf.add_element(model)
    return sdf
Esempio n. 4
0
def get_simulation_robot(robot, name, builder, conf):
    """
    :param robot:
    :param name:
    :param builder:
    :param conf: Config
    :return:
    """
    model = builder.get_sdf_model(robot, controller_plugin="libtolrobotcontrol.so",
                                  update_rate=conf.controller_update_rate, name=name)

    apply_surface_parameters(model)

    sdf = SDF()
    sdf.add_element(model)
    return sdf
Esempio n. 5
0
def get_analysis_robot(robot, builder):
    """
    Creates an SDF model suitable for analysis from a robot object
    and a builder.
    :param robot:
    :type robot: Robot
    :param builder:
    :type builder: BodyBuilder
    :return:
    """
    model = builder.get_sdf_model(robot,
                                  analyzer_mode=True,
                                  controller_plugin=None,
                                  name="analyze_bot")
    model.remove_elements_of_type(Sensor, recursive=True)
    sdf = SDF()
    sdf.add_element(model)
    return sdf
Esempio n. 6
0
def get_simulation_robot(robot, name, builder, conf, battery_charge=None):
    """
    :param robot:
    :param name:
    :param builder:
    :param conf: Config
    :param battery_charge:
    :return:
    """
    battery = None if battery_charge is None else BasicBattery(battery_charge)
    brain_conf = None if not hasattr(conf, 'brain_conf') else conf.brain_conf

    model = builder.get_sdf_model(robot=robot,
                                  controller_plugin="libtolrobotcontrol.so",
                                  update_rate=conf.controller_update_rate,
                                  name=name,
                                  battery=battery,
                                  brain_conf=brain_conf)

    apply_surface_parameters(model, conf.world_step_size)

    sdf = SDF()
    sdf.add_element(model)
    return sdf
Esempio n. 7
0
            Quaternion.from_rpy(0, math.radians(-incline),
                                math.radians(90 * x)))
        model.add_element(steps.copy())

    return model


#generate a grid of boxes and write to file
sdf = SDF()
model_name = "boxes_grid"
model = gen_boxes(model_name,
                  dimensions=6,
                  spacing=0.3,
                  size=0.04,
                  height=0.02)
sdf.add_element(model)
write_model(model_name, sdf)

#generate steps
sdf = SDF()
model_name = "exp2_steps"
model = gen_steps(model_name, incline=4, offset=0.8)
#model.set_position(Vector3(0,0,-0.041)) #inaccurate height compensation due to the incline - does not seem to affect the model?
sdf.add_element(model)
write_model(model_name, sdf)

#different boxes
sdf = SDF()
model_name = "exp2_boxes"
model = gen_boxes(model_name,
                  dimensions=6,
Esempio n. 8
0
      id: Wheel
      type: Wheel
      params:
        red: 0.0
        green: 1.0
        blue: 0.0
    5:
      id: Wheel2
      type: Wheel
      params:
        red: 0.0
        green: 1.0
        blue: 0.0
brain:
  params:
    Wheel-out-0:
      type: Oscillator
      period: 3
    Wheel2-out-0:
      type: Oscillator
      period: 3
'''

bot = yaml_to_robot(body_spec, brain_spec, bot_yaml)
builder = RobotBuilder(BodyBuilder(body_spec), NeuralNetBuilder(brain_spec))
model = builder.get_sdf_model(bot, "libtolrobotcontrol.so")
model.translate(Vector3(0, 0, 0.5))
sdf = SDF()
sdf.add_element(model)
print(str(sdf))
Esempio n. 9
0
def robot_to_sdf(robot, name="test_bot", plugin_controller=None):
    model = builder.get_sdf_model(robot, plugin_controller, update_rate=UPDATE_RATE, name=name)
    sdf = SDF()
    sdf.add_element(model)
    return sdf