Skip to content

Commit 9158fd6

Browse files
author
andy
committed
release robot-leveling-test.02.18
1 parent 030a0e5 commit 9158fd6

24 files changed

+256
-127
lines changed

__version__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import os
22
import subprocess
33

4-
VERSION = '1.4.9'
4+
VERSION = '1.5.4'
55

66

77
def get_version():

devices/laser_stj_10_m0.py

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,19 @@ def init_device(self, select_default=''):
2424
get device
2525
:return:
2626
"""
27+
print(f"Init device: port - {select_default}")
2728
if self.accuracy == "high":
28-
self.serial.init(115200, select_default=select_default)
29+
self.serial.init(115200, select_default=select_default, device_name="Laser Sensor")
2930
else:
30-
self.serial.init(9600, select_default=select_default)
31+
self.serial.init(9600, select_default=select_default, device_name="Laser Sensor")
3132

3233
def close(self):
3334
self.serial.close()
3435

3536
def get_mount(self):
3637
for _i in range(5):
3738
result = self.serial.write_and_get_buffer(GET_MOUNT, delay=3)
39+
print(f"Getting Mount Result: {result}")
3840
if "ADS1115" in str(result):
3941
continue
4042
if "L" in str(result).upper():
@@ -43,7 +45,7 @@ def get_mount(self):
4345
return 'right'
4446
else:
4547
pass
46-
raise ValueError("Failed to find mount")
48+
raise ValueError(f"Failed to find mount")
4749

4850
def read_sensor_high(self):
4951
result = self.serial.write_and_get_buffer(MEASURE_CODE)
@@ -66,8 +68,14 @@ def read_sensor_high(self):
6668

6769
def read_sensor_low(self, show_distance=False):
6870
multi_value = {}
69-
result = self.serial.write_and_get_buffer(LOW_MEASURE_CODE)
70-
result = result.decode('utf-8')
71+
result = None
72+
for i in range(5):
73+
result = self.serial.write_and_get_buffer(LOW_MEASURE_CODE)
74+
if len(result) == 0:
75+
continue
76+
result = result.decode('utf-8')
77+
break
78+
assert result, "read sensor fail"
7179
for index, item in enumerate(result.split(',')):
7280
if ":" not in item:
7381
continue
@@ -80,11 +88,12 @@ def read_sensor_low(self, show_distance=False):
8088

8189

8290
if __name__ == '__main__':
91+
8392
ls = LaserSensor()
8493
ls.init_device()
8594

86-
# mount = ls.get_mount()
87-
# print(f"Mount: {mount}")
95+
mount = ls.get_mount()
96+
print(f"Mount: {mount}")
8897
# while True:
8998
# res = ls.read_sensor_low(show_distance=True)
9099
# print(f"Distance: {res}")

devices/low_scale.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
from drivers.serial_driver import SerialDriver
2+
3+
4+
class Scale:
5+
def __init__(self):
6+
self.scale = SerialDriver()
7+
self.scale.init(9600, device_name="Scale")
8+
9+
def read_volume(self):
10+
res = self.scale.write_and_get_buffer("S")
11+
print(f"Scale: {res}")
12+
res = res.split()
13+
for item in res:
14+
if '.' in str(item):
15+
res = float(item)
16+
return res
17+
18+
19+
if __name__ == '__main__':
20+
s = Scale()
21+
s.read_volume()

drivers/serial_driver.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def __init__(self):
2020
self.com = None
2121
self.receive_buffer = None
2222

23-
def get_device(self, select_default=''):
23+
def get_device(self, select_default='', device_name=""):
2424
"""
2525
select device
2626
:return:
@@ -32,7 +32,7 @@ def get_device(self, select_default=''):
3232
print("=" * 5 + "PORT LIST" + "=" * 5)
3333
for index, p in enumerate(port_list):
3434
print(f"{index + 1} >>{p.device}")
35-
select = input("Select Port Number(输入串口号对应的数字):")
35+
select = input(f"Select Port Number(输入串口号对应的数字) -- {device_name}:")
3636
self.device = port_list[int(select.strip()) - 1].device
3737

3838
def init_serial(self, baud):
@@ -44,6 +44,7 @@ def init_serial(self, baud):
4444
"""
4545
self.com = serial.Serial(self.device, baud, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE,
4646
bytesize=serial.EIGHTBITS, timeout=1)
47+
assert self.com, "Init serial failed"
4748
if self.com.isOpen():
4849
print(f"{self.device} Opened! \n")
4950
# settings
@@ -59,12 +60,12 @@ def close(self):
5960
self.com.close()
6061
print(f"{self.device} Closed! \n")
6162

62-
def init(self, baud, select_default=''):
63+
def init(self, baud, select_default='', device_name=""):
6364
"""
6465
main
6566
:return:
6667
"""
67-
self.get_device(select_default=select_default)
68+
self.get_device(select_default=select_default, device_name=device_name)
6869
try:
6970
self.init_serial(baud)
7071
except:

drivers/test.py

Lines changed: 0 additions & 26 deletions
This file was deleted.

ot3_testing/test_config/pipette_leveling_config.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ class CalibrateMethod(enum.Enum):
99

1010
SlotLocationCH96 = {"C1-Y": {"Point": Point(223, 203, 318), "compensation": {"left_rear": -0.189, "left_front": 0},
1111
"definition": ["left_front", "left_rear"]},
12-
"C3-Y": {"Point": Point(207, 203, 318), "compensation": {"right_rear": -0.003, "right_front": 0},
12+
"C3-Y": {"Point": Point(207, 203, 318), "compensation": {"right_rear": -0.028, "right_front": 0},
1313
"definition": ["left_front", "left_rear"]},
1414
"A2-Y": {"Point": Point(387, 421, 318), "compensation": {"left_rear": -0.208, "left_front": 0},
1515
"definition": ["left_front", "left_rear"]},
16-
"C1-X": {"Point": Point(50, 91, 300), "compensation": {"rear_left": 0, "rear_right": 0.207},
16+
"C1-X": {"Point": Point(50, 91, 300), "compensation": {"rear_left": 0, "rear_right": -0.078},
1717
"definition": ["rear_left", "rear_right"]},
1818
"C3-X": {"Point": Point(382, 91, 300), "compensation": {"rear_left": 0, "rear_right": 0.073},
1919
"definition": ["rear_left", "rear_right"]},
Binary file not shown.
Binary file not shown.

ot3_testing/tests/base_init.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
from devices.laser_stj_10_m0 import LaserSensor
55
import time
66

7+
DEBUGGING_MODE = False
8+
79

810
class TestBase:
911
def __init__(self):
@@ -120,7 +122,11 @@ async def read_definition_distance(self, definition: List, channel_definition, l
120122
# 读取五次,去掉最大最小,取平均值
121123
for i in range(read_times):
122124
print(f"Reading {i + 1} times...")
123-
code_value_list = laser.read_sensor_low()
125+
while True:
126+
code_value_list = laser.read_sensor_low()
127+
if code_value_list != {}:
128+
break
129+
print(f"read wrong value: {code_value_list}")
124130
sensor_readers.append(code_value_list) # {1: xx, 2: xx}
125131
except:
126132
read_successful = False
@@ -146,8 +152,10 @@ def sensor_readers_handler(sensor_readers):
146152
else:
147153
_min = _avg
148154
_max = _avg
149-
print(f"min: {_min}, max: {_max}, avg: {_avg}")
150-
print(f"{key}: {value}")
155+
if DEBUGGING_MODE:
156+
print("各通道取平均如下:")
157+
print(f"{key}: {value}")
158+
print(f"min: {_min}, max: {_max}, avg: {_avg}")
151159

152160
handler.update({key: _avg})
153161
return handler

ot3_testing/tests/gripper_leveling.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from typing import List
88
from utils import Utils
99
import os, datetime
10+
from ot3_testing.tests.base_init import DEBUGGING_MODE
1011

1112
ApplyCompensationFlag = True
1213
CalibrateFlag = True
@@ -59,7 +60,7 @@ async def move_step_with_test_name(self, test_name: str, direction: str, step=0.
5960
elif method == CalibrateMethod.Approach and self.approaching:
6061
step = 0.06
6162
elif method == CalibrateMethod.Approach and not self.approaching:
62-
step = gap * 2
63+
step = gap * 0.95
6364
self.approaching = True
6465

6566
_point: Point = self.slot_location[self.mount][test_name]["point"]
@@ -186,9 +187,11 @@ async def run_gripper_test(self, flex_name, project_path=None):
186187
csv_list = []
187188
now = datetime.datetime.now()
188189
time_str = now.strftime("%Y-%m-%d %H:%M:%S ")
189-
csv_list.append(time_str + flex_name)
190-
csv_title.append(time_str + flex_name)
190+
csv_list.append(flex_name)
191+
csv_title.append(flex_name)
191192
compensation_tag = "" if index == 0 else "with_compensation"
193+
if compensation_tag:
194+
continue
192195
print(f"==== 测试结果 {compensation_tag} ====")
193196
for key, value in result.items():
194197
difference = abs(list(value.values())[0] - list(value.values())[1])
@@ -211,5 +214,5 @@ async def run_gripper_test(self, flex_name, project_path=None):
211214

212215

213216
if __name__ == '__main__':
214-
_gripper = GripperLeveling(Gripper_Position, "192.168.6.33")
217+
_gripper = GripperLeveling(Gripper_Position, "192.168.6.152")
215218
asyncio.run(_gripper.run_gripper_test("xxx"))

0 commit comments

Comments
 (0)