autoverse-cli 0.17.1__py3-none-any.whl → 0.17.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {autoverse_cli-0.17.1.dist-info → autoverse_cli-0.17.3.dist-info}/METADATA +3 -2
- {autoverse_cli-0.17.1.dist-info → autoverse_cli-0.17.3.dist-info}/RECORD +14 -13
- {autoverse_cli-0.17.1.dist-info → autoverse_cli-0.17.3.dist-info}/WHEEL +1 -1
- avrs/app_version.py +1 -1
- avrs/avrs.py +4 -2
- avrs/race_cloud.py +1 -1
- avrs/race_cloud_cfg_util.py +64 -2
- avrs/requests/fault_injection.py +1 -1
- avrs/requests/misc.py +10 -0
- avrs/requests/race_control.py +9 -2
- avrs/requests/rest_request.py +45 -0
- {autoverse_cli-0.17.1.dist-info → autoverse_cli-0.17.3.dist-info}/entry_points.txt +0 -0
- {autoverse_cli-0.17.1.dist-info → autoverse_cli-0.17.3.dist-info/licenses}/LICENSE +0 -0
- {autoverse_cli-0.17.1.dist-info → autoverse_cli-0.17.3.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: autoverse-cli
|
3
|
-
Version: 0.17.
|
3
|
+
Version: 0.17.3
|
4
4
|
Summary: The Autoverse CLI
|
5
5
|
Author-email: Dan Kamrath <dan.kamrath@autonomalabs.com>
|
6
6
|
License: # End-User License Agreement (EULA) of the Autonoma AutoVerse CLI
|
@@ -43,6 +43,7 @@ Description-Content-Type: text/markdown
|
|
43
43
|
License-File: LICENSE
|
44
44
|
Requires-Dist: boto3
|
45
45
|
Requires-Dist: cantools
|
46
|
+
Dynamic: license-file
|
46
47
|
|
47
48
|
# Autoverse CLI
|
48
49
|
|
@@ -1,15 +1,16 @@
|
|
1
|
+
autoverse_cli-0.17.3.dist-info/licenses/LICENSE,sha256=d4eWXho-u18HkBsX4K21uHX_bBb2UXZSrJdsb7Z_JlM,2647
|
1
2
|
avrs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
avrs/app_version.py,sha256=
|
3
|
+
avrs/app_version.py,sha256=2oXEAqnQd-QpTA32-FLVigt9qiX6HHsOKOE9PUNERck,856
|
3
4
|
avrs/argparse_help.py,sha256=EoEaohGXZXqJvs1dFEzbo9vh47CYdHdSY2Im2Ps2iFo,945
|
4
|
-
avrs/avrs.py,sha256=
|
5
|
+
avrs/avrs.py,sha256=wRwZJeSvyJNlixkZnC3E2cwzEe_fjYHl7hD-HgRF2po,4717
|
5
6
|
avrs/can_tool.py,sha256=IBoctKobBJ3wCq4ZdtuXuXH4AMEUxazCfYT6YP0Luw8,7161
|
6
7
|
avrs/can_tool_util.py,sha256=G3q21dTGMLc09SDq_RieoW7kSn-kXPkXxPDjavPh4hQ,7710
|
7
8
|
avrs/cfg.py,sha256=kMn08Z4Ms1PAu2-U1QI8weEJeIVEppP4A4_tFfwnjtg,2924
|
8
9
|
avrs/launcher.py,sha256=kk1lyHHLgFZ4zsFfa_zV5f1kYbUODT6wEILJ8TZ16rQ,9353
|
9
10
|
avrs/launcher_util.py,sha256=sO3k_z3A-HIQdJVkVXNXUAE_MGFwAYiZUqQBoFwOqew,5325
|
10
|
-
avrs/race_cloud.py,sha256=
|
11
|
+
avrs/race_cloud.py,sha256=F95_ssdiKpkmTQQkqllaLJJFAnLK3NEfRiQZcofgDGo,20125
|
11
12
|
avrs/race_cloud_bridge_can.py,sha256=K3is7GFzWo2KBojr6V65kz138UfkVFXXofVxSAziArY,2888
|
12
|
-
avrs/race_cloud_cfg_util.py,sha256=
|
13
|
+
avrs/race_cloud_cfg_util.py,sha256=VMa7n7wF0LyeL0vvouQ8LT9YzAU_zoptzUa-e2vk5Q0,9818
|
13
14
|
avrs/race_cloud_fwd_api.py,sha256=HuLE5kfmzVq08aP3tlEh3f8WNjGL5N3K5EbXg9uQomo,1506
|
14
15
|
avrs/race_cloud_util.py,sha256=WwhmqxKIQJMxf4L4ReAJrW1Reu1A8tLfmYeEwTZDl-k,13184
|
15
16
|
avrs/simconfig.py,sha256=UZc4FrxVHUkk2e9IglSpuojXkaL_nPrJW7trbEGgOOo,2907
|
@@ -21,16 +22,17 @@ avrs/requests/code_booz.py,sha256=SXaEAMTqID4lf1o_4Cc1wY9609X-dNcfNa-UZv3FWF4,24
|
|
21
22
|
avrs/requests/demo.py,sha256=cbGQJK-OfeFUkQwVzafHgoWP15xoKL-ZgYkQ7moEt2A,872
|
22
23
|
avrs/requests/dump_sim_config.py,sha256=ePtJZhq3gYLgMQkbi-YObIAaPk3Z2b0NWlWM5IYkCaM,479
|
23
24
|
avrs/requests/environment.py,sha256=ORwOBxhXPcatn_W8aY5pgIy4f2paUbqIYii5oE540xA,1305
|
24
|
-
avrs/requests/fault_injection.py,sha256=
|
25
|
+
avrs/requests/fault_injection.py,sha256=UWf_Jzqkd4CdkNpLbxwyuyLPkuIYNz4LDABM0myHv3A,5950
|
25
26
|
avrs/requests/get_object_config.py,sha256=Mkwp32lfskQERsqfmAgHi4vf4C0hfjg6Ru8UjyMt3cw,654
|
26
27
|
avrs/requests/list_sim_objects.py,sha256=YWpqHdCHijerPxI5606_KjeFvezcLFN33wO4YOr9G3U,977
|
27
28
|
avrs/requests/log_path.py,sha256=Ur24C9VqPVx78MfpicgQu2uOEe-0dXbGoWF_7dzMtZE,1326
|
28
|
-
avrs/requests/misc.py,sha256=
|
29
|
+
avrs/requests/misc.py,sha256=sydYsBMLBFmpUHTnTK5VhM2JF6xYXgk_Xmdq7oIJC_s,2232
|
29
30
|
avrs/requests/move_to_landmark.py,sha256=cLRBKu9XEDsmCoftBJ8JwoBLqzb0IZsxFMBnus4T-kc,702
|
30
31
|
avrs/requests/npc.py,sha256=Y_WovbcLomCCcOLAMMO_DHZtc1crAzWo97qEIGS3SvU,9691
|
31
|
-
avrs/requests/race_control.py,sha256=
|
32
|
+
avrs/requests/race_control.py,sha256=IVpaaveeLOze0qXzuJVgkoYjydm0KBLEFXDmJnwtTpQ,1409
|
32
33
|
avrs/requests/request.py,sha256=uUAndVZPbTQgbiXqrd4S3l3TQ0J_3STBtghEFlVr5GA,2058
|
33
34
|
avrs/requests/reset_to_track.py,sha256=6BXe2EtezdZR1Xrs0pej_eBK-ilqeN8ZrJGN_KKPLbk,672
|
35
|
+
avrs/requests/rest_request.py,sha256=G4WzZw8OsF7ZnZeCcpRiADP9XK50e5VBaP6qpu9yXLs,1398
|
34
36
|
avrs/requests/restart.py,sha256=ih5mnWiU34q3-xhOth45CtOUXxKI0PoMDCnFJV0JbwE,415
|
35
37
|
avrs/requests/scenario_control.py,sha256=u-KQx-mdCm6IE_c88a6iEgWUsZZVOayxBo58Ocjg0ZI,1502
|
36
38
|
avrs/requests/spawn_object.py,sha256=RzTJprcyPpNIesu4s_GMuEYbHII-sopw1sDcbTDgvrY,1429
|
@@ -39,9 +41,8 @@ avrs/requests/toggle_hud.py,sha256=sV5t5QZc4uvRihPVk8jEKZiQNsyF9tsUwq5b4jjZplc,3
|
|
39
41
|
avrs/requests/vd.py,sha256=gdt5XCdCCVdECL3qt8y-PKDrlArjeY_lxtT4VpZmAJo,1804
|
40
42
|
avrs/requests/vehicle_input.py,sha256=R1b1xkRtOBkwyU6OSN4bWVlYsIUroZG0WKbYbc4pEH8,729
|
41
43
|
avrs/requests/vehicle_replay.py,sha256=nCAE21VNyKoeIjjXBGAihgOLO7zYHcu-HWvPZYxdQ2c,11099
|
42
|
-
autoverse_cli-0.17.
|
43
|
-
autoverse_cli-0.17.
|
44
|
-
autoverse_cli-0.17.
|
45
|
-
autoverse_cli-0.17.
|
46
|
-
autoverse_cli-0.17.
|
47
|
-
autoverse_cli-0.17.1.dist-info/RECORD,,
|
44
|
+
autoverse_cli-0.17.3.dist-info/METADATA,sha256=4J_L2v28tGUsfbxmbh29BZE3dR3xyntCUT2iEHN9O5U,3364
|
45
|
+
autoverse_cli-0.17.3.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
|
46
|
+
autoverse_cli-0.17.3.dist-info/entry_points.txt,sha256=Cb9qsUyU5AKkklehCcvtfT0-N3SXbUEqvjze4iEU5kE,40
|
47
|
+
autoverse_cli-0.17.3.dist-info/top_level.txt,sha256=-AJO2e4MCVej6hY0U84pu5NfMeMW5qaAPSMisDT5rmA,5
|
48
|
+
autoverse_cli-0.17.3.dist-info/RECORD,,
|
avrs/app_version.py
CHANGED
avrs/avrs.py
CHANGED
@@ -73,12 +73,11 @@ def init_logging():
|
|
73
73
|
|
74
74
|
def main():
|
75
75
|
|
76
|
+
# logging will fail in pipeline
|
76
77
|
try:
|
77
78
|
init_logging()
|
78
79
|
except Exception as e:
|
79
80
|
pass
|
80
|
-
# printing here breaks pipeline when it calls --version
|
81
|
-
#print('failed to init logging: {}'.format(e))
|
82
81
|
|
83
82
|
parser = argparse.ArgumentParser(
|
84
83
|
prog='avrs',
|
@@ -133,6 +132,9 @@ def main():
|
|
133
132
|
AvrsDumpSimConfigRequest(sps, cfg)
|
134
133
|
AvrsRaceControlRequest(sps, cfg)
|
135
134
|
|
135
|
+
# new api requests
|
136
|
+
AvrsDescribeSimRestRequest(sps, cfg)
|
137
|
+
|
136
138
|
if os.environ.get('AVRS_WITH_DEMO', '0') == '1':
|
137
139
|
AvrsDemoRequest(sps, cfg)
|
138
140
|
|
avrs/race_cloud.py
CHANGED
@@ -387,7 +387,7 @@ class AvrsRaceCloud(AvrsApiRequest):
|
|
387
387
|
bash_kill_process('Autoverse')
|
388
388
|
if args.action == 'start' or args.action == 'restart':
|
389
389
|
logger.info('starting race-cloud simulator program')
|
390
|
-
print('starting sim program on sim instance')
|
390
|
+
#print('starting sim program on sim instance')
|
391
391
|
exe_path = os.path.join(get_sim_exe_path())
|
392
392
|
start_exe(exe_path)
|
393
393
|
if args.action == 'get-log':
|
avrs/race_cloud_cfg_util.py
CHANGED
@@ -62,8 +62,9 @@ def register_received_vehicle(team_name, slot, cfg_data, bsu_vcan, kistler_vcan,
|
|
62
62
|
eav24['body']['bPublishGroundTruth'] = False
|
63
63
|
eav24['body']['bPublishInputs'] = False
|
64
64
|
|
65
|
-
|
66
|
-
|
65
|
+
# do not disable HUD
|
66
|
+
#logger.info('disabling hud for received vehicle config')
|
67
|
+
#eav24['body']['bHudEnabled'] = False
|
67
68
|
|
68
69
|
logger.info('setting bsu vcan to: {}, kistler to: {}, and badenia to: {}'.format(
|
69
70
|
bsu_vcan, kistler_vcan, badenia_vcan))
|
@@ -71,6 +72,55 @@ def register_received_vehicle(team_name, slot, cfg_data, bsu_vcan, kistler_vcan,
|
|
71
72
|
eav24['body']['kistlerCanName'] = kistler_vcan
|
72
73
|
eav24['body']['badeniaCanName'] = badenia_vcan
|
73
74
|
|
75
|
+
# limit can rates to conserve resources
|
76
|
+
|
77
|
+
if eav24["body"]["canReceiveRate"] > 10000:
|
78
|
+
logger.info("can rx was > 10000. clamping")
|
79
|
+
eav24["body"]["canReceiveRate"]
|
80
|
+
|
81
|
+
if eav24["body"]["canLowSendRate"] > 10:
|
82
|
+
logger.info("can tx low was > 10. clamping")
|
83
|
+
eav24["body"]["canLowSendRate"] = 10
|
84
|
+
|
85
|
+
if eav24["body"]["canMedSendRate"] > 100:
|
86
|
+
logger.info("can tx med was > 100. clamping")
|
87
|
+
eav24["body"]["canMedSendRate"] = 100
|
88
|
+
|
89
|
+
if eav24["body"]["canHighSendRate"] > 500:
|
90
|
+
logger.info("can tx high was > 500. clamping")
|
91
|
+
eav24["body"]["canHighSendRate"] = 500
|
92
|
+
|
93
|
+
# clamp vectornav rates
|
94
|
+
|
95
|
+
vn = get_payload(cfg_object, "VectornavIpd")
|
96
|
+
if vn.get("namedDataStreams", {}).get("CommonGroup", {}).get("rateHz", 0) > 100:
|
97
|
+
logger.info("vn CommonGroup rate was > 100. clamping")
|
98
|
+
vn["namedDataStreams"]["CommonGroup"]["rateHz"] = 100
|
99
|
+
|
100
|
+
if vn.get("namedDataStreams", {}).get("GpsGroup", {}).get("rateHz", 0) > 10:
|
101
|
+
logger.info("vn GpsGroup rate was > 10. clamping")
|
102
|
+
vn["namedDataStreams"]["GpsGroup"]["rateHz"] = 10
|
103
|
+
|
104
|
+
if vn.get("namedDataStreams", {}).get("Gps2Group", {}).get("rateHz", 0) > 10:
|
105
|
+
logger.info("vn Gps2Group rate was > 10. clamping")
|
106
|
+
vn["namedDataStreams"]["Gps2Group"]["rateHz"] = 10
|
107
|
+
|
108
|
+
if vn.get("namedDataStreams", {}).get("ImuGroup", {}).get("rateHz", 0) > 150:
|
109
|
+
logger.info("vn ImuGroup rate was > 150. clamping")
|
110
|
+
vn["namedDataStreams"]["ImuGroup"]["rateHz"] = 150
|
111
|
+
|
112
|
+
if vn.get("namedDataStreams", {}).get("AttitudeGroup", {}).get("rateHz", 0) > 100:
|
113
|
+
logger.info("vn AttitudeGroup rate was > 100. clamping")
|
114
|
+
vn["namedDataStreams"]["AttitudeGroup"]["rateHz"] = 100
|
115
|
+
|
116
|
+
if vn.get("namedDataStreams", {}).get("Tii", {}).get("rateHz", 0) > 100:
|
117
|
+
logger.info("vn Tii rate was > 100. clamping")
|
118
|
+
vn["namedDataStreams"]["Tii"]["rateHz"] = 100
|
119
|
+
|
120
|
+
if vn.get("namedDataStreams", {}).get("NavSatFix", {}).get("rateHz", 0) > 10:
|
121
|
+
logger.info("vn NavSatFix rate was > 10. clamping")
|
122
|
+
vn["namedDataStreams"]["NavSatFix"]["rateHz"] = 10
|
123
|
+
|
74
124
|
ros2 = get_payload(cfg_object, 'Ros2')
|
75
125
|
if ros2 is None:
|
76
126
|
logger.info('no ros2 payload found. adding with domain id {}'.format(slot))
|
@@ -122,6 +172,18 @@ def register_received_vehicle(team_name, slot, cfg_data, bsu_vcan, kistler_vcan,
|
|
122
172
|
logger.info('found GroundTruthSensor payload. ensuring it is enabled')
|
123
173
|
gtc['bEnabled'] = True
|
124
174
|
|
175
|
+
# limit gt rates
|
176
|
+
|
177
|
+
gtc = get_payload(cfg_object, 'GroundTruthSensor')
|
178
|
+
if gtc["body"]["myGroundTruthDsd"]["rateHz"] > 100:
|
179
|
+
logger.info("myGroundTruthDsd rate was > 100. clamping")
|
180
|
+
gtc["body"]["myGroundTruthDsd"]["rateHz"] = 100
|
181
|
+
|
182
|
+
if gtc["body"]["opponentGroundTruthDsd"]["rateHz"] > 100:
|
183
|
+
logger.info("opponentGroundTruthDsd rate was > 100. clamping")
|
184
|
+
gtc["body"]["opponentGroundTruthDsd"]["rateHz"] = 100
|
185
|
+
|
186
|
+
|
125
187
|
# do not allow default object name (collision)
|
126
188
|
if cfg_object['name'] == 'eav24':
|
127
189
|
logger.info('setting vehicle name from default to team name: {}'.format(team_name))
|
avrs/requests/fault_injection.py
CHANGED
avrs/requests/misc.py
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
from avrs.requests.request import AvrsApiRequest
|
2
|
+
from avrs.requests.rest_request import AvrsRestApiRequest
|
2
3
|
|
3
4
|
class AvrsGetSimVersionRequest(AvrsApiRequest):
|
4
5
|
def __init__(self, parser, cfg):
|
@@ -10,6 +11,15 @@ class AvrsGetSimVersionRequest(AvrsApiRequest):
|
|
10
11
|
return {
|
11
12
|
}
|
12
13
|
|
14
|
+
class AvrsDescribeSimRestRequest(AvrsRestApiRequest):
|
15
|
+
def __init__(self, parser, cfg):
|
16
|
+
AvrsRestApiRequest.__init__(self, parser, cfg, '/api/v1.0/describe-app', 'GET')
|
17
|
+
psr = parser.add_parser('describe-app', help='get the version of the currently running simulator')
|
18
|
+
psr.set_defaults(func=self.send_request)
|
19
|
+
|
20
|
+
def get_request_params(self, args):
|
21
|
+
return {}
|
22
|
+
|
13
23
|
class AvrsGetExitSimRequest(AvrsApiRequest):
|
14
24
|
def __init__(self, parser, cfg):
|
15
25
|
AvrsApiRequest.__init__(self, parser, cfg, 'ExitSim', 0)
|
avrs/requests/race_control.py
CHANGED
@@ -4,7 +4,7 @@ from avrs.requests.request import AvrsApiRequest
|
|
4
4
|
class AvrsRaceControlRequest(AvrsApiRequest):
|
5
5
|
def __init__(self, parser, cfg):
|
6
6
|
AvrsApiRequest.__init__(self, parser, cfg, 'RaceControl', 'Ego')
|
7
|
-
psr = parser.add_parser('race-control', help='
|
7
|
+
psr = parser.add_parser('race-control', help='send different flags to the race control')
|
8
8
|
|
9
9
|
psr.add_argument(
|
10
10
|
'--session-type',
|
@@ -23,6 +23,12 @@ class AvrsRaceControlRequest(AvrsApiRequest):
|
|
23
23
|
type=int,
|
24
24
|
default=-1,
|
25
25
|
help='the id of the car flag to set')
|
26
|
+
|
27
|
+
psr.add_argument(
|
28
|
+
'--sector-flag',
|
29
|
+
type=int,
|
30
|
+
default=-1,
|
31
|
+
help='the id of the sector flag to set')
|
26
32
|
|
27
33
|
psr.add_argument(
|
28
34
|
'--object-name',
|
@@ -37,5 +43,6 @@ class AvrsRaceControlRequest(AvrsApiRequest):
|
|
37
43
|
return {
|
38
44
|
'sessionType': args.session_type,
|
39
45
|
'trackFlag': args.track_flag,
|
40
|
-
'carFlag': args.car_flag
|
46
|
+
'carFlag': args.car_flag,
|
47
|
+
'sectorFlag': args.sector_flag
|
41
48
|
}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
import socket
|
2
|
+
import json
|
3
|
+
import os
|
4
|
+
import os.path
|
5
|
+
import multiprocessing
|
6
|
+
import time
|
7
|
+
import sys
|
8
|
+
import http.client
|
9
|
+
|
10
|
+
# the new API request
|
11
|
+
|
12
|
+
class AvrsRestApiRequest:
|
13
|
+
def __init__(self, parser, cfg, endpoint, method):
|
14
|
+
self.endpoint = endpoint
|
15
|
+
self.method = method
|
16
|
+
self.verbose = False
|
17
|
+
self.cfg = cfg
|
18
|
+
|
19
|
+
def get_request_body(self, args):
|
20
|
+
return {}
|
21
|
+
|
22
|
+
def get_request_params(self, args):
|
23
|
+
return {}
|
24
|
+
|
25
|
+
def send_request(self, args):
|
26
|
+
|
27
|
+
sim_address = '0.0.0.0'
|
28
|
+
# if 'sim_address' in self.cfg:
|
29
|
+
# sim_address = self.cfg['sim_address']
|
30
|
+
# connection_addr = os.environ.get('AVRS_SIM_ADDRESS', sim_address)
|
31
|
+
|
32
|
+
sim_port = 51111
|
33
|
+
# if 'sim_api_port' in self.cfg:
|
34
|
+
# sim_port = self.cfg['sim_api_port']
|
35
|
+
|
36
|
+
if args.verbose:
|
37
|
+
print('sending request to: {}:{}'.format(sim_address, sim_port))
|
38
|
+
connection = http.client.HTTPConnection(sim_address, sim_port, timeout=10)
|
39
|
+
headers = {'Content-type': 'application/json'}
|
40
|
+
body = json.dumps(self.get_request_body(args)).encode('utf-8')
|
41
|
+
connection.request(self.method, self.endpoint, body, headers)
|
42
|
+
response = connection.getresponse()
|
43
|
+
if response.status != 200:
|
44
|
+
print('response had status code {}'.format(response.status))
|
45
|
+
print('{}'.format(response.read().decode('utf-8')))
|
File without changes
|
File without changes
|
File without changes
|