carla_ros_briage发送全局路径topic

#!/usr/bin/env python

#
# Copyright (c) 2019 Intel Corporation
#
# This work is licensed under the terms of the MIT license.
# For a copy, see <https://opensource.org/licenses/MIT>.
#
"""
Control Carla ego vehicle by using AckermannDrive messages
"""

import ros_compatibility as roscomp
from ros_compatibility.node import CompatibleNode
# from nav_msgs.msg._Path import globalroute_msg
from nav_msgs.msg import Path
from geometry_msgs.msg import PoseStamped
import csv


ROS_VERSION = roscomp.get_ros_version()

class Send_globalroute(CompatibleNode):
    def __init__(self):
        self.global_route_publisher = self.new_publisher(
                Path,
                "/carla/ego_vehicle/waypoints",
                qos_profile=1)
        self.csv_data= open("./src/ros-bridge/ros-bridge-master/carla_globalroute/src/global_route/test.csv")
        self.reader = csv.reader(self.csv_data)

    def run(self):
        self.info=Path()
        self.info_point=PoseStamped()
        line_cout=0
        for row in self.reader:
            if line_cout==0:
                line_cout=line_cout+1
                continue
            else:
                self.info_point.pose.position.x=float(row[4])
                self.info_point.pose.position.y=float(row[5])
                self.info_point.pose.position.z=float(row[6])
                self.info_point.pose.orientation.x=float(row[7])
                self.info_point.pose.orientation.y=float(row[8])
                self.info_point.pose.orientation.z=float(row[9])
                self.info_point.pose.orientation.w=float(row[10])
                self.info.poses.append(self.info_point)

        roscomp.loginfo("The path start is:{start} ".format(start=self.info.poses[0]))
        roscomp.loginfo("The path end is:{end} ".format(self.info.poses[-1]))
        self.csv_data.close()
        while not roscomp.shutdown():
            self.global_route_publisher.publish(self.info)

def main(args=None):
    roscomp.init("carla_send_globalroute", args=args)
    try:
        Send_globalroute_tmp = Send_globalroute()
        Send_globalroute_tmp.run()
    except KeyboardInterrupt:
        pass
    finally:
        roscomp.shutdown()

if __name__ == "__main__":
    main()

主要是在仿真过程中发送自车全局路径,读取方式是读取csv文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值