regen: send wideRoadCameraState (#24863)

* fix camera malfunction

* revert

* send in one process to fix frames out of sync

* not used

* revert

* fix and add --no-upload for CI testing

* fingerprint if source is fw

* no FW versions
old-commit-hash: 5dce006a82
taco
Shane Smiskol 3 years ago committed by GitHub
parent d15f07433c
commit 9f395d26d2
  1. 3
      selfdrive/test/process_replay/process_replay.py
  2. 8
      selfdrive/test/process_replay/regen.py
  3. 9
      selfdrive/test/process_replay/regen_all.py

@ -15,7 +15,6 @@ from cereal.services import service_list
from common.params import Params
from common.timeout import Timeout
from panda.python import ALTERNATIVE_EXPERIENCE
from selfdrive.car.fingerprints import FW_VERSIONS
from selfdrive.car.car_helpers import get_car, interfaces
from selfdrive.test.process_replay.helpers import OpenpilotPrefix
from selfdrive.manager.process import PythonProcess
@ -372,7 +371,7 @@ def setup_env(simulation=False, CP=None):
if CP.alternativeExperience == ALTERNATIVE_EXPERIENCE.DISABLE_DISENGAGE_ON_GAS:
params.put_bool("DisengageOnAccelerator", False)
if CP.fingerprintSource == "fw" and CP.carFingerprint in FW_VERSIONS:
if CP.fingerprintSource == "fw":
params.put("CarParamsCache", CP.as_builder().to_bytes())
else:
os.environ['SKIP_FW_QUERY'] = "1"

@ -127,7 +127,10 @@ def replay_cameras(lr, frs, disable_tqdm=False):
]
def replay_camera(s, stream, dt, vipc_server, frames, size, use_extra_client):
pm = messaging.PubMaster([s, ])
services = [(s, stream)]
if use_extra_client:
services.append(("wideRoadCameraState", VisionStreamType.VISION_STREAM_WIDE_ROAD))
pm = messaging.PubMaster([s for s, _ in services])
rk = Ratekeeper(1 / dt, print_delay_threshold=None)
img = b"\x00" * int(size[0] * size[1] * 3 / 2)
@ -137,6 +140,7 @@ def replay_cameras(lr, frs, disable_tqdm=False):
rk.keep_time()
for s, stream in services:
m = messaging.new_message(s)
msg = getattr(m, s)
msg.frameId = rk.frame
@ -145,8 +149,6 @@ def replay_cameras(lr, frs, disable_tqdm=False):
pm.send(s, m)
vipc_server.send(stream, img, msg.frameId, msg.timestampSof, msg.timestampEof)
if use_extra_client:
vipc_server.send(VisionStreamType.VISION_STREAM_WIDE_ROAD, img, msg.frameId, msg.timestampSof, msg.timestampEof)
init_data = [m for m in lr if m.which() == 'initData'][0]
cameras = tici_cameras if (init_data.initData.deviceType == 'tici') else eon_cameras

@ -11,12 +11,12 @@ from selfdrive.test.process_replay.test_processes import FAKEDATA, original_segm
from tools.lib.route import SegmentName
def regen_job(segment, disable_tqdm):
def regen_job(segment, upload, disable_tqdm):
with OpenpilotPrefix():
sn = SegmentName(segment[1])
fake_dongle_id = 'regen' + ''.join(random.choice('0123456789ABCDEF') for _ in range(11))
try:
relr = regen_and_save(sn.route_name.canonical_name, sn.segment_num, upload=True, use_route_meta=False, outdir=os.path.join(FAKEDATA, fake_dongle_id), disable_tqdm=disable_tqdm)
relr = regen_and_save(sn.route_name.canonical_name, sn.segment_num, upload=upload, use_route_meta=False, outdir=os.path.join(FAKEDATA, fake_dongle_id), disable_tqdm=disable_tqdm)
relr = '|'.join(relr.split('/')[-2:])
return f' ("{segment[0]}", "{relr}"), '
except Exception as e:
@ -26,12 +26,13 @@ def regen_job(segment, disable_tqdm):
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Generate new segments from old ones")
parser.add_argument("-j", "--jobs", type=int, default=1)
parser.add_argument("--no-upload", action="store_true")
args = parser.parse_args()
with concurrent.futures.ProcessPoolExecutor(max_workers=args.jobs) as pool:
p = list(pool.map(regen_job, segments, [args.jobs > 1] * args.jobs))
p = pool.map(regen_job, segments, [not args.no_upload] * len(segments), [args.jobs > 1] * len(segments))
msg = "Copy these new segments into test_processes.py:"
for seg in tqdm(p, desc="Generating segments"):
for seg in tqdm(p, desc="Generating segments", total=len(segments)):
msg += "\n" + str(seg)
print()
print()

Loading…
Cancel
Save