Carla学习(二)简单传感器数据读取

最新版本的API和老版本有很多不同,学起来不太方便,有必要装个新版本了。。

给小车安装了三个传感器,碰撞传感器、RGB相机和Lidar。目前利用官方给的方法获取可以获取小车行使过程中的相关数据,仅仅是简单的将传感器监听到的数据一个一个记录下来。后续如果要对这些数据进行处理,比如利用深度学习,需要车辆行驶过程的数据,如何将他们之间的关系对应起来并且自动打包成数据集目前还不会。。后面根据需要再学,看学姐以前用的ROS,话说ROS是个什么东东??0.0

传感器也属于Actor类,在生成传感器时需要传入transform参数。对于相机和雷达来说,他们都是attach_to小车,所以传入的是相对于小车的相对坐标。碰撞传感器的transform直接使用默认值就可以。


    # 设置RGN相机相对依附对象位置
    transform_RGB = carla.Transform(carla.Location(x=0.8, z=1.7))
    # 设置Lidar的transform
    transform_lidar = carla.Transform()
    # 设置collision的transform
    transform_collision = carla.Transform()

为了方便观察小车的生成位置,可以引入观察者视角:

  # 观察者视角
    spectator = world.get_spectator()
    spectator.set_transform(transform_vehicle)

利用传感器的listen()函数获取数据,简单的将RGB图像或者点云文件存入磁盘:

# 设置传感器监听函数
    my_camera.listen(lambda image: image.save_to_disk('output/%06d.png' % image.frame_number))
    my_collision.listen(lambda collision_event: print("warning!A collision!"))
    my_lidar.listen(lambda lidar_measurement: lidar_measurement.save_to_disk('output/%06d.ply' % lidar_measurement.frame_number))

这里listen返回的数据不仅仅是raw_data,例如Lidar的listen获取的对象包含:
channels (int)
Number of lasers shot.
horizontal_angle (float – radians)
Horizontal angle the LIDAR is rotated at the time of the measurement.
raw_data (bytes)
Received list of 4D points. Each point consists of [x,y,z] coordiantes plus the intensity computed for that point.
这里的save_to_disk是官方写好的函数,自己写注意一下。

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值