autoverse-cli 0.1.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,111 @@
1
+ from avrs.requests.request import AvrsApiRequest
2
+
3
+ RESERVE_MV_SLOT_HELP = '''
4
+ slot (if an open slot exists, there are 4 total) using the given name to add a new vehicle and the appropriate topics.
5
+ It will despawn the default vehicle and remove the default ROS topics when it is first run. Each vehicle added will be
6
+ given its own topics prefixed by the given name, and the slot index will correspond to the vcan it will use.
7
+ Note that this will require having active vcans for each vehicle you wish to use.
8
+ (eg, if you want to use 4 vehicles, you will need vcan0, vcan1, vcan2, and vcan3)
9
+ '''
10
+
11
+ # use these to spawn MVs
12
+ MV_LANDMARKS = [
13
+ 'MvStart0',
14
+ 'MvStart1',
15
+ 'MvStart2',
16
+ 'MvStart3'
17
+ ]
18
+
19
+ class ReserveMvSlot(AvrsApiRequest):
20
+ def __init__(self, parser, cfg):
21
+ AvrsApiRequest.__init__(self, parser, cfg, 'SpawnObject', 0)
22
+ psr = parser.add_parser('reserve-mv-slot', help=RESERVE_MV_SLOT_HELP)
23
+
24
+ psr.add_argument(
25
+ 'slot_name',
26
+ help='the name of the vehicle to put in the specified slot')
27
+
28
+ psr.add_argument(
29
+ 'slot_index',
30
+ type=int,
31
+ choices=[0, 1, 2, 3],
32
+ help='the slot index (0-4) to reserve')
33
+
34
+ psr.add_argument(
35
+ '--bsu-can-name',
36
+ default='vcan0',
37
+ help='the name of the CAN interface to use for the BSU CAN bus on the new vehicle')
38
+
39
+ psr.add_argument(
40
+ '--kistler-can-name',
41
+ default='vcan1',
42
+ help='the name of the CAN interface to use for the Kistler CAN bus on the new vehicle')
43
+
44
+ psr.add_argument(
45
+ '--badenia-can-name',
46
+ default='vcan1',
47
+ help='the name of the CAN interface to use for the bandanania CAN bus on the new vehicle')
48
+
49
+ psr.add_argument(
50
+ '--with-view-cameras',
51
+ action='store_true',
52
+ help='if the new vehicle should have cameras attached to it')
53
+
54
+ psr.add_argument(
55
+ '--enable-lidar',
56
+ action='store_true',
57
+ help='if set, the lidar will be enabled on the new vehicle')
58
+
59
+ psr.add_argument(
60
+ '--enable-camera-sensor',
61
+ action='store_true',
62
+ help='if set, the camera will be enabled on the new vehicle')
63
+
64
+ psr.add_argument(
65
+ '--disable-hud',
66
+ action='store_true',
67
+ help='if set, the new vehicle will not create a HUD (mutiple HUDs will clutter the screen)')
68
+
69
+
70
+ psr.set_defaults(func=self.send_request)
71
+
72
+ def get_request_body(self, args):
73
+
74
+ eav_init_pld = {
75
+ 'TypeName': 'Eav24Initializer',
76
+ 'Body': {
77
+ 'BsuCanName': args.bsu_can_name,
78
+ 'KistlerCanNam': args.kistler_can_name,
79
+ 'BadeniaCanName': args.badenia_can_name,
80
+ 'bHudEnabled': not args.disable_hud,
81
+ 'bEnableLidar': args.enable_lidar,
82
+ 'bEnableCameraSensor': args.enable_camera_sensor
83
+ }
84
+ }
85
+
86
+ plds = [
87
+ eav_init_pld
88
+ ]
89
+
90
+ if args.with_view_cameras:
91
+ plds.append(
92
+ {
93
+ 'TypeName': 'InitializerTemplates',
94
+ 'Body': {
95
+ 'Templates': [
96
+ {
97
+ 'PayloadType': 'SimViewTargetIpd',
98
+ 'PayloadSpec': 'DefaultCarCams'
99
+ }
100
+ ]
101
+ }
102
+ })
103
+
104
+ return {
105
+ 'Name': args.slot_name,
106
+ 'Type': 'Eav24',
107
+ 'Location': {},
108
+ 'Rotation': {},
109
+ 'Landmark': MV_LANDMARKS[args.slot_index],
110
+ 'Payloads': plds
111
+ }
@@ -0,0 +1,12 @@
1
+ from avrs.requests.request import AvrsApiRequest
2
+
3
+ class ResetToTrack(AvrsApiRequest):
4
+ def __init__(self, parser, cfg):
5
+ AvrsApiRequest.__init__(self, parser, cfg, 'ResetToTrack', 'Ego')
6
+ psr = parser.add_parser('reset-to-track', help='moves the car to the closest point on track pointing down track')
7
+ psr.set_defaults(func=self.send_request)
8
+
9
+ def get_request_body(self, args):
10
+ return {
11
+
12
+ }
@@ -0,0 +1,12 @@
1
+ from avrs.requests.request import AvrsApiRequest
2
+
3
+ class Restart(AvrsApiRequest):
4
+ def __init__(self, parser, cfg):
5
+ AvrsApiRequest.__init__(self, parser, cfg, 'RestartSimulation', 0)
6
+ psr = parser.add_parser('restart', help='command to restart the entire simulator')
7
+ psr.set_defaults(func=self.send_request)
8
+
9
+ def get_request_body(self, args):
10
+ return {
11
+
12
+ }
@@ -0,0 +1,20 @@
1
+ from avrs.requests.request import AvrsApiRequest
2
+
3
+ class Teleport(AvrsApiRequest):
4
+ def __init__(self, parser, cfg):
5
+ AvrsApiRequest.__init__(self, parser, cfg, 'Teleport', "Car1")
6
+ psr = parser.add_parser('teleport', help='Teleports the car to the given x,y,z in either enu or lla.')
7
+ psr.add_argument('x', type=float, help='new x position')
8
+ psr.add_argument('y', type=float, help='new y position')
9
+ psr.add_argument('z', type=float, help='new z position')
10
+ #psr.add_argument('nav', help='lla or enu coordinate system.', nargs=1, choices=('lla', 'enu'))
11
+ psr.set_defaults(func=self.send_request)
12
+
13
+
14
+ def get_request_body(self, args):
15
+ return {
16
+ "X": args.x,
17
+ "Y": args.y,
18
+ "Z": args.z
19
+ #'NavFrame': args.nav
20
+ }
avrs/requests/vd.py ADDED
@@ -0,0 +1,33 @@
1
+ from avrs.requests.request import AvrsApiRequest
2
+
3
+ class Vd():
4
+ def __init__(self, parser, cfg):
5
+ psr = parser.add_parser('vd', help='Vehicle dynamic options')
6
+ sps = psr.add_subparsers(required= True, help='sub-command of vd')
7
+ SetFrictionModifier(sps, cfg)
8
+ SlipModel(sps, cfg)
9
+
10
+ class SetFrictionModifier(AvrsApiRequest):
11
+ def __init__(self, parser, cfg):
12
+ AvrsApiRequest.__init__(self, parser, cfg, 'SetFrictionModifiers', 0)
13
+ psr = parser.add_parser('set-friction-modifier', help='Change the amount of grip the car has.'
14
+ + '0 is no grip and higher values will prevent spinning')
15
+ psr.add_argument('modifier-value', type = float, help = "Modified grip value")
16
+ psr.set_defaults(func=self.send_request)
17
+
18
+ def get_request_body(self, args):
19
+ return {
20
+ 'Modifier Value': args.modifier-value
21
+ }
22
+
23
+ class SlipModel(AvrsApiRequest):
24
+ def __init__(self, parser, cfg):
25
+ AvrsApiRequest.__init__(self, parser, cfg, 'SlipModel', 0)
26
+ psr = parser.add_parser('slip-model', help='Change the tire slip model to be pure slip only or combined slip')
27
+ psr.add_argument('slip', choices = ['pure-slip, combined-slip'], help = 'type of slip')
28
+ psr.set_defaults(func=self.send_request)
29
+
30
+ def get_request_body(self, args):
31
+ return {
32
+ 'Modifier Value': args.slip
33
+ }
avrs/tests.py ADDED
@@ -0,0 +1,9 @@
1
+ import os
2
+ import unittest
3
+ import shutil
4
+ import subprocess
5
+
6
+ class TestMisc(unittest.TestCase):
7
+
8
+ def test_misc(self):
9
+ self.assertTrue(True)