test_fast_grasp_planner.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 from math import log10, floor
3 from unittest import TestCase
4 
5 import rospy
6 from sr_robot_msgs.srv import GetFastGraspFromBoundingBox \
7  as GetGrasp
8 from shape_msgs.msg import SolidPrimitive
9 from geometry_msgs.msg import PoseStamped
10 
11 
12 def round_sig(x, sig):
13  return round(x, sig-int(floor(log10(x)))-1)
14 
15 
16 class TestFastGraspPlanner(TestCase):
17  def setUp(self):
18  self._planning_service = rospy.ServiceProxy(
19  '/grasp_from_bounding_box', GetGrasp)
20 
21  # For some reason, calling wait for service crashes rostest :/
22  # def test_service_running(self):
23  # self.assertFalse(self._planning_service is None)
24 
25  # try:
26  # rospy.wait_for_service('/grasp_from_bounding_box', 1)
27  # except rospy.ServiceException as e:
28  # self.assertTrue(False)
29  # pass
30 
31  def make_box_and_pose(self):
32  pose = PoseStamped()
33  pose.pose.position.x = 0.5
34  pose.pose.position.y = 0.5
35  pose.pose.position.z = 0.7
36 
37  pose.pose.orientation.x = 0
38  pose.pose.orientation.y = 0
39  pose.pose.orientation.z = 0
40  pose.pose.orientation.w = 0
41  pose.header.frame_id = 'world'
42 
43  box = SolidPrimitive()
44  box.type = 1
45  box.dimensions = [0.05, 0.05, 0.05]
46  return box, pose
47 
48  def test_grasp(self):
49  box, pose = self.make_box_and_pose()
50  grasp = self._planning_service(box, pose).grasp
51 
52  self.assertEqual(grasp.id, "super_amazing_grasp")
53 
54  self.assertEqual(grasp.grasp_pose.pose.position.x, 0.5)
55  self.assertEqual(grasp.grasp_pose.pose.position.y, 0.5)
56  self.assertEqual(grasp.grasp_pose.pose.position.z, 0.7)
57 
58  self.assertEqual(round_sig(grasp.grasp_pose.pose.orientation.x, 5),
59  round_sig(0.396609862374, 5))
60  self.assertEqual(round_sig(grasp.grasp_pose.pose.orientation.y, 5),
61  round_sig(0.443462541797, 5))
62  self.assertEqual(round_sig(grasp.grasp_pose.pose.orientation.z, 5),
63  round_sig(0.770688050305, 5))
64  self.assertEqual(round_sig(grasp.grasp_pose.pose.orientation.w, 5),
65  round_sig(0.2282137599, 5))
66 
67  self.assertEqual(1, 1)
68 
69 
70 if __name__ == '__main__':
71  import rostest
72 
73  rospy.sleep(20)
74 
75  # rostest.rosrun("test_service_running",
76  # "test_fast_grasp_planner",
77  # TestFastGraspPlanner)
78 
79  rostest.rosrun("test_grasp_selection",
80  'test_fast_grasp_planner',
81  TestFastGraspPlanner)


sr_grasp_fast_planner
Author(s):
autogenerated on Tue Oct 13 2020 03:50:44