Compare commits
2
Commits
37feb09185
...
d8b601ab9a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d8b601ab9a | ||
|
|
286e632288 |
No files matched your search
@@ -25,3 +25,6 @@ waf/certs/
|
||||
|
||||
# 运行时日志(HailoRT 等)
|
||||
hailort.log
|
||||
|
||||
# 录制产物(可复现:mtc DSL → 编译 → pybot --record)
|
||||
actpred/data_v3
|
||||
@@ -32,6 +32,9 @@ _SERVOS = [("s1", 90, 0), # rb0
|
||||
for _name, _max, _ch in _SERVOS:
|
||||
Servo(_name, _max, 0, 0, "pca9685-0", _ch)
|
||||
|
||||
# 录制源(pybot --record 需要 @Camera 块)
|
||||
Camera("cam0", 640, 480, 30, 8)
|
||||
|
||||
_STAND = [45, 0, 45, 0, 45, 0, 45, 0, 90, 90]
|
||||
|
||||
def stand(dur=10):
|
||||
|
||||
@@ -32,6 +32,9 @@ _SERVOS = [("s1", 90, 0), # rb0
|
||||
for _name, _max, _ch in _SERVOS:
|
||||
Servo(_name, _max, 0, 0, "pca9685-0", _ch)
|
||||
|
||||
# 录制源(pybot --record 需要 @Camera 块)
|
||||
Camera("cam0", 640, 480, 30, 8)
|
||||
|
||||
_STAND = [45, 0, 45, 0, 45, 0, 45, 0, 90, 90]
|
||||
|
||||
def stand(dur=10):
|
||||
|
||||
@@ -32,6 +32,9 @@ _SERVOS = [("s1", 90, 0), # rb0
|
||||
for _name, _max, _ch in _SERVOS:
|
||||
Servo(_name, _max, 0, 0, "pca9685-0", _ch)
|
||||
|
||||
# 录制源(pybot --record 需要 @Camera 块)
|
||||
Camera("cam0", 640, 480, 30, 8)
|
||||
|
||||
_STAND = [45, 0, 45, 0, 45, 0, 45, 0, 90, 90]
|
||||
|
||||
def stand(dur=10):
|
||||
|
||||
@@ -32,6 +32,9 @@ _SERVOS = [("s1", 90, 0), # rb0
|
||||
for _name, _max, _ch in _SERVOS:
|
||||
Servo(_name, _max, 0, 0, "pca9685-0", _ch)
|
||||
|
||||
# 录制源(pybot --record 需要 @Camera 块)
|
||||
Camera("cam0", 640, 480, 30, 8)
|
||||
|
||||
_STAND = [45, 0, 45, 0, 45, 0, 45, 0, 90, 90]
|
||||
|
||||
def stand(dur=10):
|
||||
|
||||
@@ -33,6 +33,9 @@ _SERVOS = [("s1", 90, 0), # rb0
|
||||
for _name, _max, _ch in _SERVOS:
|
||||
Servo(_name, _max, 0, 0, "pca9685-0", _ch)
|
||||
|
||||
# 录制源(pybot --record 需要 @Camera 块)
|
||||
Camera("cam0", 640, 480, 30, 8)
|
||||
|
||||
_STAND = [45, 0, 45, 0, 45, 0, 45, 0, 90, 90]
|
||||
|
||||
def stand(dur=10):
|
||||
|
||||
@@ -37,6 +37,9 @@ Servo("s8", -180, 0, 0, "pca9685-0", 7) # rf1
|
||||
Servo("s9", 180, 0, 0, "pca9685-0", 8) # cam0
|
||||
Servo("s10", 180, 0, 0, "pca9685-0", 9) # cam1
|
||||
|
||||
# 录制源(pybot --record 需要 @Camera 块)
|
||||
Camera("cam0", 640, 480, 30, 8)
|
||||
|
||||
# stand:10ms(一个栅格步)内到位并保持;首行即目标值,无爬升
|
||||
SetTo("s1", 45, 10)
|
||||
SetTo("s2", 0, 10)
|
||||
|
||||
@@ -32,6 +32,9 @@ _SERVOS = [("s1", 90, 0), # rb0
|
||||
for _name, _max, _ch in _SERVOS:
|
||||
Servo(_name, _max, 0, 0, "pca9685-0", _ch)
|
||||
|
||||
# 录制源(pybot --record 需要 @Camera 块)
|
||||
Camera("cam0", 640, 480, 30, 8)
|
||||
|
||||
_STAND = [45, 0, 45, 0, 45, 0, 45, 0, 90, 90]
|
||||
|
||||
def stand(dur=10):
|
||||
|
||||
@@ -26,6 +26,9 @@ _SERVOS = [("s1", 90, 0), # rb0
|
||||
for _name, _max, _ch in _SERVOS:
|
||||
Servo(_name, _max, 0, 0, "pca9685-0", _ch)
|
||||
|
||||
# 录制源(pybot --record 需要 @Camera 块)
|
||||
Camera("cam0", 640, 480, 30, 8)
|
||||
|
||||
_STAND = [45, 0, 45, 0, 45, 0, 45, 0, 90, 90]
|
||||
|
||||
def stand(dur=10):
|
||||
|
||||
@@ -32,6 +32,9 @@ _SERVOS = [("s1", 90, 0), # rb0
|
||||
for _name, _max, _ch in _SERVOS:
|
||||
Servo(_name, _max, 0, 0, "pca9685-0", _ch)
|
||||
|
||||
# 录制源(pybot --record 需要 @Camera 块)
|
||||
Camera("cam0", 640, 480, 30, 8)
|
||||
|
||||
_STAND = [45, 0, 45, 0, 45, 0, 45, 0, 90, 90]
|
||||
|
||||
def stand(dur=10):
|
||||
|
||||
@@ -32,6 +32,9 @@ _SERVOS = [("s1", 90, 0), # rb0
|
||||
for _name, _max, _ch in _SERVOS:
|
||||
Servo(_name, _max, 0, 0, "pca9685-0", _ch)
|
||||
|
||||
# 录制源(pybot --record 需要 @Camera 块)
|
||||
Camera("cam0", 640, 480, 30, 8)
|
||||
|
||||
_STAND = [45, 0, 45, 0, 45, 0, 45, 0, 90, 90]
|
||||
|
||||
def stand(dur=10):
|
||||
|
||||
@@ -32,6 +32,9 @@ _SERVOS = [("s1", 90, 0), # rb0
|
||||
for _name, _max, _ch in _SERVOS:
|
||||
Servo(_name, _max, 0, 0, "pca9685-0", _ch)
|
||||
|
||||
# 录制源(pybot --record 需要 @Camera 块)
|
||||
Camera("cam0", 640, 480, 30, 8)
|
||||
|
||||
_STAND = [45, 0, 45, 0, 45, 0, 45, 0, 90, 90]
|
||||
|
||||
def stand(dur=10):
|
||||
|
||||
@@ -32,6 +32,9 @@ _SERVOS = [("s1", 90, 0), # rb0
|
||||
for _name, _max, _ch in _SERVOS:
|
||||
Servo(_name, _max, 0, 0, "pca9685-0", _ch)
|
||||
|
||||
# 录制源(pybot --record 需要 @Camera 块)
|
||||
Camera("cam0", 640, 480, 30, 8)
|
||||
|
||||
_STAND = [45, 0, 45, 0, 45, 0, 45, 0, 90, 90]
|
||||
|
||||
def stand(dur=10):
|
||||
|
||||
@@ -17,6 +17,12 @@ from pathlib import Path
|
||||
|
||||
log = logging.getLogger("pybot.recorder")
|
||||
|
||||
# spk.F 列(动作契约列 10)与模型固定输出对齐:F2 方案下推理端该列恒为
|
||||
# 常量 0(actpred/bins.py FIXED_OUTPUT),而脚本真实值可达 1000Hz——
|
||||
# 保留真值会产生"模型 0 vs 数据 1000"的评估伪影。v3 起录制时写常量 0。
|
||||
# spk.delay(列 11)无需处理:微步录制下恒为 10.0,与 FIXED_OUTPUT 一致。
|
||||
SPK_F_COL = 10
|
||||
|
||||
|
||||
class EpisodeRecorder:
|
||||
"""录制 actpred 格式的 episode(images/*.jpg + actions.npy [+ imu.npy])
|
||||
@@ -80,6 +86,8 @@ class EpisodeRecorder:
|
||||
src = np.asarray(action_vec, dtype=np.float32).ravel()
|
||||
n = min(len(src), self.action_dim)
|
||||
vec[:n] = src[:n]
|
||||
if self.action_dim > SPK_F_COL:
|
||||
vec[SPK_F_COL] = 0.0
|
||||
self._actions.append(vec)
|
||||
|
||||
if imu_vec is None:
|
||||
|
||||
Reference in new issue
Block a user