def holding_cone(): """ Return all holding cone parameters necessary for tests. [Example of use] hip_front_max_angle = holding_cone["HipPitch"]["Positive"] """ hip_positive_angle = qha_tools.read_parameter(CONFIG_FILE, "ConeCriterion", "HipPositive") hip_negative_angle = qha_tools.read_parameter(CONFIG_FILE, "ConeCriterion", "HipNegative") knee_positive_angle = qha_tools.read_parameter(CONFIG_FILE, "ConeCriterion", "KneePositive") knee_negative_angle = qha_tools.read_parameter(CONFIG_FILE, "ConeCriterion", "KneeNegative") hip_cone_dic = { "Positive": float(hip_positive_angle), "Negative": float(hip_negative_angle) } knee_cone_dic = { "Positive": float(knee_positive_angle), "Negative": float(knee_negative_angle) } return {"HipPitch": hip_cone_dic, "KneePitch": knee_cone_dic}
def step(): hip_step = qha_tools.read_parameter(CONFIG_FILE, "GeneralParameters", "HipStep") knee_step = qha_tools.read_parameter(CONFIG_FILE, "GeneralParameters", "KneeStep") step_dict = {"HipPitch": float(hip_step), "KneePitch": float(knee_step)} return step_dict
def head_behavior_number(): """Cycle number for head motion in head sensors false positive test""" cycle_number = \ qha_tools.read_parameter(CONFIG_FILE_FALSE_POSITIVE, "GeneralParameters", "HeadCycleNumber") return int(cycle_number)
def test_time_fp(): """Defines time hand capacitive sensor false positives are tested.""" time = \ qha_tools.read_parameter(CONFIG_FILE_FALSE_POSITIVE, "GeneralParameters", "WristTestTime") return float(time)
def time_to_touch(): """Defines times user needs to touch capacitive sensor.""" time_touch = \ qha_tools.read_parameter(CONFIG_FILE_DETECTION, "GeneralParameters", "TimeToTouch") return float(time_touch)
def test_objects_dico(request, result_base_folder, dcm, mem): """ Create the appropriate objects for each joint. It logs the informations into a dictionnary and save the data into a file after each joint test. """ joint_position_actuator = subdevice.JointPositionActuator( dcm, mem, request.param) joint_position_sensor = subdevice.JointPositionSensor( dcm, mem, request.param) joint_test_limit = qha_tools.read_parameter("joint_enslavement.cfg", "JointsLimits", request.param) logger = qha_tools.Logger() def fin(): """Method executed after a joint test.""" result_file_path = "/".join([ result_base_folder, joint_position_actuator.subdevice_type, "_".join([joint_position_actuator.short_name, str(logger.flag)]) ]) + ".csv" logger.log_file_write(result_file_path) request.addfinalizer(fin) # creating a dictionnary with all the objects dico_object = { "jointActuator": joint_position_actuator, "jointSensor": joint_position_sensor, "logger": logger, "joint_test_limit": float(joint_test_limit) } return dico_object
def posture_speed_fraction(): """ @returns : Speed fraction in order to go to postures. @rtype : float """ return float( qha_tools.read_parameter(CONFIG_FILE, "GeneralParameters", "InitPostureSpeedFraction"))
def threshold(): """ Return a dictionnary corresponding to the threshold speed corresponding to half of fan nominal speed. """ left_fan_threshold = int( qha_tools.read_parameter("fan.cfg", "Threshold", "LeftFanThreshold")) right_fan_threshold = int( qha_tools.read_parameter("fan.cfg", "Threshold", "RightFanThreshold")) middle_fan_threshold = int( qha_tools.read_parameter("fan.cfg", "Threshold", "MiddleFanThreshold")) threshold_dict = { "LeftFan": left_fan_threshold, "RightFan": right_fan_threshold, "MiddleFan": middle_fan_threshold } return threshold_dict
def limit_battery_charge(): """ @returns : Battery minimum state of charde allowed to pass the test. @rtype : float """ return float( qha_tools.read_parameter(CONFIG_FILE, "GeneralParameters", "LimitBatteryCharge"))
def ack_nack_ratio(): """ @returns : Max nack/ack ratio accepted for the robot board. @rtype : float """ return float( qha_tools.read_parameter(CONFIG_FILE, "GeneralParameters", "AckNackRatio"))
def obstacle_distance(): """ @returns : Distance in meters. @rtype : float If the robot detects an obstacle closer than this distance, it does not rotate around itself. """ return (float( qha_tools.read_parameter(CONFIG_FILE, "GeneralParameters", "ObstacleDistance")))
def offset_protection(): """ @returns : Offset to protect the robot from its mechanical stops if the calibration is not perfect. @rtype : float """ return radians( float( qha_tools.read_parameter(CONFIG_FILE, "GeneralParameters", "Offset")))
def parameters(): """It returns the test parameters""" test_time = int( qha_tools.read_parameter("temperature_protection.cfg", "Parameters", "TestTime")) test_time_limit = int( qha_tools.read_parameter("temperature_protection.cfg", "Parameters", "TestTimeLimit")) limit_extension = int( qha_tools.read_parameter("temperature_protection.cfg", "Parameters", "LimitExtension")) limit_factor_sup = float( qha_tools.read_parameter("temperature_protection.cfg", "Parameters", "LimitFactorSup")) limit_factor_inf = float( qha_tools.read_parameter("temperature_protection.cfg", "Parameters", "LimitFactorInf")) sa_nb_points = int( qha_tools.read_parameter("temperature_protection.cfg", "Parameters", "SlidingAverageNbPoints")) # creating parameters dictionnary dico_to_return = { "test_time": test_time, "test_time_limit": test_time_limit, "limit_extension": limit_extension, "limit_factor_sup": limit_factor_sup, "limit_factor_inf": limit_factor_inf, "sa_nb_points": sa_nb_points } return dico_to_return
def initial_angle(): """Returns initial angles in degrees""" hip_angle_degrees = qha_tools.read_parameter(CONFIG_FILE, "GeneralParameters", "HipInitialAngle") knee_angle_degrees = qha_tools.read_parameter(CONFIG_FILE, "GeneralParameters", "KneeInitialAngle") hip_init_angle_dic = { "Positive": -float(hip_angle_degrees), "Negative": float(hip_angle_degrees) } knee_init_angle_dic = { "Positive": -float(knee_angle_degrees), "Negative": float(knee_angle_degrees) } initial_angle_dict = { "HipPitch": hip_init_angle_dic, "KneePitch": knee_init_angle_dic } return initial_angle_dict
def wait_between_two_tests(request, dcm, mem, rest_pos, stiffness_on, stiffness_off): """Wait between two tests.""" time_to_wait = qha_tools.read_parameter(CONFIG_FILE, "GeneralParameters", "TimeBetweenTwoTests") def fin(): """Wait between two tests.""" subdevice.multiple_set(dcm, mem, stiffness_on, wait=True) subdevice.multiple_set(dcm, mem, rest_pos, wait=True) subdevice.multiple_set(dcm, mem, stiffness_off, wait=True) logging.info("Waiting " + str(time_to_wait) + " s") time.sleep(float(time_to_wait)) request.addfinalizer(fin)
def joint_limit_extension(): """Give joint limit extension in degrees.""" return float( qha_tools.read_parameter("multifuse_scenario4.cfg", "Parameters", "jointLimitExtension"))
def allowed_slip_number(): """Allowed slip number for each couple of joint-direction""" slip_number = qha_tools.read_parameter(CONFIG_FILE, "GeneralParameters", "AllowedSlipNumber") return int(slip_number)
def test_wheels_limit(): """It returns the limit error in radians per seconds.""" return float( qha_tools.read_parameter("joint_enslavement.cfg", "Parameters", "TestWheelsLimit"))
def allowed_slip_angle(): """Allowed slip angle during wait time.""" slip_angle = qha_tools.read_parameter(CONFIG_FILE, "GeneralParameters", "AllowedSlipAngle") return float(slip_angle)
def cycle_number(): """Cycling behavior iteration number.""" number = qha_tools.read_parameter(CONFIG_FILE, "CyclingParameters", "NbCycles") return int(number)
def cycle_number(): """It returns the test time in milliseconds [ms]""" return int(qha_tools.read_parameter("fan.cfg", "Parameters", "CycleNumber"))
def test_limit(): """It returns the limit error in degrees.""" return float( qha_tools.read_parameter("joint_enslavement.cfg", "Parameters", "TestLegLimit"))
def wait_time(): """Wait time in seconds in a defined position.""" to_wait = qha_tools.read_parameter(CONFIG_FILE, "GeneralParameters", "WaitTime") return float(to_wait)
def test_time(): """It returns the test time in milliseconds [ms]""" return int( qha_tools.read_parameter("joint_enslavement.cfg", "Parameters", "TestTime"))
def test_time(): """Give test time.""" return int( qha_tools.read_parameter("multifuse_scenario4.cfg", "Parameters", "TestTime"))