Browse Source

feat: backup current session

SG/Cellrobot 4 months ago
parent
commit
c643dd7bae
2 changed files with 15 additions and 10 deletions
  1. 2 2
      robot_control/config/config.yaml
  2. 13 8
      robot_control/src/robot/mag_distributor.py

+ 2 - 2
robot_control/config/config.yaml

@@ -79,8 +79,8 @@ defeeder_magazines:
 
 mag_distributor:
     debug: False
-    max_speed_mmmin: 100
-    home_speed_mmmin: 10
+    max_speed_mmmin: 1000
+    home_speed_mmmin: 600
     length_mm: 500
 
 mqtt:

+ 13 - 8
robot_control/src/robot/mag_distributor.py

@@ -92,7 +92,7 @@ class MagDistributor:
         self.curr_rot_deg = 0
         self.logger.info("Mag distributor homed successfully.")
 
-    async def _home_axis(self, dir_pin, step_pin, endstop_pin, axis='linear', max_steps = 10000, step_delay=100):
+    async def _home_axis(self, dir_pin, step_pin, endstop_pin, axis='linear', max_steps = 10000, step_delay=50):
         """
         Home a single axis by moving until the endstop is triggered.
         """
@@ -110,7 +110,7 @@ class MagDistributor:
             raise RuntimeError(f"{axis} axis homing failed")
         self.logger.info(f"{axis} axis homed.")
 
-    def move_mag_distributor_at_pos(self, pos_target, rot_target, servo_speed, step_delay=200):
+    def move_mag_distributor_at_pos(self, pos_target, rot_target, servo_speed, step_delay=50):
         """
         Move the magazine distributor to the specified linear and rotational position.
         """
@@ -166,20 +166,25 @@ class MagDistributor:
         # Check if cell can be picked from magazines, if not add to empty magazines and continue
         for mag_id in mags_to_try:
             pos = magazines[mag_id].mag_pos
+            # neutral, neutral
             self.move_mag_distributor_at_pos(0, self.mag_dist_servo_angle_neutral, 1000)
+            # magazin, neutral
             self.move_mag_distributor_at_pos(pos.pos_mm, self.mag_dist_servo_angle_neutral, 1000)
-            self.move_mag_distributor_at_pos(pos.pos_mm, self.mag_dist_servo_angle_magazin, 1000)
-            self.move_mag_distributor_at_pos(pos.pos_mm, self.mag_dist_servo_angle_neutral, 1000)
+            # magazin, magazin
+            self.move_mag_distributor_at_pos(pos.pos_mm, self.mag_dist_servo_angle_magazin, 250)
+            time.sleep(0.5)
+            # magazin, neutral
+            self.move_mag_distributor_at_pos(pos.pos_mm, self.mag_dist_servo_angle_neutral, 250)
             time.sleep(1)
             # Check cell pick sensor
             if self.mag_dist_sensor_pin and self.gpio.get_pin(self.mag_dist_sensor_pin):
                 pos = self.config.feeder.mag_pos
-                self.move_mag_distributor_at_pos(pos.pos_mm, self.mag_dist_servo_angle_feeder, 1000)
+                # feeder, feeder
+                self.move_mag_distributor_at_pos(pos.pos_mm, self.mag_dist_servo_angle_feeder, 250)
+                time.sleep(0.5)
+                # feeder, neutral
                 self.move_mag_distributor_at_pos(pos.pos_mm, self.mag_dist_servo_angle_neutral, 1000)
                 time.sleep(1)
-                pos_feeder = self.config.feeder.mag_pos
-                self.move_mag_distributor_at_pos(pos.pos_mm, self.mag_dist_servo_angle_neutral, 1000)
-                self.move_mag_distributor_at_pos(pos.pos_mm, self.mag_dist_servo_angle_feeder, 1000)
                 self.logger.info(f"Cell successfully picked from magazine {mag_id} and deposited to feeder.")
                 self.current_magazine = mag_id  # update current
                 return