想要创建一个带有传感器的小车,并且可以作为ros结点发布传感器数据的话,是不用自己写文件的。对于我这个刚刚接触ros的菜鸟来说,自己写ros和carla通信的结点根本就是天方夜谭,还好官方提供的ros-bridge的组中写好了很多ros package。
其中carla_ros_bridge_with_example_ego_vehicle.launch定义个一个手动控制的车辆,包含三个结点,其中有发布传感器数据的结点,还有创建小车的结点,以及手动控制的结点。
此次我就是将产生车辆的结点carla_ego_vehicle.py直接复制粘贴一份,然后改一下对应launch文件夹的role_name名字就好了。
同时在改了py文件的名字后,在对应的CMakeLists.txt文件中也改一下名字。package 的名字要在对应的CMakeLists.txt和package.xml都同步改一下。
这里注意,如果想要自己小车发布的数据是以自己小车的名字命名的数据,那么在carla-ros-bridge的config.yaml文件夹中的role_name加入自己小车的名字就好了,我这里是front_vehicle。
role_name: ["hero", "ego_vehicle", "front_vehicle", "hero1", "hero2", "hero3", "hero4", "hero5", "hero6", "hero7", "hero8", "hero9", ]具体这些文件的实现逻辑我一点也不知道。。。暂时能用,后续还有其他要求就再看吧,毕竟我连python还没学。。。