CARLA Ros Bridge 自车(ego)的控制

科技   2024-10-06 10:02   福建  


Ros Bridge中消息的拓扑关系



Carla Ros Bridge的使用也不是三言两语就能介绍完的,【思想】也还没玩透它。接下来先分享下最入门也是最常用的玩法!如何通过Ros控制Carla中的ego car!后今天要分享的是【思想】比较常用的一些设置,如果有更好的使用建议,欢迎后台私信!















roslaunchcarla_ros_bridgecarla_ros_bridge_with_example_ego_vehicle.launch

当我们通过下面命令启动brgide后,通过Rqt_graph查看话题订阅关系。默认状态下,只能使用手动进行控制。



通过键盘控制自车















点击H键显示的帮助,我们就能通过键盘控制carla中的ego。















rostopic echo /carla/ego_vehicle/vehicle_control_cmd_manual

通过上面的指令打印vehicle_control_cmd_manual话题,可以查看键盘发出的控制指令。

显然,通过键盘控制仅仅只是辅助手段,日常工作里ego的控制是由于自动驾驶程序完成。



通过ros话题控制



CarlaRosBridge为我们提供了接口,自动驾驶程序发布一个vehicle_control_cmd的话题,通过这个话题类控制Carla中的ego。















在官方的文档里,有对carla.VehicleControl这个API的介绍以及各控制量的值域。


rostopic pub /carla/ego_vehicle/vehicle_control_cmd carla_msgs/CarlaEgoVehicleControl "{brake: 1.0, steer: 1.0}"

通过命令发布一个vehicle_control_cmd话题,使制动为100,方向向右打满,进行测试。















在窗口中查看,制动与转向是否跟发布的话题内容一致。

通过,翻阅CARLA技术文档。除了carla.VehicleControl可以控制ego,还有一个名为carla.VehicleAckermannControl的API接口。















这个API控制方式更加贴近实际,输入方向盘转角【rad】,需求速度【m/s】,需求加速度【m/s2】甚至需求加加速度【m/s3】。















而在RosBridge中也提供了现成的节点和lauch文件,我们要做的就是在carla_ros_bridge_with_example_ego_vehicle.launch 添加该lauch文件,这样carla_ackermann_control就会跟整个仿真环境一起启动。















在rqt_graph中可以看到增加了一个carla_ackermann_control话题,可以通过rostopic pub命令发布需求车速,需求方向盘等















rostopic pub /carla/ego_vehicle/ackermann_cmd ackermann_msgs/AckermannDrive "{steering_angle: 0.0, steering_angle_velocity: 0.0, speed: 10, acceleration: 0.0, jerk: 0.0}"

通过上面的命令就能让车辆以10km/h的车速行驶!















打开carla_ackermann_control_node.py文件,还能对速度、加速度的PID参数进行修改!



欢迎关注


古德曼那汽车工业

古德曼汽车工业
分享交流传统/新能源汽车领域的经验与知识,分享自制作小工具提高你我工作效率
 最新文章