autoverse-cli 0.17.2__py3-none-any.whl → 0.17.4__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.2.dist-info → autoverse_cli-0.17.4.dist-info}/METADATA +3 -2
- {autoverse_cli-0.17.2.dist-info → autoverse_cli-0.17.4.dist-info}/RECORD +13 -12
- {autoverse_cli-0.17.2.dist-info → autoverse_cli-0.17.4.dist-info}/WHEEL +1 -1
- avrs/app_version.py +1 -1
- avrs/avrs.py +3 -0
- avrs/race_cloud_cfg_util.py +61 -0
- 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.2.dist-info → autoverse_cli-0.17.4.dist-info}/entry_points.txt +0 -0
- {autoverse_cli-0.17.2.dist-info → autoverse_cli-0.17.4.dist-info/licenses}/LICENSE +0 -0
- {autoverse_cli-0.17.2.dist-info → autoverse_cli-0.17.4.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.4
|
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,7 +1,8 @@
|
|
1
|
+
autoverse_cli-0.17.4.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=t--fDuMUUQwKLbqbG_Eryk_bLk5BIJfcO3GYVqoc2LQ,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
|
@@ -9,7 +10,7 @@ avrs/launcher.py,sha256=kk1lyHHLgFZ4zsFfa_zV5f1kYbUODT6wEILJ8TZ16rQ,9353
|
|
9
10
|
avrs/launcher_util.py,sha256=sO3k_z3A-HIQdJVkVXNXUAE_MGFwAYiZUqQBoFwOqew,5325
|
10
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=7iulIDhrBUKO3scfwcJI5ZzPV0dpuq2KgH3Aqg2q9E4,9986
|
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.2.dist-info/RECORD,,
|
44
|
+
autoverse_cli-0.17.4.dist-info/METADATA,sha256=y_J6ubSU1eSkCC2Cg1YL1JwqMVSuPI-5bNEOuLaXMMQ,3364
|
45
|
+
autoverse_cli-0.17.4.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
|
46
|
+
autoverse_cli-0.17.4.dist-info/entry_points.txt,sha256=Cb9qsUyU5AKkklehCcvtfT0-N3SXbUEqvjze4iEU5kE,40
|
47
|
+
autoverse_cli-0.17.4.dist-info/top_level.txt,sha256=-AJO2e4MCVej6hY0U84pu5NfMeMW5qaAPSMisDT5rmA,5
|
48
|
+
autoverse_cli-0.17.4.dist-info/RECORD,,
|
avrs/app_version.py
CHANGED
avrs/avrs.py
CHANGED
avrs/race_cloud_cfg_util.py
CHANGED
@@ -72,6 +72,55 @@ def register_received_vehicle(team_name, slot, cfg_data, bsu_vcan, kistler_vcan,
|
|
72
72
|
eav24['body']['kistlerCanName'] = kistler_vcan
|
73
73
|
eav24['body']['badeniaCanName'] = badenia_vcan
|
74
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("body", {}).get("namedDataStreams", {}).get("CommonGroup", {}).get("rateHz", 0) > 100:
|
97
|
+
logger.info("vn CommonGroup rate was > 100. clamping")
|
98
|
+
vn["body"]["namedDataStreams"]["CommonGroup"]["rateHz"] = 100
|
99
|
+
|
100
|
+
if vn.get("body", {}).get("namedDataStreams", {}).get("GpsGroup", {}).get("rateHz", 0) > 10:
|
101
|
+
logger.info("vn GpsGroup rate was > 10. clamping")
|
102
|
+
vn["body"]["namedDataStreams"]["GpsGroup"]["rateHz"] = 10
|
103
|
+
|
104
|
+
if vn.get("body", {}).get("namedDataStreams", {}).get("Gps2Group", {}).get("rateHz", 0) > 10:
|
105
|
+
logger.info("vn Gps2Group rate was > 10. clamping")
|
106
|
+
vn["body"]["namedDataStreams"]["Gps2Group"]["rateHz"] = 10
|
107
|
+
|
108
|
+
if vn.get("body", {}).get("namedDataStreams", {}).get("ImuGroup", {}).get("rateHz", 0) > 150:
|
109
|
+
logger.info("vn ImuGroup rate was > 150. clamping")
|
110
|
+
vn["body"]["namedDataStreams"]["ImuGroup"]["rateHz"] = 150
|
111
|
+
|
112
|
+
if vn.get("body", {}).get("namedDataStreams", {}).get("AttitudeGroup", {}).get("rateHz", 0) > 100:
|
113
|
+
logger.info("vn AttitudeGroup rate was > 100. clamping")
|
114
|
+
vn["body"]["namedDataStreams"]["AttitudeGroup"]["rateHz"] = 100
|
115
|
+
|
116
|
+
if vn.get("body", {}).get("namedDataStreams", {}).get("Tii", {}).get("rateHz", 0) > 100:
|
117
|
+
logger.info("vn Tii rate was > 100. clamping")
|
118
|
+
vn["body"]["namedDataStreams"]["Tii"]["rateHz"] = 100
|
119
|
+
|
120
|
+
if vn.get("body", {}).get("namedDataStreams", {}).get("NavSatFix", {}).get("rateHz", 0) > 10:
|
121
|
+
logger.info("vn NavSatFix rate was > 10. clamping")
|
122
|
+
vn["body"]["namedDataStreams"]["NavSatFix"]["rateHz"] = 10
|
123
|
+
|
75
124
|
ros2 = get_payload(cfg_object, 'Ros2')
|
76
125
|
if ros2 is None:
|
77
126
|
logger.info('no ros2 payload found. adding with domain id {}'.format(slot))
|
@@ -123,6 +172,18 @@ def register_received_vehicle(team_name, slot, cfg_data, bsu_vcan, kistler_vcan,
|
|
123
172
|
logger.info('found GroundTruthSensor payload. ensuring it is enabled')
|
124
173
|
gtc['bEnabled'] = True
|
125
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
|
+
|
126
187
|
# do not allow default object name (collision)
|
127
188
|
if cfg_object['name'] == 'eav24':
|
128
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
|