Summary

The qualification system uses different scripts and utilities to configure and check components during testing. This page lists and explains several of these scripts.

Main-Line Scripts

These scripts provide the backbone of the qualification system.

robot_checkout.py

Runs the "checkout" qualification test.

  • Makes sure all diagnostics OK.
    • A short whitelist of diagnostics is ignored (including "Realtime Controllers")
  • Makes sure we're calibrated.
  • Checks that correct MCB's are installed in component.
  • Checks that visualizer successful

visual_verifier.py

The "visualizer" uses rviz Python bindings to load and display an rviz window. This allows an operator to pass/fail a component based on visual cues.

Note: There is a simple regression test in test_pr2_self_test_gazebo that makes sure this utility runs properly.

hysteresis_sinesweep_plot.py

This script analyzes data from a joint_qualification_controllers/TestData message.

Note: There is a simple regression test in test_pr2_self_test_gazebo that makes sure this utility runs properly.

drop_test.py

Supervises drop tests of all components. Each drop test is given with a list of HTML files to display. These files are displayed during each drop to prompted the operator to drop the device-under-test correctly.

This script needs rewriting if any new features need to be added. It is impossible to unit test as written.

wrist_diff_analysis.py

This script analyzes data from a joint_qualification_controllers/WristDiffData message and returns pass or fail.

Note: There is a simple regression test in test_pr2_self_test_gazebo that makes sure this utility runs properly.

Configuration

Scripts are used for configuration of MCB's and WGE100 Camera's.

mcb_progconf.py

This utility programs and configures MCB's as a pre-startup script.

  • FW program
  • MCB Configuration (set MCB name with ethercat_hardware/motorconf

  • Check device association by making sure MCB's are assembled to device-under-test.
  • Check that boards have passed qualification.

Generally, MCB's must have their FW programmed, then power cycled, then configured to the proper position on the PR2.

This utility will report an error if any of the MCB's has failed qualification, fails FW programming, fails configuration, or is not properly associated to the device-under-test. Some checks can be disabled or enabled by command-line options.

MCB firmware is located in the qualification/fwprog directory.

confirm_conf.py

This utility warns users of any problems related to MCB programming (by mcb_progconf.py). It advertises the pr2_self_test_msgs/ConfirmConf. If any services are received, it will create a dialog box and warn the user.

This utility is separated from the mcb_progconf.py script so the MCB programming can run on a non-GUI machine.

add_note_to_shoulder.py

PR2 upperarm and shoulders are qualified and burned in together. This utility adds a note to the shoulder that it was tested with a particular upperarm.

Setup / Shutdown

power_board_cmd.py

This script commands the power board based on the "--cmd" command-line option. The power board serial number and power breaker is set on the ROS parameter server in the /qualification/power_board namespace.

Check Scripts

check_wge100_present.py

Runs discover to check if wge100 cameras are responding.

gripper_tip_sn.py

Loads gripper tip reference into Invent. Serial numbers are loaded as "ppsXXXX" where "XXXX" is the four-digit code on each sensor.

Component Testing

fingertip_verify.py

Verifies that a fingertip sensor is fully functional by forcing the operator to trigger all sensors.

fingertip_qualification.py

Tests that a fingertip sensor responds when plugged into a gripper.

hokuyo_test.py

Tests that hokuyo laser scanner gives valid data a specified ranges. Ranges are hard-coded into the script.

usb_serial.py

Device test of USB-serial adapter used in PR2.

run_selftest.py

This script allows any ROS diagnostic_msgs/SelfTest call to be converted into a qualification test.

prestartup_caller.py

This script allows any utility that can be run with "rosrun" to be used as a prestartup script. The return value of the command must be "0" for the command to pass.

test_caller.py

Like prestartup_caller.py, but converts the utility into a subtest.

Other

full_arm_holder.py

Holds the PR2 arm in place during counterbalance testing.

Wiki: qualification/Scripts (last edited 2010-11-17 20:48:02 by KevinWatts)