Source code for hop.hexabundle_allocation.hector.magnets.pickup_areas

from ...hector.constants import rectangle_magnet_length, robot_arm_width,robot_arm_length,circular_magnet_radius
from ...general_operations.geometry_shapes.rectangle import rectangle

[docs]class rectangular_magnet_pickup_area(rectangle): # intializing pickup area of rectangular magnet with the respective parameters def __init__(self,center,orientation): #length = 0.5 * (rectangle_magnet_length + 3* robot_arm_width) # Tiphaine's calculation if (robot_arm_width < ((rectangle_magnet_length - robot_arm_width) / 2)): length = (robot_arm_width + rectangle_magnet_length) / 2 elif (robot_arm_width >= ((rectangle_magnet_length - robot_arm_width) / 2)): length = 2 * robot_arm_width width = robot_arm_length super().__init__(center,length,width,orientation)
[docs]class circular_magnet_pickup_area(rectangle): # intializing pickup area of rectangular magnet with the respective parameters def __init__(self,center,orientation): length = (3.0/2) * robot_arm_width + circular_magnet_radius width = robot_arm_length super().__init__(center,length,width,orientation)
## Pickup Areas of circular and rectangular magnets created as classes
[docs]class inward(rectangular_magnet_pickup_area): kind = 'inward (toward circular magnet) pickup area' code = 'I' pass
[docs]class outward(rectangular_magnet_pickup_area): kind = 'outward (toward circular magnet) pickup area' code = 'O' pass
[docs]class tangential_right(circular_magnet_pickup_area): kind = 'tangential from right pickup area' code = 'TR' pass
[docs]class tangential_left(circular_magnet_pickup_area): kind = 'tangential from left pickup area' code = 'TL' pass
[docs]class radial_inward(circular_magnet_pickup_area): kind = 'inward radial pickup area' code ='RI' pass
[docs]class radial_outward(circular_magnet_pickup_area): kind = 'outward radial pickup area' code = 'RO' pass