VLAdaptorBench / external /pyrep /tests /test_suction_cups.py
lsnu's picture
Add files using upload-large-folder tool
cf8614b verified
import unittest
from tests.core import TestCore
from pyrep import PyRep
from pyrep.objects.shape import Shape
from os import path
from pyrep.robots.end_effectors.dobot_suction_cup import DobotSuctionCup
from pyrep.robots.end_effectors.baxter_suction_cup import BaxterSuctionCup
ASSET_DIR = path.join(path.dirname(path.abspath(__file__)), 'assets')
SUCTION_CUPS = [
('DobotSuctionCup', DobotSuctionCup),
('BaxterSuctionCup', BaxterSuctionCup),
]
class TestSuctionCups(TestCore):
def setUp(self):
self.pyrep = PyRep()
self.pyrep.launch(path.join(
ASSET_DIR, 'test_scene_robots.ttt'), headless=True)
self.pyrep.step()
self.pyrep.start()
def test_get_suction_cup(self):
for cup_name, cup_type in SUCTION_CUPS:
with self.subTest(suction_cup=cup_name):
cup = cup_type()
self.assertIsInstance(cup, cup_type)
def test_grasp_and_release_with_suction(self):
for cup_name, cup_type in SUCTION_CUPS:
with self.subTest(suction_cup=cup_name):
suction_cube = Shape('%s_cube' % cup_name)
cube = Shape('cube')
cup = cup_type()
self.pyrep.step()
grasped = cup.grasp(cube)
self.assertFalse(grasped)
self.assertEqual(len(cup.get_grasped_objects()), 0)
grasped = cup.grasp(suction_cube)
self.assertTrue(grasped)
self.assertListEqual(cup.get_grasped_objects(), [suction_cube])
cup.release()
self.assertEqual(len(cup.get_grasped_objects()), 0)
if __name__ == '__main__':
unittest.main()