Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_damage(beamng):
scenario = Scenario('smallgrid', 'damage_test')
dummy = Vehicle('dummy', model='pickup')
scenario.add_vehicle(dummy, pos=(0, 0, 0))
scenario.make(beamng)
vehicle = Vehicle('test_car', model='etk800')
damage = Damage()
vehicle.attach_sensor('damage', damage)
with beamng as bng:
bng.load_scenario(scenario)
bng.start_scenario()
scenario.add_vehicle(vehicle, pos=(0, 0, 32), rot=(-90, 0, 0),
cling=False)
bng.step(600)
def test_vehicle_move(beamng):
with beamng as bng:
bng.set_deterministic()
scenario = Scenario('smallgrid', 'move_test')
vehicle = Vehicle('test_car', model='etk800')
scenario.add_vehicle(vehicle, pos=(0, 0, 0), rot=(0, 0, 0))
scenario.make(bng)
bng.load_scenario(scenario)
bng.start_scenario()
bng.pause()
vehicle.control(throttle=1)
bng.step(120)
vehicle.update_vehicle()
assert np.linalg.norm(vehicle.state['pos']) > 1
scenario.delete(beamng)
def test_electrics(beamng):
scenario = Scenario('smallgrid', 'electrics_test')
vehicle = Vehicle('test_car', model='etk800')
electrics = Electrics()
vehicle.attach_sensor('electrics', electrics)
scenario.add_vehicle(vehicle, pos=(0, 0, 0))
scenario.make(beamng)
with beamng as bng:
bng.load_scenario(scenario)
bng.start_scenario()
bng.step(120)
vehicle.control(throttle=1.0)
bng.step(360)
def test_new_scenario(beamng):
with beamng as bng:
scenario = Scenario('smallgrid', 'test_scenario')
vehicle = Vehicle('test_car', model='etk800')
scenario.add_vehicle(vehicle, pos=(0, 0, 0), rot=(0, 0, 0))
scenario.make(bng)
bng.load_scenario(scenario)
assert bng.get_scenario_name() == 'test_scenario'
scenario.delete(beamng)
with beamng as bng:
with pytest.raises(BNGValueError):
bng.load_scenario(scenario)
def test_vehicle_spawn(beamng):
scenario = Scenario('smallgrid', 'spawn_test')
vehicle = Vehicle('irrelevant', model='pickup')
scenario.add_vehicle(vehicle, pos=(0, 0, 0), rot=(0, 0, 0))
scenario.make(beamng)
with beamng as bng:
bng.load_scenario(scenario)
bng.start_scenario()
other = Vehicle('relevant', model='etk800')
scenario.add_vehicle(other, pos=(10, 10, 0), rot=(0, 0, 0))
other.update_vehicle()
assert 'pos' in other.state
bng.step(120)
scenario.remove_vehicle(other)
bng.step(600)
assert other.state is None
fig = plt.figure(1, figsize=(10, 5))
axarr = fig.subplots(2, 3)
a_colour = axarr[0, 0]
b_colour = axarr[1, 0]
a_depth = axarr[0, 1]
b_depth = axarr[1, 1]
a_annot = axarr[0, 2]
b_annot = axarr[1, 2]
plt.ion()
beamng = BeamNGpy('localhost', 64256)
# Create a scenario in west_coast_usa
scenario = Scenario('west_coast_usa', 'research_test',
description='Random driving for research')
# Set up first vehicle, with two cameras, gforces sensor, lidar, electrical
# sensors, and damage sensors
vehicle = Vehicle('ego_vehicle', model='etk800',
licence='RED', color='Red')
# Set up sensors
pos = (-0.3, 1, 1.0)
direction = (0, 1, 0)
fov = 120
resolution = (512, 512)
front_camera = Camera(pos, direction, fov, resolution,
colour=True, depth=True, annotation=True)
pos = (0.0, 3, 1.0)
direction = (0, -1, 0)
def main():
setup_logging()
beamng = BeamNGpy('localhost', 64256)
scenario = Scenario('west_coast_usa', 'lidar_tour',
description='Tour through the west coast gathering '
'Lidar data')
vehicle = Vehicle('ego_vehicle', model='etk800', licence='LIDAR')
lidar = Lidar()
vehicle.attach_sensor('lidar', lidar)
scenario.add_vehicle(vehicle, pos=(-717.121, 101, 118.675), rot=(0, 0, 45))
scenario.make(beamng)
bng = beamng.open(launch=True)
try:
bng.load_scenario(scenario)
window = open_window(SIZE, SIZE)
lidar_vis = LidarVisualiser(Lidar.max_points)
def main():
setup_logging()
beamng = BeamNGpy('localhost', 64256)
scenario = Scenario('west_coast_usa', 'ai_sine')
vehicle = Vehicle('ego_vehicle', model='etk800', licence='AI')
orig = (-769.1, 400.8, 142.8)
scenario.add_vehicle(vehicle, pos=orig, rot=(0, 0, 180))
scenario.make(beamng)
script = list()
for i in range(3600):
node = {
# Calculate the position as a sinus curve that makes the vehicle
# drive from left to right. The z-coordinate is not calculated in
# any way because `ai_set_script` by default makes the polyline to
# follow cling to the ground, meaning the z-coordinate will be
# filled in automatically.