0
点赞
收藏
分享

微信扫一扫

[收藏]CRALA模拟器全网优质学习资料整合[入门-1]

青青子衿谈育儿 2022-04-21 阅读 22


前言

carla作为一款优质自动驾驶模拟器,在国内却没有太多的系列教程,比较有代表性的有叶小飞在知乎的系列文章,精简概述carla的一些功能,但对于新手来说还不够详细,以下是CRALA模拟器比较优质的一些学习资料整合


一、carla官网

首推carla官网,详细全面,内容太多以至于找起来不方便,没有整段能跑的代码且对英语阅读能力要求比较高,适合不着急的时候花时间慢慢啃:

carla官网:CARLA Simulator

二、视频类

1.1 车辆生成及rgb摄像头安装

Python控制特斯拉自动驾驶,ADAS仿真软件Carla学习笔记第一部分_哔哩哔哩_bilibili安装RGB摄像头,ADAS仿真软件Carla学习笔记第二部分_哔哩哔哩_bilibili

import argparse
import glob
import os
import sys

try:
    sys.path.append(glob.glob('../carla/dist/carla-*%d.%d-%s.egg' % (
        sys.version_info.major,
        sys.version_info.minor,
        'win-amd64' if os.name == 'n在全网都t' else 'linux-x86_64'))[0])
except IndexError:
    pass

import carla

import random
import time
import numpy as np
import cv2

IM_WIDTH = 800
IM_HEIGHT = 640

def process_img(image):
        i = np.array(image.raw_data)
        i2=i.reshape((IM_WIDTH , IM_HEIGHT ,4))
        i3 = i2[:,:,:3]
        cv2.imshow(" ",i3)
        cv2.waitKey(100)
        return i3/255.0
    
actor_list = []
try:
            client = carla.Client('127.0.0.1', 2000)
            client.set_timeout(2.0)
            world = client.get_world()
            blueprint_library = world.get_blueprint_library()
            bp = blueprint_library.filter('model3')[0]#指定车辆
            print(bp)
            transform = random.choice(world.get_map().get_spawn_points())#随即出发降落点
            vehicle = world.spawn_actor(bp, transform)
            vehicle.set_autopilot(True)
            actor_list.append(vehicle)
            cam_bp = blueprint_library.find ("sensor.camera.rgb")
            print(cam_bp)
            cam_bp.set_attribute("image_size_x",f"{IM_WIDTH}")
            cam_bp.set_attribute("image_size_y",f"{IM_HEIGHT}")
            cam_bp.set_attribute("fov","110")
            spawn_point = carla. Transform(carla.Location(x=2.5, z=2.7))
            sensor = world.spawn_actor(cam_bp,spawn_point,attach_to=vehicle)
            actor_list.append (sensor)
            sensor. listen (lambda data: process_img (data))
            time.sleep(120)
    
    
finally :
    for actor in actor_list:
     actor.destroy()
    print("201904020115 ")

     原视频没有放出代码,这里我把自己跟着写的放出来了,和视频里代码是一样的,但摄像头的画面是不正常的,我根据其他博客改成了以下这种,但画面还是只有一帧,没有实现和视频里一样的实时画面拍摄效果,知道怎么解决的小伙伴欢迎评论区留言讨论!

import argparse
import glob
import os
import sys

try:
    sys.path.append(glob.glob('../carla/dist/carla-*%d.%d-%s.egg' % (
        sys.version_info.major,
        sys.version_info.minor,
        'win-amd64' if os.name == 'nt' else 'linux-x86_64'))[0])
except IndexError:
    pass
import carla
import random
import time
import numpy as np
import cv2

IM_WIDTH = 640
IM_HEIGHT = 480


def process_img(image):
        i = np.array(image.raw_data)
        i2 = i.reshape((IM_HEIGHT, IM_WIDTH, 4))
        i3 = i2[:, :, :3]
        cv2.imshow("", i3)
        cv2.waitKey(20)
        return i3 / 255.0


actor_list = []
try:
    argparser = argparse.ArgumentParser(
        description=__doc__)
    argparser.add_argument(
        '--host',
        metavar='H',
        default='127.0.0.1',
        help='IP of the host server (default: 127.0.0.1)')
    argparser.add_argument(
        '-p', '--port',
        metavar='P',
        default=2000,
        type=int,
        help='TCP port to listen to (default: 2000)')
    args = argparser.parse_args()

    actor_list = []
    client = carla.Client(args.host, args.port)
    client.set_timeout(20.0)

    world = client.get_world()
    blueprint_library = world.get_blueprint_library()
    bp = blueprint_library.filter('model3')[0]
    print(bp)

    spawn_point = random.choice(world.get_map().get_spawn_points())
    vehicle = world.spawn_actor(bp, spawn_point)
    vehicle.apply_control(carla.VehicleControl(throttle=1.0, steer=0.0))
    vehicle.set_autopilot(True)  # if you just wanted some NPCs to drive.
   
    actor_list.append(vehicle)

    #https://carla.readthedocs.io/en/latest/cameras_and_sensors
    blueprint = blueprint_library.find('sensor.camera.rgb')
    blueprint.set_attribute('image_size_x', f'{IM_WIDTH}')
    blueprint.set_attribute('image_size_y', f'{IM_HEIGHT}')
    blueprint.set_attribute('fov', '110')
    spawn_point = carla.Transform(carla.Location(x=2.5, z=0.7))
    sensor = world.spawn_actor(blueprint, spawn_point, attach_to=vehicle)
    actor_list.append(sensor)
    sensor.listen(lambda data: process_img(data))
    time.sleep(60)

finally:
    print('destroying actors')
    for actor in actor_list:
        actor.destroy()
    print('done.')

1.2 从油管搬运过来的概述

Carla和Python实现自动驾驶_哔哩哔哩_bilibili

1.3 运动规划/MPC控制

CarLa仿真器下实现自动驾驶运动规划_哔哩哔哩_bilibili

CARLA-MPC控制_哔哩哔哩_bilibili

自动驾驶运动规划-CarLa_哔哩哔哩_bilibili

1.4 其他

   b站的carla教程讲的东西差不多,一般停留在入门介绍和基础功能教学。油管的carla教程比b站的要全面和丰富,能科学上网可以去学习,不过是全英而且很多没有字幕,讲的时长一般也都很久,也是比较适合有时间慢慢啃。

二、文档类

2.1  小飞自动驾驶系列分享 - 知乎

  该系列值得学习,从几个主要方面都对carla做了介绍,包括:

 2.2 Python酷 - 来Python酷学Python库[点击跳转]

这几篇也从基本概念-交互-摄像头使用-交通管理器四个方面对carla进行了介绍,值得学习

2.3 【仿真】Carla之收集数据快速教程 (附完整代码) [点击跳转]

该篇文章介绍了如何在车上安装前摄、侧摄以及在头顶的激光雷达并保存影像到指定文件夹地点,

一开始运行可能会遇到报错说车辆模型不存在,改一下车辆模型名称就好了,点击这里查看可从蓝图库调用的车辆模型名称:CARLA蓝图库可调用的车辆模型名称大全_问题多多快快改的博客-CSDN博客

再跑就没问题了,很棒的模型!

代码下载: tutorial/collect_data.py · 张聪明/CarlaPythonAPI - Gitee.com

2.4 Carla 学习笔记(1)之雷达与摄像头联合采集数据并存储数据[点击跳转]

一开始运行可能也会遇到报错说车辆模型不存在,改一下车辆模型名称就好了,方法同上,

再运行可以实现摄像头采集数据并存储到指定文件夹,不过摄像头不是固定在车上,而是在一个固定位置,搞了很久没能找到解决方法,感兴趣的朋友欢迎在留言区评论讨论!

2.5  CARLA的使用笔记一: 放置车辆和前置摄像头[点击跳转]

车辆放置成功,但摄像头画面只有起始地点拍摄的一帧,没有实现实时画面拍摄效果,知道怎么解决的小伙伴欢迎评论区留言讨论!
 

三、可能遇到的问题:

3.1 线程报错问题

1.QObject::moveToThread: Current thread (0x7f632833ba40) is not the object's thread (0x7f63283b1ec0). Cannot move to target thread (0x7f632833ba40) 2.ModuleNotFoundError: No module named 'conda'

3.2 pandas安装问题

3. from pandas._libs.tslibs import IncompatibleFrequency, OutOfBoundsDatetime ImportError: cannot import name 'IncompatibleFrequency' 4.AttributeError: module  pandas  has no attribute  core

举报

相关推荐

0 条评论