pr2_tactile_sleeve_gripper_and_forearm_driver_node.py
Go to the documentation of this file.
00001 #!/usr/bin/python
00002 
00003 import sys
00004 import math, numpy as np
00005 
00006 import roslib; roslib.load_manifest('hrl_fabric_based_tactile_sensor')
00007 import rospy
00008 from hrl_msgs.msg import FloatArray
00009 
00010 import hrl_lib.util as ut
00011 import hrl_lib.transforms as tr
00012 
00013 import hrl_fabric_based_tactile_sensor.adc_publisher_node as apn
00014 
00015 from m3skin_ros.msg import RawTaxelArray
00016 from geometry_msgs.msg import Transform
00017 
00018 from m3skin_ros.srv import None_TransformArray, None_TransformArrayResponse
00019 from m3skin_ros.srv import None_String
00020 
00021 from pr2_tactile_sleeve_driver_node import Tactile_Sleeve
00022 
00023 
00024 if __name__ == '__main__':
00025     import optparse
00026     p = optparse.OptionParser()
00027 
00028     p.add_option('--arm_to_use', action='store',
00029                  dest='arm', type='string',
00030                  help='l or r')
00031 
00032     opt, args = p.parse_args()
00033 
00034     if opt.arm != 'r' and opt.arm != 'l':
00035         rospy.logerr('Invalid arm_to_use')
00036         raise RuntimeError('Invalid arm_to_use')
00037 
00038     ts = Tactile_Sleeve(opt.arm)
00039 
00040 #    raw_data_gripper_pub = rospy.Publisher('pr2_fabric_gripper_sensor/taxels/raw_data',
00041 #                                           RawTaxelArray)
00042 #    rospy.Service('pr2_fabric_gripper_sensor/taxels/srv/local_coord_frames',
00043 #                  None_TransformArray, ts.local_coord_frames_gripper_cb)
00044 #    rospy.Service('pr2_fabric_gripper_sensor/taxels/srv/link_name', None_String,
00045 #                  ts.link_name_gripper_cb)
00046 
00047     raw_data_gripper_right_link_pub = rospy.Publisher('pr2_fabric_gripper_right_link_sensor/taxels/raw_data',
00048                                                       RawTaxelArray)
00049     rospy.Service('pr2_fabric_gripper_right_link_sensor/taxels/srv/local_coord_frames',
00050                   None_TransformArray, ts.local_coord_frames_gripper_right_link_cb)
00051     rospy.Service('pr2_fabric_gripper_right_link_sensor/taxels/srv/link_name', None_String,
00052                   ts.link_name_gripper_right_link_cb)
00053 
00054     raw_data_gripper_left_link_pub = rospy.Publisher('pr2_fabric_gripper_left_link_sensor/taxels/raw_data',
00055                                                       RawTaxelArray)
00056     rospy.Service('pr2_fabric_gripper_left_link_sensor/taxels/srv/local_coord_frames',
00057                   None_TransformArray, ts.local_coord_frames_gripper_left_link_cb)
00058     rospy.Service('pr2_fabric_gripper_left_link_sensor/taxels/srv/link_name', None_String,
00059                   ts.link_name_gripper_left_link_cb)
00060 
00061     raw_data_gripper_palm_pub = rospy.Publisher('pr2_fabric_gripper_palm_sensor/taxels/raw_data',
00062                                                       RawTaxelArray)
00063     rospy.Service('pr2_fabric_gripper_palm_sensor/taxels/srv/local_coord_frames',
00064                   None_TransformArray, ts.local_coord_frames_gripper_palm_cb)
00065     rospy.Service('pr2_fabric_gripper_palm_sensor/taxels/srv/link_name', None_String,
00066                   ts.link_name_gripper_palm_cb)
00067 
00068     raw_data_forearm_pub = rospy.Publisher('pr2_fabric_forearm_sensor/taxels/raw_data',
00069                                            RawTaxelArray)
00070     rospy.Service('pr2_fabric_forearm_sensor/taxels/srv/local_coord_frames',
00071                   None_TransformArray, ts.local_coord_frames_forearm_cb)
00072     rospy.Service('pr2_fabric_forearm_sensor/taxels/srv/link_name', None_String,
00073                   ts.link_name_forearm_cb)
00074 
00075     rospy.init_node('fabric_tactile_sleeve_driver_node')
00076 
00077     baudrate = 115200
00078     dev2_nm = '/dev/robot/arduino3'
00079     dev2 = apn.setup_serial(dev2_nm, baudrate)
00080 
00081     for i in range(10):
00082         dev2.readline()
00083     
00084     rospy.loginfo('Started publishing gripper and forearm taxels')
00085 
00086     rta1 = RawTaxelArray()
00087     rta2 = RawTaxelArray()
00088     rta3 = RawTaxelArray()
00089     rta4 = RawTaxelArray()
00090     while not rospy.is_shutdown():
00091         adc_data = apn.get_adc_data(dev2, 32)
00092 
00093         #for t in range(32):
00094         #    if adc_data[t] < 1000:
00095         #        rospy.loginfo(t)
00096 
00097         forearm_vals = adc_data[0:5] + adc_data[6:16] + adc_data[17:24]
00098         rta1.val_z = forearm_vals
00099         raw_data_forearm_pub.publish(rta1)
00100 
00101         rta2.val_z = adc_data[26:27] + adc_data[29:30] + adc_data[31:32] + adc_data[24:25]
00102         raw_data_gripper_left_link_pub.publish(rta2)
00103 
00104         rta3.val_z = adc_data[28:29] + adc_data[30:31] + adc_data[27:28] + adc_data[25:26]
00105         raw_data_gripper_right_link_pub.publish(rta3)
00106 
00107         rta4.val_z = adc_data[5:6] + adc_data[16:17];
00108         raw_data_gripper_palm_pub.publish(rta4)
00109 
00110     dev2.close()
00111 
00112 
00113 


hrl_fabric_based_tactile_sensor
Author(s): Advait Jain, Advisor: Prof. Charles C. Kemp. Healthcare Robotics Lab, Georgia Tech
autogenerated on Wed Nov 27 2013 12:02:33