carla学习笔记(十)

article/2025/9/30 8:18:17

实验室同学需要做仿真数据的采集实验,为记录以下整个采集过程。方便未来进行类似数据采集时减少写代码的时间。

采集数据要求:

控制一辆车,从a点到b点。然后在路侧架设一个lidar,采集车辆通过激光lidar区域时的数据。

一、首先确定a点和b点。

地图选取的是carla的town03。

具体区域是这里:

 首先确定选择的a点:start_point;b点:end_point。

这里使用draw_string函数,将确定的点在地图中显示出来,方便之后的路径确定:

源码如下:

import carladef show_point(world, point_location):world.debug.draw_string(point_location, 'X', draw_shadow=False,color=carla.Color(r=0, g=255, b=0), life_time=50,persistent_lines=True)def main():client = carla.Client('localhost', 2000)client.set_timeout(2.0)world = client.get_world()start_point = carla.Location(229, 116, 2)end_point = carla.Location(20,194,2)show_point(world, start_point)show_point(world, end_point)main()

地图显示:

 图中两个绿色的x就是分别确定的start_point和end_point。

这里有几个点需要注意:

1.注意区分carla.Location和carla.Transform之间的关系。

2.注意在使用系统提供的函数的时候,它的参数的格式要求,尤其是spawn_vehicle函数。

怎么才好知道点的坐标呢?

可以使用这个函数测试。首先确定原点,然后确定x轴正向,再确定y轴正向。就可以将地图的坐标系确定出来。好久没有使用carla了,当时在这一步卡了好久,主要原因就是对于相关的函数的数据格式不熟悉了,解决报错问题花了快一个小时。。。

下面是源码:

import carladef show_point(world, point_location):world.debug.draw_string(point_location, 'P', draw_shadow=False,color=carla.Color(r=0, g=255, b=0), life_time=50,persistent_lines=True)def show_x_point(world, point_location):world.debug.draw_string(point_location, 'X', draw_shadow=False,color=carla.Color(r=0, g=255, b=0), life_time=50,persistent_lines=True)def show_y_point(world, point_location):world.debug.draw_string(point_location, 'Y', draw_shadow=False,color=carla.Color(r=0, g=255, b=0), life_time=50,persistent_lines=True)def show_O_point(world, point_location):world.debug.draw_string(point_location, 'O', draw_shadow=False,color=carla.Color(r=0, g=255, b=0), life_time=50,persistent_lines=True)def main():client = carla.Client('localhost', 2000)client.set_timeout(2.0)world = client.get_world()start_point = carla.Location(229, 116, 2)end_point = carla.Location(20,194,2)origin_point = carla.Location(0,0,0)x_axis = carla.Location(10, 0, 0)y_axis = carla.Location(0, 10, 0)show_point(world, start_point)show_point(world, end_point)show_O_point(world, origin_point)show_x_point(world, x_axis)show_y_point(world, y_axis)main()

地图显示:

 二、选择lidar点

和第一步类似,使用draw函数来找点。

源码就将上面的简单修改就可以了。

地图显示如下:

 O为架设lidar的坐标。

三、实现vehilce从a点到b点

主要调用的是agent里面的set_destination函数。

参考小飞大佬的源码,自己改了一下:

# -*- coding: utf-8 -*-import os
import random
import sysimport carlafrom agents.navigation.behavior_agent import BehaviorAgentdef main():try:client = carla.Client('localhost', 2000)client.set_timeout(2.0)world = client.get_world()origin_settings = world.get_settings()settings = world.get_settings()settings.synchronous_mode = Truesettings.fixed_delta_seconds = 0.05world.apply_settings(settings)blueprint_library = world.get_blueprint_library()# 确定起点和终点p1 = carla.Location(229, 116, 2)p2 = carla.Location(20, 194, 2)start_point = carla.Transform(p1, carla.Rotation(0,0,0))end_point = carla.Transform(p2, carla.Rotation(0, 0, 0))# 创建车辆ego_vehicle_bp = blueprint_library.find('vehicle.lincoln.mkz2017')ego_vehicle_bp.set_attribute('color', '0, 0, 0')vehicle = world.spawn_actor(ego_vehicle_bp, start_point)world.tick()# 设置车辆的驾驶模式agent = BehaviorAgent(vehicle, behavior='normal')# 核心函数agent.set_destination(agent.vehicle.get_location(), end_point.location, clean=True)while True:agent.update_information(vehicle)world.tick()if len(agent._local_planner.waypoints_queue)<1:print('======== Success, Arrivied at Target Point!')break# 设置速度限制speed_limit = vehicle.get_speed_limit()agent.get_local_planner().set_speed(speed_limit)control = agent.run_step(debug=True)vehicle.apply_control(control)finally:world.apply_settings(origin_settings)vehicle.destroy()if __name__ == '__main__':try:main()except KeyboardInterrupt:print(' - Exited by user.')

比较简单,看注释就好。

四、生成lidar并采集数据

将生成lidar的部分加入到第三章里面的源码中。

# -*- coding: utf-8 -*-import os
import carlafrom agents.navigation.behavior_agent import BehaviorAgentdef main():try:client = carla.Client('localhost', 2000)client.set_timeout(2.0)world = client.get_world()origin_settings = world.get_settings()settings = world.get_settings()settings.synchronous_mode = Truesettings.fixed_delta_seconds = 0.05world.apply_settings(settings)blueprint_library = world.get_blueprint_library()# 设置储存位置output_path = 'lidar_data'# 确定起点和终点p1 = carla.Location(229, 116, 2)p2 = carla.Location(20, 194, 2)start_point = carla.Transform(p1, carla.Rotation(0,0,0))end_point = carla.Transform(p2, carla.Rotation(0, 0, 0))# 创建车辆ego_vehicle_bp = blueprint_library.find('vehicle.lincoln.mkz2017')ego_vehicle_bp.set_attribute('color', '0, 0, 0')vehicle = world.spawn_actor(ego_vehicle_bp, start_point)# 创建lidar,设置lidar的参数lidar_bp = blueprint_library.find('sensor.lidar.ray_cast')lidar_bp.set_attribute('channels', str(32))lidar_bp.set_attribute('points_per_second', str(90000))lidar_bp.set_attribute('rotation_frequency', str(40))lidar_bp.set_attribute('range', str(20))# 设置lidar架设的点lidar_location = carla.Location(100, 190, 2)lidar_rotation = carla.Rotation(0, 0, 0)lidar_transform = carla.Transform(lidar_location, lidar_rotation)        # 生成lidar并采集数据lidar = world.spawn_actor(lidar_bp, lidar_transform)lidar.listen(lambda point_cloud: point_cloud.save_to_disk(os.path.join(output_path, '%06d.ply' % point_cloud.frame)))       world.tick()# 设置车辆的驾驶模式agent = BehaviorAgent(vehicle, behavior='normal')# 核心函数agent.set_destination(agent.vehicle.get_location(), end_point.location, clean=True)while True:agent.update_information(vehicle)world.tick()if len(agent._local_planner.waypoints_queue)<1:print('======== Success, Arrivied at Target Point!')break# 设置速度限制speed_limit = vehicle.get_speed_limit()agent.get_local_planner().set_speed(speed_limit)control = agent.run_step(debug=True)vehicle.apply_control(control)finally:world.apply_settings(origin_settings)vehicle.destroy()if __name__ == '__main__':try:main()except KeyboardInterrupt:print(' - Exited by user.')

比较简单,整个实验采集都比较简单。在这里记录一下,方便未来做类似工作是可以直接代码服用。


http://chatgpt.dhexx.cn/article/XrCXMNbV.shtml

相关文章

Carla学习笔记(1):Ubantu20.04安装Carla 0.9.13

前言 最近准备深入研究下Carla与Apollo联合仿真,故安装了Ubantu20.04&#xff0c;做好前期准备。由于第一次安装Carla,不可避免的需要踩一些坑&#xff0c;所以写篇指南记录下,坑都在结尾。不建议按照csdn的教程去安装&#xff0c;直接用官方文档安装。 安装Carla有前提条件,…

carla入门

carla 一、安装 官网地址 1.1 windows下安装 下载zip文件安装 在CARLA官方文档中点击下图部分&#xff0c;文档链接https://carla.readthedocs.io/en/latest/start_quickstart/ 到git下直接下载windows版本&#xff0c; 下面可以选择版本&#xff0c; 这里我用最新版 在解…

Carla 地图

1. 介绍 Carla在0.9.11中扩展了地图功能&#xff0c;增加了许多有意思的扩展功能。 包括在地图上控制指定建筑物的渲染&#xff0c;加载不同的图层等。 We have extended the maps API to provide the ability to toggle on and off every environment object individually. W…

Carla内容简介

最近学长安排了新的任务&#xff0c;开始学习Carla仿真软件。这个软件之前在自己电脑安装一次&#xff0c;各种坑&#xff0c;坑到我怀疑人生&#xff0c;大概装了两三天才装上&#xff0c;之后因为毕设就没动过了&#xff0c;时隔小一年又重新开始学。。。&#xff08;后续有时…

Carla学习2:carla安装与使用

文章目录 0. 建议1. carla学习相关链接1.1 官方资料1.1 学习教程 2. Carla安装2.1 服务器端2.1.1 下载预编译版本&#xff08;也可以使用下载源码并编译&#xff09; 2.1.2 启动服务器端及服务器端显示导航2.3 客户端2.3.1 创建python环境2.3.2 安装carla 的pythonAPI所需要的依…

【仿真】Carla介绍与使用 [1] (附代码手把手讲解)

0. 参考与前言 主要介绍无人驾驶的仿真环境CARLA&#xff0c;开源社区维护&#xff0c;以下为相关参考链接&#xff1a; Carla官方文档 建议后续找的时候 先按好版本号&#xff0c;有些功能/api 是新版本里有的&#xff0c;Carla官方github Youtube PythonWindow 0.9.5 主要是…

自动驾驶仿真平台Carla从入门到放弃

一、Carla的基本概念 人工智能、5G和V2X技术的不断发展使得自动驾驶成为可能。近几年&#xff0c;自动驾驶发展迅速&#xff0c;在科技新闻上经常可以看到自动驾驶的身影&#xff0c;而从事自动驾驶相关软、硬件研究的高效研究所和公司也越来越多&#xff0c;既有传统的汽车巨头…

介绍一款开源的自动驾驶仿真模拟器-Carla

大家好&#xff0c;我是李慢慢。 不管你是一个自动驾驶的算法工程师&#xff0c;还是仿真工程师&#xff0c;不管你是业界大佬还是小白&#xff0c;我都建议你了解甚至使用一下这个软件。 目录&#xff1a; 0、前言 1、Carla简介 2、Carla的官方资源 3、Carla的安装 4、Ca…

Carla 使用神经网络训练自动驾驶车辆---模型搭建及训练

Carla 使用神经网络训练自动驾驶车辆—模型搭建及训练 上一节已经搭建好了一个carla仿真环境&#xff0c;并且进行了数据采集 现在需要使用采集到的摄像头图片和转角数据进行模型训练 创建dataset类 import numpy as np import config from torch.utils.data import Dataset…

Carla自动驾驶仿真一:快速安装与运行Carla

文章目录 前言一、Carla运行效果二、Carla运行资源1、官方推荐2、环境配置1&#xff09;Carla 0.9.14下载2&#xff09;Python依赖安装 3&#xff09;运行Demo 三、运行前注意事项 前言 网上有不少的Windows版本的Carla的安装教程&#xff0c;这里简单记录下自己安装过程 一、…

Carla 安装详细教程 —— Ubuntu 20.04 安装 Carla

Carla 安装详细教程 —— Ubuntu 20.04 安装 Carla 简介 自动驾驶算法的调试和效果评测首先要在仿真环境中去做&#xff0c;因此&#xff0c;一个强大、灵活的仿真环境是开发、测试过程中必不可少的要素。我们在查找可用的仿真工具时主要关注以下几个特性&#xff1a; 开源&…

[carla入门教程]-1 安装carla环境

本专栏教程将记录我从安装carla到调用carla的pythonAPI进行车辆操控的全流程,带领大家从安装carla开始,到最终能够熟练使用carla仿真环境进行传感器数据采集和车辆控制. 第一节 carla 仿真环境的安装 准备工作: 在本节教程之前,需要大家安装ubuntu18.04以上的系统,并且安装对…

自动驾驶——Carla 模拟器简介

CARLA基本介绍 CARLA是一个开源的自动驾驶模拟器。它是从头开始构建的&#xff0c;用作模块化和灵活的API&#xff0c;以解决自动驾驶问题中涉及的一系列任务。 CARLA的主要目标之一是帮助自动驾驶研发民主化&#xff0c;它是一种易于用户使用和定制的工具。为此&#xff0c;模…

高通8953调试I2S小记

在调通i2s后&#xff0c;发现设备做蓝牙免提时没有声音。后来发现QUIN通路高通竟然没调试过蓝牙免提&#xff0c;这部分代码都没有&#xff01;经过一番折腾。总算把驱动搞好了。但在实际过程中老是报如下错误&#xff1a; [ 2018.164783] msm_pcm_routing_prepare: setting i…

高通8953启动流程

本文来自于:[添加链接描述 嵌入式工程师有必要了解芯片启动过程&#xff0c;在分析、调试各种问题时都有可能涉及这方面知识。同时&#xff0c;这部分知识复杂&#xff0c;涉及到芯片内部架构&#xff0c;启动各个阶段软件代码执行顺序&#xff0c;启动模式等等。以常用的MSM89…

高通8953平台串口配置入门

目录 一、 串口概述二、 平台串口介绍三、 Device tree如何配置串口四、 bootloader如何配置串口五、bootloader中串口相关代码六、 kernel中串口驱动文件&#xff1a;七、 调试中遇到的问题八、 串口回环测试九、参考文档 一、 串口概述 RS232、RS422、RS485都是串行数据接口…

windows 10安装sqlyog详细步骤

sqlyog下载链接&#xff1a; 链接: https://pan.baidu.com/s/1D_iRna8V90omfHsKHyeBtg 提取码: bqht 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 1. 下载完以后解压&#xff0c;双击SQLyog-12.0.9-0.x64 2. 如下图&#xff0c;选择Ok 3 . 如图&#xff0c;点…

SQLyog下载与安装

SQLyog卸载与安装 声明SQLyog卸载SQLyog安装一、SQLyog下载二、正式安装SQLyog 课后习题即答案 声明 SQLyog卸载 用360直接卸载 SQLyog安装 一、SQLyog下载 1.百度搜索SQLyog官网并进入。 2.下载&#xff0c;稍等片刻&#xff0c;即在浏览器下载列表中看到下载成功。 …

MySQL下载与安装、mysql服务启动与停止、mysql使用cmd命令行登录、SQLyog下载与安装,sqlyog登录与操作mysql

文章目录 1.MySQL下载与安装1.1 下载地址1.2 打开官网&#xff0c;点击DOWNLOADS1.3 点击 MySQL Community Server1.4 在General Availability(GA) Releases中选择适合的版本 2.配置MySQL8.03.配置MySQL8.0 环境变量4.服务的启动与停止4.1 使用图形界面工具4.1.1 打开windows服…

MySQL连接工具(SQLyog、Navicat)下载安装

目录 ❤ SQLyog 下载 安装 双击下载的文件 选择Chinese后点击OK ​编辑 点击“下一步” 选择“我接受”后点击“下一步” 点击“下一步” 修改安装位置&#xff08;尽量不要安装在C盘&#xff09;&#xff0c;点击“安装” ​编辑 安装后点击“下一步” 点击“完…