nbv_sim/sim_grasp.py

52 lines
1.1 KiB
Python
Raw Normal View History

2021-07-06 14:00:04 +02:00
import argparse
import rospy
2021-07-07 15:08:32 +02:00
from active_grasp.srv import Reset, ResetRequest
2021-07-06 14:00:04 +02:00
from controller import GraspController
from policies import get_policy
2021-07-07 15:08:32 +02:00
from utils import *
2021-07-06 14:00:04 +02:00
class SimGraspController(GraspController):
def __init__(self, policy):
super().__init__(policy)
2021-07-07 15:08:32 +02:00
self.reset_sim = rospy.ServiceProxy("reset", Reset)
2021-07-06 14:00:04 +02:00
def reset(self):
2021-07-07 15:08:32 +02:00
req = ResetRequest()
res = self.reset_sim(req)
2021-07-06 14:00:04 +02:00
rospy.sleep(1.0) # wait for states to be updated
2021-07-07 15:08:32 +02:00
return from_bbox_msg(res.bbox)
2021-07-06 14:00:04 +02:00
def create_parser():
parser = argparse.ArgumentParser()
parser.add_argument(
"--policy",
type=str,
choices=[
"single-view",
"top",
"alignment",
"random",
"fixed-trajectory",
],
)
return parser
def main():
rospy.init_node("active_grasp")
parser = create_parser()
args = parser.parse_args()
policy = get_policy(args.policy)
controller = SimGraspController(policy)
while True:
controller.run()
if __name__ == "__main__":
main()