{"id":165,"date":"2016-11-19T02:35:37","date_gmt":"2016-11-19T02:35:37","guid":{"rendered":"http:\/\/mrsdprojects.ri.cmu.edu\/2016teamh\/?page_id=165"},"modified":"2017-05-13T05:57:11","modified_gmt":"2017-05-13T05:57:11","slug":"test-plan","status":"publish","type":"page","link":"https:\/\/mrsdprojects.ri.cmu.edu\/2016teamh\/test-plan\/","title":{"rendered":"Test Plan"},"content":{"rendered":"<p><strong>List of Tests<\/strong><\/p>\n<hr \/>\n<p><strong>1. Bench-top tests<\/strong><\/p>\n<p>All tests under this category will involve placing the skates on the bench and observing its behaviour and characteristics for various inputs and conditions.<\/p>\n<p><strong>1.1. Kinect-based velocity control<\/strong><\/p>\n<p><strong>Objective<\/strong>: To demonstrate modulation of skate velocity based on user distance from starting position.<\/p>\n<p><strong>Elements:<\/strong> Kinect user tracking, Steady-state position error controller<\/p>\n<p><strong>Equipment:<\/strong> Power and communication cabling, ground position markers<\/p>\n<p><strong>Procedure:<\/strong><\/p>\n<ol>\n<li>Mark ground locations at 2m, 3m, and 4m from the Kinect.<\/li>\n<li>Connect the power supply to the skate, and connect the Kinect and skate to the laptop.<\/li>\n<li>Run ROS launch file and starts rosbag recording.<\/li>\n<li>Direct user to stand ~3m from Kinect in calibration pose.<\/li>\n<li>Enter a 0.2 m\/s velocity target on laptop, wait 5 seconds for velocity to stabilize.<\/li>\n<li>Direct user to walk forward 1m, waits 5 seconds for velocity to stabilize.<\/li>\n<li>Direct user to walk backward 2m, waits 5 seconds for velocity to stabilize.<\/li>\n<li>Direct user to walk forward 1m, waits 5 seconds for velocity to stabilize.<\/li>\n<li>Enter 0 m\/s velocity target on the laptop.<\/li>\n<\/ol>\n<p><strong>Verification criteria:<\/strong><\/p>\n<ol>\n<li>rosbag data shows calculated encoder velocity of 0.2m\/s +\/- 10% at (5) and (8).<\/li>\n<li>rosbag data shows calculated encoder velocity of 0.25m\/s +\/- 10% at (6).<\/li>\n<li>rosbag data shows calculated encoder velocity of 0.15m\/s +\/- 10% at (7).<\/li>\n<\/ol>\n<p><strong>1.2. Force sensor circuit <\/strong><\/p>\n<p><strong>Objective:<\/strong> To achieve full calibration of the force sensor.<\/p>\n<p><strong>Elements:<\/strong> Force sensing Equipment: Torque wrench, standard weights<\/p>\n<p><strong>Procedure:<\/strong><\/p>\n<ol>\n<li>Pre-load the force sensors appropriately by tightening the bolts of the top plate using a torque wrench.<\/li>\n<li>Connect the Arduino to the laptop.<\/li>\n<li>Start the ROS node on the laptop.<\/li>\n<li>Load the force sensors with standard weights and calibrate the sensors for its full range.<\/li>\n<li>Repeat for each force sensor.<\/li>\n<li>Direct user to stand on both skates, and record the force values.<\/li>\n<li>Direct user to stand on each skate, one at a time. Record the force values.<\/li>\n<\/ol>\n<p><strong>Verification criteria:<\/strong> The sum of force values recorded in step 6 is a good indication of the user\u2019s weight, with an error bound of 10kg. The sum of force values on each skate recorded in step 7 is also accurate to within the same error bound.<\/p>\n<p><strong>1.3. PCB changeover <\/strong><\/p>\n<p><strong>Objective:<\/strong> To verify that the new PCBs does not have connection issues, is being powered correctly, and performs all functions satisfactorily.<\/p>\n<p><strong>Elements:<\/strong> PCB<\/p>\n<p><strong>Procedure:<\/strong><\/p>\n<ol>\n<li>Complete all connections between the PCBs and the various sensors, actuators, microcontroller, and power supply on both skates.<\/li>\n<li>Connect the microcontroller to the laptop, and switch the power supply on.<\/li>\n<li>Load the force sensors arbitrarily and record the readings.<\/li>\n<li>Swing the skates around arbitrarily and record the IMU readings.<\/li>\n<li>Specify arbitrary motor velocity values on ROS, and observe the motors.<\/li>\n<li>Load the motors arbitrarily by friction and observe the speed and current draw.<\/li>\n<li>Record the encoder readings.<\/li>\n<\/ol>\n<p><strong>Verification criteria:<\/strong> Readings from the force sensors, IMUs, and encoders are sensible. The ESCs are able to source enough current to maintain motor speed under loaded conditions.<\/p>\n<p><strong>1.4. Quick direction reversal <\/strong><\/p>\n<p><strong>Objective:<\/strong> To demonstrate that the new electronic speed controllers support trip protection requirements.<\/p>\n<p><strong>Elements:<\/strong> Electronic speed controllers (ESC), PCB to ESC interfaces<\/p>\n<p><strong>Procedure:<\/strong><\/p>\n<ol>\n<li>Connect the power supply to the skate, and connect the skate to the laptop.<\/li>\n<li>Load serial_motor_commander Arduino test code onto the skate.<\/li>\n<li>Start serial message logging.<\/li>\n<li>Command 30% forward speed with ramp and wait 5 seconds.<\/li>\n<li>Command 30% reverse speed with rapid ramp and wait 5 seconds.<\/li>\n<li>Command 0% with ramp and stop serial message logging.<\/li>\n<li>Start new serial message logging.<\/li>\n<li>Command 30% reverse speed with ramp and wait 5 seconds.<\/li>\n<li>\u00a0Command 30% forward speed with rapid ramp and wait 5 seconds.<\/li>\n<li>Command 0% with ramp and stop serial message logging.<\/li>\n<\/ol>\n<p><strong>Verification criteria: <\/strong><\/p>\n<ol>\n<li>Measured encoder velocity achieves forward limit to reverse limit within 100ms.<\/li>\n<li>Measured encoder velocity achieves reverse limit to forward limit within 100ms.<\/li>\n<\/ol>\n<hr \/>\n<p><strong>2. User tests <\/strong><\/p>\n<p>This family of tests involves a user wearing the skates and performing some kind of motion, and is aimed at demonstrating a specific capability. The logistics for this class of tests has been listed in Section 2 of this document.<\/p>\n<p><strong>2.1. Force sensor robustness <\/strong><\/p>\n<p><strong>Objective:<\/strong> To ensure that the wire connections from the force sensors are satisfactorily robust.<\/p>\n<p><strong>Elements:<\/strong> Physical skates<\/p>\n<p><strong>Procedure:<\/strong><\/p>\n<ol>\n<li>Strap the skates securely to the user\u2019s feet.<\/li>\n<li>Direct the user to walk around for 15 seconds (with the skates powered off).<\/li>\n<li>Connect the Arduino to the laptop, and read the force sensors.<\/li>\n<li>Repeat with two different users, with varying shoe sizes.<\/li>\n<\/ol>\n<p><strong>Verification criteria:<\/strong> After each user finishes walking, the force sensors show sensible readings when connected to the laptop.<\/p>\n<p><strong>2.2. Kinect-based velocity control <\/strong><\/p>\n<p><strong>Objective:<\/strong> To demonstrate low-rate user centering sufficient for force-based control steady-state error.<\/p>\n<p><strong>Elements:<\/strong> Kinect user tracking, Steady-state position error controller<\/p>\n<p><strong>Equipment:<\/strong> Power and communication cabling, ground position markers<\/p>\n<p><strong>Procedure<\/strong>:<\/p>\n<ol>\n<li>Mark ground locations at 2m and 3m from the Kinect.<\/li>\n<li>Connect the power supply to both skates, and connect the Kinect and skates to the laptop.<\/li>\n<li>Strap the skates securely to the user\u2019s feet.<\/li>\n<li>Run the ROS launch file.<\/li>\n<li>Direct the user to 2m from the Kinect in the calibration pose.<\/li>\n<li>Enter a 0.2 m\/s velocity target on laptop, direct the user to begins walking.<\/li>\n<li>Direct the user to walk for 20 seconds to train for constant velocity walking at the 2m position.<\/li>\n<li>Command a fade of the starting position from 2m to 3m from the Kinect.<\/li>\n<li>Direct the user to continue walking at a constant velocity until reaching the 3m position.<\/li>\n<li>Direct the user to continue walking at a constant velocity for 10 seconds.<\/li>\n<li>Command a fade of the starting position from 3m to 2m from the Kinect.<\/li>\n<li>Direct the user to continue walking at a constant velocity until reaching the 2m position.<\/li>\n<li>Direct the user to continue walking at a constant velocity for 10 seconds.<\/li>\n<li>Enter 0 m\/s velocity target on the laptop.<\/li>\n<\/ol>\n<p><strong>Verification criteria: <\/strong><\/p>\n<ol>\n<li>The user is re-centered in steps (10) and (13) in less than 30 seconds.<\/li>\n<li>The user does not overshoot the positions in steps (11) and (14) by more than 0.25m.<\/li>\n<\/ol>\n<p><strong>2.3. Offline force control <\/strong><\/p>\n<p><strong>Objective:<\/strong> To demonstrate valid identification of walking velocity and stances phases.<\/p>\n<p><strong>Elements:<\/strong> Force sensor calibration, walking velocity estimation, stance phase state machine<\/p>\n<p><strong>Location:<\/strong> Wean Hall 1324<\/p>\n<p><strong>Equipment:<\/strong> Camcorder and tripod, instrumented split-belt treadmill, motion capture system<\/p>\n<p><strong>Procedure:<\/strong><\/p>\n<ol>\n<li>Setup treadmill per lab instructions.<\/li>\n<li>Calibrate motion capture system per lab instructions.<\/li>\n<li>Setup camcorder on tripod to capture tester on treadmill.<\/li>\n<li>Connect the power supply to both skates, and connect the skates to the laptop.<\/li>\n<li>Attach a waist location marker on the user, and secure the skates to the user\u2019s feet.<\/li>\n<li>Run the ROS launch file.<\/li>\n<li>Before each test, start a rosbag recording and the camcorder recording, and direct the user to perform a heel strike to synchronize the data sets.<\/li>\n<li>Direct the user to lean to forward limits, lean to backward limits, and return to neutral.<\/li>\n<li>Direct the user to pick up a foot, lean to forward limits, take a single step.<\/li>\n<li>Direct the user to take two natural, continuous steps.<\/li>\n<li>Repeat steps (7) \u2013 (9) three times.<\/li>\n<li>Set a 0.2m\/s treadmill velocity.<\/li>\n<li>Direct the user to walk continuously for 20 seconds.<\/li>\n<li>Set a stationary treadmill velocity.<\/li>\n<li>Repeat steps (11) &#8211; (13) twice each for 0.2m\/s, 0.35m\/s, and 0.5m\/s.<\/li>\n<li>Perform lab equipment shutdown and clean up.<\/li>\n<li>Process treadmill and motion capture data.<\/li>\n<\/ol>\n<p><strong>Verification criteria: <\/strong><\/p>\n<ol>\n<li>Classification of single stance and double stance in ROS corresponds to automatic labeling using treadmill data and manual labeling using camcorder video.<\/li>\n<li>Classification of in place and in motion in ROS corresponds to automatic labeling using treadmill data and manual labeling using camcorder video.<\/li>\n<li>Walking velocity estimates in steps (9) \u2013 (15) correspond to measured velocities given treadmill target speed and motion capture position by +\/- 10%.<\/li>\n<\/ol>\n<p><strong>2.4. Adaptive control <\/strong><\/p>\n<p><strong>Objective:<\/strong> To validate the state diagram and test the control logic using outputs from sensors deployed currently viz. the Kinect, force sensors, and the IMU.<\/p>\n<p><strong>Elements:<\/strong> Kinect user tracking, steady-state position error controller, walking velocity estimation, stance phase state machine<\/p>\n<p><strong>Procedure:<\/strong><\/p>\n<ol>\n<li>Strap the skates securely to the user\u2019s feet.<\/li>\n<li>Launch the ROS Master.<\/li>\n<li>Direct the user to transition from stance to a step, and then to walking for 15 seconds.<\/li>\n<li>Direct the user to come to a halt.<\/li>\n<\/ol>\n<p><strong>Verification criteria:<\/strong> The user\u2019s mean position in the direction of walking is maintained in the specified time, within an error bound of +\/- 1m.<\/p>\n<p><strong>2.5. E-Stop <\/strong><\/p>\n<p><strong>Objective<\/strong>: To allow the user to bring the system to a halt using a hand-held emergency stop button.<\/p>\n<p><strong>Elements:<\/strong> Physical E-Stop button, low-level Arduino controller, Arduino-ROS interface<\/p>\n<p><strong>Equipment:<\/strong> E-Stop button<\/p>\n<p><strong>Procedure:<\/strong><\/p>\n<ol>\n<li>Strap the skates securely to the user\u2019s feet.<\/li>\n<li>Launch the ROS Master.<\/li>\n<li>Direct the user to hold down the E-Stop button to start the cycle.<\/li>\n<li>Allow the user to walk until stable speed is attained.<\/li>\n<li>Direct the user to release the E-Stop button to stop the cycle.<\/li>\n<\/ol>\n<p><strong>Verification criteria:<\/strong> The skates ramp up to the target velocity only after the user holds down the E-Stop button, and continues to run only as long as the user is holding down the button. The skates ramp down to a halt when the user releases the button.<\/p>\n<p><strong>2.6. VR and adaptive control <\/strong><\/p>\n<p><strong>Objective:<\/strong> To achieve the same capabilities as in 4.2.4, while immersing the user in virtual reality and ensuring user comfort.<\/p>\n<p><strong>Elements:<\/strong> Virtual reality integration, user comfort<\/p>\n<p><strong>Procedure:<\/strong><\/p>\n<ol>\n<li>Strap the skates securely to the user\u2019s feet.<\/li>\n<li>Secure the head-mounted display (HMD) to the user.<\/li>\n<li>Display the virtual reality environment on the VR headset and on a projector.<\/li>\n<li>Direct the user to transition from stance to a step, and then to walking for 15 seconds.<\/li>\n<li>Translate the viewpoint in virtual reality as a function of the user\u2019s gait.<\/li>\n<li>Reflect the translation of the viewpoint in the HMD and on the projector.<\/li>\n<\/ol>\n<p><strong>Verification criteria:<\/strong> The user is able to walk for the duration specified without feeling any major discomfort. The translation of the viewpoint scales realistically with the user\u2019s walking speed and pattern.<\/p>\n<hr \/>\n<p><strong>3. VR test<\/strong><\/p>\n<p><strong>Objective:<\/strong> To display a virtual world and on the head-mounted display (HMD), and translate the viewpoint in the virtual world as a function of user velocity through ROS.<\/p>\n<p><strong>Elements:<\/strong> ROS-VR interface, network interface<\/p>\n<p><strong>Location:<\/strong> The Cage \/ MRSD Lab (NSH B-level)<\/p>\n<p><strong>Equipment:<\/strong> HMD, PC \/ laptop (VR), laptop (ROS master) Personnel: 1 team member<\/p>\n<p><strong>Procedure:<\/strong><\/p>\n<ol>\n<li>Start the ROS program to establish a network connection between the laptop (ROS master) and the PC \/ laptop (VR).<\/li>\n<li>Display the virtual environment in the HMD and on the projector.<\/li>\n<li>Set user velocity on ROS.<\/li>\n<li>Observe the change in the viewpoint velocity on the display.<\/li>\n<li>Change the user velocity to different values, and observe the changes to the viewpoint velocity on the display.<\/li>\n<\/ol>\n<p><strong>Verification criteria:<\/strong> The viewpoint velocity maps realistically to the input user velocity command.<\/p>\n<hr \/>\n<p><strong>Spring Validation Experiment <\/strong><\/p>\n<p><strong>Objective:<\/strong> To demonstrate the full capabilities of the powered skates and achieve immersive natural room-scale locomotion in a virtual environment.<\/p>\n<p><strong>Elements:<\/strong> Integrated system<\/p>\n<p><strong>Location:<\/strong> NSH 3002 Equipment: (Same as a routine user test)<\/p>\n<p><strong>Personnel:<\/strong> (Same as a routine user test)<\/p>\n<p><strong>Procedure:<\/strong><\/p>\n<ol>\n<li>Direct the user to walk from one end of the room to the other at a normal pace, and measure the number of steps taken.<\/li>\n<li>Secure the skates to the user\u2019s feet, and the head-mounted display (HMD) to the user\u2019s head. Secure the E-Stop to the user\u2019s body.<\/li>\n<li>Start the ROS master.<\/li>\n<li>Display the virtual world in the user\u2019s HMD and on the projector screen.<\/li>\n<li>Direct the user to start exploring the virtual world at a limit of 0.5 m\/s.<\/li>\n<li>Count the number of steps taken by the user for 2 minutes.<\/li>\n<li>After 2 minutes, direct the user to stop and end the demo.<\/li>\n<\/ol>\n<p><strong>Verification criteria: <\/strong><\/p>\n<ol>\n<li>The number of steps taken by the user when using the skates is at least 5 times the number of steps taken to walk across the room.<\/li>\n<li>The user\u2019s final position at the end of the test in the direction of walking is not more than 1m away from the start position.<\/li>\n<li>The user does not feel any major discomfort due to the VR display.<\/li>\n<li>The user is able to stand, step, and walk for the duration of the test without losing balance.<\/li>\n<\/ol>\n<hr \/>\n<p><strong>Fall Validation Experiment (successfully completed)<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-166\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teamh\/wp-content\/uploads\/sites\/19\/2016\/11\/FVE.png\" alt=\"fve\" width=\"729\" height=\"566\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teamh\/wp-content\/uploads\/sites\/19\/2016\/11\/FVE.png 729w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teamh\/wp-content\/uploads\/sites\/19\/2016\/11\/FVE-300x233.png 300w\" sizes=\"auto, (max-width: 729px) 100vw, 729px\" \/><\/p>\n<p><strong>Spring\u00a0Validation Experiment (successfully completed)<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-484 size-full aligncenter\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teamh\/wp-content\/uploads\/sites\/19\/2016\/11\/SVETatti.png\" alt=\"\" width=\"552\" height=\"749\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teamh\/wp-content\/uploads\/sites\/19\/2016\/11\/SVETatti.png 552w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teamh\/wp-content\/uploads\/sites\/19\/2016\/11\/SVETatti-221x300.png 221w\" sizes=\"auto, (max-width: 552px) 100vw, 552px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>List of Tests 1. Bench-top tests All tests under this category will involve placing the skates on the bench and observing its behaviour and characteristics for various inputs and conditions. 1.1. Kinect-based velocity control Objective: To demonstrate modulation of skate velocity based on user distance from starting position. Elements: Kinect user tracking, Steady-state position error&hellip;&nbsp;<\/p>\n","protected":false},"author":85,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-fullwidth.php","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"class_list":["post-165","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2016teamh\/wp-json\/wp\/v2\/pages\/165","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2016teamh\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2016teamh\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2016teamh\/wp-json\/wp\/v2\/users\/85"}],"replies":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2016teamh\/wp-json\/wp\/v2\/comments?post=165"}],"version-history":[{"count":18,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2016teamh\/wp-json\/wp\/v2\/pages\/165\/revisions"}],"predecessor-version":[{"id":485,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2016teamh\/wp-json\/wp\/v2\/pages\/165\/revisions\/485"}],"wp:attachment":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2016teamh\/wp-json\/wp\/v2\/media?parent=165"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}