carla_ros_bridge_with_example_ego_vehicle.launch中有一个参数用来控制ego vehicle的【出生位置】
<arg name="spawn_point" default='20,1,0.3,0.0,0.0,180.0'/>
需要输入"x,y,z,roll,pitch,yaw"六个参数,如上,x=20,y=1,z=0.3,roll=0,pitch=0,yaw=180。其中,x与y一定一定不能出现在地图外或建筑物内,而z一定要略高于路面。这里要强调是路面,不是z=3,因为carla地图中有些地方需要上坡或下坡的!
在CARLA ROS manual conrol中对应这几个参数的获取位置,也就是说可以通过CARLA ROS manual conrol控制车辆到想要车辆【重生】的位置,记录下数据。通过,更改lauch文件来控制车辆的【出生】位置。
当然,这是一种非常笨的办法。接下来介绍一种比较高级的用法!通过Rivz动态更换车辆位置!运行
carla_ros_bridge_with_example_ego_vehicle.launch后,继续打开Riz
在Rivz中订阅两个话题,/carla/ego_vehicle/semantic_lidar和/carla/markers,可以显示ego vehicle与周围的激光点云信息。
点击Tool中的【2D Pose Estimate】
在点云图中设置ego的位置与方向,这样就能实现在任意位置释放ego。
这样的做法比较方便,但是有一个问题。很有可能释放的位置与障碍物冲突,导致释放失败。
CARLA 0.9.13提供了Town01~Town07的PCD点云地图,可以把PCD加载到RVIZ中,这样就可以知道ego在当前地图中的具体位置
当然,家在PCD地图需要自己额外编写代码,通过现有的plc-tool库函数实现。内容包含1、读取PCD文件到pcl点云;2、降采样,否则显示会非常卡;3、过滤地面,这个就随便做作,反正只是为了显示。这方面【思想】不太熟悉,以后有机会再来分享。
通过,Tool中的【2D Pose Estimate】工具,Rivz会发布一个名为/initialpose的话题。
打印/initialpose的话题,可以看到发布的位置与方向。
使用rqt_graph查看tocpic的订阅关系,再去对应节点中查看具体逻辑。
import ros_compatibility as roscomp
from ros_compatibility.node import CompatibleNode
from geometry_msgs.msg import PoseWithCovarianceStamped, Pose
class SetInitialPose(CompatibleNode):
def __init__(self):
super(SetInitialPose, self).__init__("set_initial_pose")
self.role_name = self.get_param("role_name", "ego_vehicle")
# control_id should correspond to the id of the actor.pseudo.control
# actor that is set in the config file used to spawn it
self.control_id = self.get_param("control_id", "control")
self.transform_publisher = self.new_publisher(
Pose,
"/carla/{}/{}/set_transform".format(self.role_name, self.control_id),
qos_profile=10)
self.initial_pose_subscriber = self.new_subscription(
PoseWithCovarianceStamped,
"/initialpose",
self.intial_pose_callback,
qos_profile=10)
def intial_pose_callback(self, initial_pose):
pose_to_publish = initial_pose.pose.pose
pose_to_publish.position.z += 2.0
self.transform_publisher.publish(pose_to_publish)
上面的set_inital_pose.py中其作用部分的代码,包含initialpose话题订阅和set_transform话题的发布
知乎号| 古德曼汽车工业