Пример #1
0
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}
Пример #2
0
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
Пример #3
0
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)
Пример #4
0
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)
Пример #5
0
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)
Пример #6
0
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
Пример #7
0
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"))
Пример #8
0
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
Пример #9
0
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"))
Пример #10
0
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"))
Пример #11
0
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")))
Пример #12
0
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")))
Пример #13
0
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
Пример #14
0
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
Пример #15
0
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)
Пример #16
0
def joint_limit_extension():
    """Give joint limit extension in degrees."""
    return float(
        qha_tools.read_parameter("multifuse_scenario4.cfg", "Parameters",
                                 "jointLimitExtension"))
Пример #17
0
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)
Пример #18
0
def test_wheels_limit():
    """It returns the limit error in radians per seconds."""
    return float(
        qha_tools.read_parameter("joint_enslavement.cfg", "Parameters",
                                 "TestWheelsLimit"))
Пример #19
0
def allowed_slip_angle():
    """Allowed slip angle during wait time."""
    slip_angle = qha_tools.read_parameter(CONFIG_FILE, "GeneralParameters",
                                          "AllowedSlipAngle")
    return float(slip_angle)
Пример #20
0
def cycle_number():
    """Cycling behavior iteration number."""
    number = qha_tools.read_parameter(CONFIG_FILE, "CyclingParameters",
                                      "NbCycles")

    return int(number)
Пример #21
0
def cycle_number():
    """It returns the test time in milliseconds [ms]"""
    return int(qha_tools.read_parameter("fan.cfg", "Parameters",
                                        "CycleNumber"))
Пример #22
0
def test_limit():
    """It returns the limit error in degrees."""
    return float(
        qha_tools.read_parameter("joint_enslavement.cfg", "Parameters",
                                 "TestLegLimit"))
Пример #23
0
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)
Пример #24
0
def test_time():
    """It returns the test time in milliseconds [ms]"""
    return int(
        qha_tools.read_parameter("joint_enslavement.cfg", "Parameters",
                                 "TestTime"))
Пример #25
0
def test_time():
    """Give test time."""
    return int(
        qha_tools.read_parameter("multifuse_scenario4.cfg", "Parameters",
                                 "TestTime"))