blob: cfe6354275acaf14640f591adedf21d5d62fe04c [file] [log] [blame]
# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import sys
from touchbotII import Touchbot, Device, PositionArg
""" This is a gesture for Touchbot II moves the hand above the touchpad
When you run this gesture the robot will lift up clear of where is is,
move to to a position over the center of the touchpad or the fingertip
nest and then slowly lower down until it is hovering just over it.
This is used to get the robot hand into a safe place to run other
gestures from.
Usage:
python reset.py device.p (pad|nest) speed
Example:
python reset.py link.p pad 20
python reset.py lumpy.p nest 10
"""
try:
# Parse the command line arguments
device = Device(sys.argv[1])
destination = sys.argv[2].lower()
speed = int(sys.argv[3])
except:
print 'Usage: python %s device.p (pad|nest) speed' % __file__
print 'Example:'
print ' python reset.py link.p pad 5'
sys.exit(1)
# Connect to the robot and configure the profile to use the speed
bot = Touchbot()
if not bot.IsLegalSpeed(speed):
print 'Error %d is not a legal speed value (1-100)' % speed
sys.exit(1)
if destination not in ['pad', 'nest']:
print 'Error "%s" is not a legal destination' % destination
sys.exit(1)
bot.SetSpeed(speed)
bot.SetFingerStates([0, 0, 0, 0])
# Find the waypoints that we will be using
cur_pos = bot.GetCurrentPosition()
above_cur_pos = bot.AddSafetyClearance(cur_pos)
if destination == 'pad':
dest = device.RelativePosToAbsolutePos((0.5, 0.5))
else:
dest = bot.nest_positions[0]
above_dest = bot.AddSafetyClearance(dest)
# Lift up, before moving over the destination and slowly lowering down
bot.SetCartesian(above_cur_pos)
bot.SetCartesian(above_dest)
bot.SetSpeed(Touchbot.SPEED_SLOW)
bot.SetCartesian(dest, blocking=True)