夹爪可视化界面部分更新,主要是3D模型
This commit is contained in:
@@ -6,6 +6,7 @@ class GripperClient:
|
||||
def __init__(self, config):
|
||||
self.config = config
|
||||
self.motor = None
|
||||
self.last_commanded_position = None
|
||||
|
||||
def connect(self):
|
||||
if self.config.dry_run:
|
||||
@@ -24,6 +25,7 @@ class GripperClient:
|
||||
|
||||
def move(self, position, force_pct, label, speed_pct=None, accel=None, decel=None):
|
||||
config = self.config
|
||||
self.last_commanded_position = int(position)
|
||||
speed_pct = config.speed if speed_pct is None else speed_pct
|
||||
accel = config.accel if accel is None else accel
|
||||
decel = config.decel if decel is None else decel
|
||||
@@ -60,8 +62,15 @@ class GripperClient:
|
||||
decel=decel,
|
||||
)
|
||||
|
||||
def close(self, force_pct, label="close"):
|
||||
self.move(self.config.close_pos, force_pct, label)
|
||||
def close(self, force_pct, label="close", speed_pct=None, accel=None, decel=None):
|
||||
self.move(
|
||||
self.config.close_pos,
|
||||
force_pct,
|
||||
label,
|
||||
speed_pct=speed_pct,
|
||||
accel=accel,
|
||||
decel=decel,
|
||||
)
|
||||
|
||||
def set_force(self, force_pct):
|
||||
config = self.config
|
||||
@@ -77,14 +86,17 @@ class GripperClient:
|
||||
|
||||
def read_position(self):
|
||||
if self.config.dry_run:
|
||||
return None
|
||||
return self.last_commanded_position
|
||||
try:
|
||||
return self.motor.read_real_position()
|
||||
position = self.motor.read_real_position()
|
||||
if position is not None:
|
||||
return int(position)
|
||||
return self.last_commanded_position
|
||||
except Exception as exc:
|
||||
print(f"read_real_position failed: {exc}")
|
||||
return None
|
||||
return self.last_commanded_position
|
||||
|
||||
def hold_current_position(self, force_pct):
|
||||
def hold_current_position(self, force_pct, speed_pct=None, accel=None, decel=None):
|
||||
current_pos = self.read_position()
|
||||
if current_pos is None:
|
||||
current_pos = self.config.hold_fallback_pos
|
||||
@@ -94,7 +106,14 @@ class GripperClient:
|
||||
self._stop_by_speed()
|
||||
return None
|
||||
|
||||
self.move(int(current_pos), force_pct, "clamp-hold")
|
||||
self.move(
|
||||
int(current_pos),
|
||||
force_pct,
|
||||
"clamp-hold",
|
||||
speed_pct=speed_pct,
|
||||
accel=accel,
|
||||
decel=decel,
|
||||
)
|
||||
return int(current_pos)
|
||||
|
||||
def final_open_if_needed(self):
|
||||
|
||||
Reference in New Issue
Block a user