Add example.py
This commit is contained in:
parent
b870a35fbf
commit
bf05c1220a
|
@ -0,0 +1,114 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
sys.path.append(
|
||||||
|
'PythonAPI/carla-0.9.0-py%d.%d-linux-x86_64.egg' % (sys.version_info.major,
|
||||||
|
sys.version_info.minor))
|
||||||
|
|
||||||
|
import carla
|
||||||
|
|
||||||
|
import os
|
||||||
|
import random
|
||||||
|
import time
|
||||||
|
|
||||||
|
# This function is here because this functionality haven't been ported to the
|
||||||
|
# new API yet.
|
||||||
|
def save_to_disk(image):
|
||||||
|
"""Save this image to disk (requires PIL installed)."""
|
||||||
|
|
||||||
|
filename = '_images/{:0>6d}_{:s}.png'.format(image.frame_number, image.type)
|
||||||
|
|
||||||
|
try:
|
||||||
|
from PIL import Image as PImage
|
||||||
|
except ImportError:
|
||||||
|
raise RuntimeError(
|
||||||
|
'cannot import PIL, make sure pillow package is installed')
|
||||||
|
|
||||||
|
image = PImage.frombytes(
|
||||||
|
mode='RGBA',
|
||||||
|
size=(image.width, image.height),
|
||||||
|
data=image.raw_data,
|
||||||
|
decoder_name='raw')
|
||||||
|
color = image.split()
|
||||||
|
image = PImage.merge("RGB", color[2::-1])
|
||||||
|
|
||||||
|
folder = os.path.dirname(filename)
|
||||||
|
if not os.path.isdir(folder):
|
||||||
|
os.makedirs(folder)
|
||||||
|
image.save(filename)
|
||||||
|
|
||||||
|
|
||||||
|
def main(add_a_camera, enable_autopilot):
|
||||||
|
client = carla.Client('localhost', 2020)
|
||||||
|
client.set_timeout(2000)
|
||||||
|
|
||||||
|
print('client version: %s' % client.get_client_version())
|
||||||
|
print('server version: %s' % client.get_server_version())
|
||||||
|
|
||||||
|
world = client.get_world()
|
||||||
|
|
||||||
|
blueprint_library = world.get_blueprint_library();
|
||||||
|
|
||||||
|
vehicle_blueprints = blueprint_library.filter('vehicle');
|
||||||
|
|
||||||
|
|
||||||
|
actor_list = []
|
||||||
|
|
||||||
|
try:
|
||||||
|
|
||||||
|
while True:
|
||||||
|
|
||||||
|
bp = random.choice(vehicle_blueprints)
|
||||||
|
|
||||||
|
if bp.contains_attribute('number_of_wheels'):
|
||||||
|
n = bp.get_attribute('number_of_wheels')
|
||||||
|
print('spawning vehicle %r with %d wheels' % (bp.id, n))
|
||||||
|
|
||||||
|
color = random.choice(bp.get_attribute('color').recommended_values)
|
||||||
|
bp.set_attribute('color', color)
|
||||||
|
|
||||||
|
transform = carla.Transform(
|
||||||
|
carla.Location(x=180.0, y=199.0, z=40.0),
|
||||||
|
carla.Rotation(yaw=0.0))
|
||||||
|
|
||||||
|
vehicle = world.try_spawn_actor(bp, transform)
|
||||||
|
|
||||||
|
if vehicle is None:
|
||||||
|
continue
|
||||||
|
|
||||||
|
actor_list.append(vehicle)
|
||||||
|
|
||||||
|
print(vehicle)
|
||||||
|
|
||||||
|
if add_a_camera:
|
||||||
|
add_a_camera = False
|
||||||
|
|
||||||
|
camera_bp = blueprint_library.find('camera')
|
||||||
|
# camera_bp.set_attribute('post_processing', 'Depth')
|
||||||
|
camera_transform = carla.Transform(carla.Location(x=0.4, y=0.0, z=1.4))
|
||||||
|
camera = world.spawn_actor(camera_bp, camera_transform, attach_to=vehicle)
|
||||||
|
camera.listen(save_to_disk)
|
||||||
|
|
||||||
|
if enable_autopilot:
|
||||||
|
vehicle.set_autopilot()
|
||||||
|
else:
|
||||||
|
vehicle.apply_control(carla.VehicleControl(throttle=1.0, steer=-1.0))
|
||||||
|
|
||||||
|
time.sleep(3)
|
||||||
|
|
||||||
|
print('vehicle at %s' % vehicle.get_location())
|
||||||
|
vehicle.set_location(carla.Location(x=220, y=199, z=38))
|
||||||
|
print('is now at %s' % vehicle.get_location())
|
||||||
|
|
||||||
|
time.sleep(2)
|
||||||
|
|
||||||
|
finally:
|
||||||
|
|
||||||
|
for actor in actor_list:
|
||||||
|
actor.destroy()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
|
||||||
|
main(add_a_camera=False, enable_autopilot=True)
|
|
@ -96,9 +96,10 @@ if $DO_COPY_FILES ; then
|
||||||
copy_if_changed "./LICENSE" "${DESTINATION}/LICENSE"
|
copy_if_changed "./LICENSE" "${DESTINATION}/LICENSE"
|
||||||
copy_if_changed "./CHANGELOG.md" "${DESTINATION}/CHANGELOG"
|
copy_if_changed "./CHANGELOG.md" "${DESTINATION}/CHANGELOG"
|
||||||
copy_if_changed "./Docs/release_readme.md" "${DESTINATION}/README"
|
copy_if_changed "./Docs/release_readme.md" "${DESTINATION}/README"
|
||||||
copy_if_changed "./Docs/Example.CarlaSettings.ini" "${DESTINATION}/Example.CarlaSettings.ini"
|
# copy_if_changed "./Docs/Example.CarlaSettings.ini" "${DESTINATION}/Example.CarlaSettings.ini"
|
||||||
copy_if_changed "./Util/Docker/Release.Dockerfile" "${DESTINATION}/Dockerfile"
|
copy_if_changed "./Util/Docker/Release.Dockerfile" "${DESTINATION}/Dockerfile"
|
||||||
copy_if_changed "./PythonAPI/dist/*.egg" "${DESTINATION}/PythonAPI"
|
copy_if_changed "./PythonAPI/dist/*.egg" "${DESTINATION}/PythonAPI/"
|
||||||
|
copy_if_changed "./PythonAPI/example.py" "${DESTINATION}/example.py"
|
||||||
|
|
||||||
popd >/dev/null
|
popd >/dev/null
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue