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
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
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
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
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,
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))