提交 fe34840f 编写于 作者: seasoulchris's avatar seasoulchris 提交者: panxuechao

[D-kit]add adaption files for D-kit (#10642)

* add odometry generate tools for dev-kit

* add dag & launch files for dev-kit

* add a gflag for kMinHalfWidth in hdmap_common.cc
上级 3ceaec88
extrinsic_file {
frame_id: "novatel"
child_frame_id: "velodyne128"
file_path: "/apollo/modules/drivers/velodyne/params/velodyne16_novatel_extrinsics.yaml"
enable: true
}
extrinsic_file {
frame_id: "localization"
child_frame_id: "novatel"
file_path: "/apollo/modules/localization/msf/params/novatel_localization_extrinsics.yaml"
enable: true
}
extrinsic_file {
frame_id: "velodyne128"
child_frame_id: "front_6mm"
file_path: "/apollo/modules/perception/data/params/front_6mm_extrinsics.yaml"
enable: true
}
extrinsic_file {
frame_id: "velodyne128"
child_frame_id: "front_12mm"
file_path: "/apollo/modules/perception/data/params/front_12mm_extrinsics.yaml"
enable: true
}
extrinsic_file {
frame_id: "velodyne128"
child_frame_id: "radar_front"
file_path: "/apollo/modules/perception/data/params/radar_front_extrinsics.yaml"
enable: true
}
......@@ -58,6 +58,9 @@ DEFINE_string(
"modules/dreamview/conf/navigation_mode_default_end_way_point.txt",
"end_way_point file used if navigation mode is set.");
DEFINE_double(half_vehicle_width, 1.05,
"half vehicle width");
DEFINE_double(look_forward_time_sec, 8.0,
"look forward time times adc speed to calculate this distance "
"when creating reference line from routing");
......
......@@ -42,6 +42,8 @@ DECLARE_string(localization_tf2_child_frame_id);
DECLARE_bool(use_navigation_mode);
DECLARE_string(navigation_mode_end_way_point_file);
DECLARE_double(half_vehicle_width);
DECLARE_bool(use_sim_time);
DECLARE_bool(reverse_heading_vehicle_state);
......
......@@ -110,3 +110,7 @@ data_files {
source_path: "teleop_conf/network/initial_routes_and_filters.pb.txt"
dest_path: "/apollo/modules/teleop/network/conf/initial_routes_and_filters.pb.txt"
}
data_files {
source_path: "transform_conf/static_transform_conf.pb.txt"
dest_path: "/apollo/modules/transform/conf/static_transform_conf.pb.txt"
}
# Define all coms in DAG streaming.
module_config {
module_library : "/apollo/bazel-bin/modules/drivers/camera/libcamera_component.so"
components {
class_name : "CameraComponent"
config {
name : "camera_front_6mm"
config_file_path : "/apollo/modules/drivers/camera/conf/camera_front_6mm.pb.txt"
}
}
components {
class_name : "CompressComponent"
config {
name : "camera_front_6mm_compress"
config_file_path : "/apollo/modules/drivers/camera/conf/camera_front_6mm.pb.txt"
readers {
channel: "/apollo/sensor/camera/front_6mm/image"
pending_queue_size: 10
}
}
}
components {
class_name : "CameraComponent"
config {
name : "camera_front_12mm"
config_file_path : "/apollo/modules/drivers/camera/conf/camera_front_12mm.pb.txt"
}
}
components {
class_name : "CompressComponent"
config {
name : "camera_front_12mm_compress"
config_file_path : "/apollo/modules/drivers/camera/conf/camera_front_12mm.pb.txt"
readers {
channel: "/apollo/sensor/camera/front_12mm/image"
pending_queue_size: 10
}
}
}
}
<cyber>
<module>
<name>camera</name>
<dag_conf>/apollo/modules/drivers/camera/dag/dev_kit_camera.dag</dag_conf>
<process_name>usb_cam</process_name>
</module>
<module>
<name>video</name>
<dag_conf>/apollo/modules/drivers/video/dag/video.dag</dag_conf>
<process_name>h265_video</process_name>
</module>
</cyber>
......@@ -168,23 +168,22 @@ void LaneInfo::Init() {
if (lane_.has_type()) {
if (lane_.type() == Lane::CITY_DRIVING) {
static constexpr double kMinHalfWidth = 1.05;
for (const auto &p : sampled_left_width_) {
if (p.second < kMinHalfWidth) {
if (p.second < FLAGS_half_vehicle_width) {
AERROR
<< "lane[id = " << lane_.id().DebugString()
<< "]. sampled_left_width_[" << p.second
<< "] is too small. It should be larger than half vehicle width["
<< kMinHalfWidth << "].";
<< FLAGS_half_vehicle_width << "].";
}
}
for (const auto &p : sampled_right_width_) {
if (p.second < kMinHalfWidth) {
if (p.second < FLAGS_half_vehicle_width) {
AERROR
<< "lane[id = " << lane_.id().DebugString()
<< "]. sampled_right_width_[" << p.second
<< "] is too small. It should be larger than half vehicle width["
<< kMinHalfWidth << "].";
<< FLAGS_half_vehicle_width << "].";
}
}
} else if (lane_.type() == Lane::NONE) {
......
module_config {
module_library : "/apollo/bazel-bin/modules/perception/onboard/component/libperception_component_lidar.so"
components {
class_name : "SegmentationComponent"
config {
name: "Velodyne128Segmentation"
config_file_path: "/apollo/modules/perception/production/conf/perception/lidar/velodyne128_segmentation_conf.pb.txt"
flag_file_path: "/apollo/modules/perception/production/conf/perception/perception_common.flag"
readers {
channel: "/apollo/sensor/lidar16/compensator/PointCloud2"
}
}
}
components {
class_name : "RecognitionComponent"
config {
name: "RecognitionComponent"
config_file_path: "/apollo/modules/perception/production/conf/perception/lidar/recognition_conf.pb.txt"
readers {
channel: "/perception/inner/SegmentationObjects"
}
}
}
components {
class_name: "FusionComponent"
config {
name: "SensorFusion"
config_file_path: "/apollo/modules/perception/production/conf/perception/fusion/fusion_component_conf.pb.txt"
readers {
channel: "/perception/inner/PrefusedObjects"
}
}
}
}
<!--this file list the modules which will be loaded dynamicly and
their process name to be running in -->
<cyber>
<desc>cyber modules list config</desc>
<version>1.0.0</version>
<!-- sample module config, and the files should have relative path like
./bin/cyber_launch
./bin/mainboard
./conf/dag_streaming_0.conf -->
<module>
<name>perception</name>
<dag_conf>/apollo/modules/perception/production/dag/dev_kit_dag_streaming_perception.dag</dag_conf>
<!-- if not set, use default process -->
<process_name>lidar_perception</process_name>
<version>1.0.0</version>
</module>
</cyber>
<!--this file list the modules which will be loaded dynamicly and
their process name to be running in -->
<cyber>
<desc>cyber modules list config</desc>
<version>1.0.0</version>
<!-- sample module config, and the files should have relative path like
./bin/cyber_launch
./bin/mainboard
./conf/dag_streaming_0.conf -->
<module>
<name>perception_camera</name>
<dag_conf>/apollo/modules/perception/production/dag/dag_streaming_perception_camera.dag</dag_conf>
<!-- if not set, use default process -->
<process_name></process_name>
<version>1.0.0</version>
</module>
</cyber>
#!/usr/bin/env python
import argparse
import atexit
import logging
import os
import sys
import time
#from common.logger import Logger
from cyber_py import cyber
from cyber_py import cyber_time
from modules.drivers.gnss.proto import ins_pb2
class InsStat(object):
def __init__(self,node):
self.insstat_pub = node.create_writer('/apollo/sensor/gnss/ins_stat', ins_pb2.InsStat)
self.sequence_num = 0
self.terminating = False
def publish_statmsg(self):
insstat = ins_pb2.InsStat()
now = cyber_time.Time.now().to_sec()
insstat.header.timestamp_sec = now
insstat.header.module_name = "ins_stat"
insstat.header.sequence_num = self.sequence_num
self.sequence_num = self.sequence_num + 1
insstat.ins_status = 3
insstat.pos_type = 56
#self.logger.info("%s"%insstat)
self.insstat_pub.write(insstat)
def shutdown(self):
"""
shutdown rosnode
"""
self.terminating = True
#self.logger.info("Shutting Down...")
time.sleep(0.2)
def main():
"""
Main rosnode
"""
node=cyber.Node('ins_stat_publisher')
ins_stat = InsStat(node)
while not cyber.is_shutdown():
now = cyber_time.Time.now().to_sec()
ins_stat.publish_statmsg()
sleep_time = 0.5 - (cyber_time.Time.now().to_sec() - now)
if sleep_time > 0:
time.sleep(sleep_time)
if __name__ == '__main__':
cyber.init()
main()
cyber.shutdown()
#!/usr/bin/env python
import argparse
import atexit
import logging
import os
import sys
import time
#from common.logger import Logger
from cyber_py import cyber
from cyber_py import cyber_time
from modules.localization.proto import localization_pb2
from modules.localization.proto import gps_pb2
class OdomPublisher(object):
def __init__(self, node):
self.localization = localization_pb2.LocalizationEstimate()
self.gps_odom_pub = node.create_writer('/apollo/sensor/gnss/odometry', gps_pb2.Gps)
self.sequence_num = 0
self.terminating = False
self.position_x = 0
self.position_y = 0
self.position_z = 0
self.orientation_x = 0
self.orientation_y = 0
self.orientation_z = 0
self.orientation_w = 0
self.linear_velocity_x = 0
self.linear_velocity_y = 0
self.linear_velocity_z = 0
def localization_callback(self, data):
"""
New message received
"""
self.localization.CopyFrom(data)
self.position_x = self.localization.pose.position.x
self.position_y = self.localization.pose.position.y
self.position_z = self.localization.pose.position.z
self.orientation_x = self.localization.pose.orientation.qx
self.orientation_y = self.localization.pose.orientation.qy
self.orientation_z = self.localization.pose.orientation.qz
self.orientation_w = self.localization.pose.orientation.qw
self.linear_velocity_x = self.localization.pose.linear_velocity.x
self.linear_velocity_y = self.localization.pose.linear_velocity.y
self.linear_velocity_z = self.localization.pose.linear_velocity.z
def publish_odom(self):
odom = gps_pb2.Gps()
now = cyber_time.Time.now().to_sec()
odom.header.timestamp_sec = now
odom.header.module_name = "odometry"
odom.header.sequence_num = self.sequence_num
self.sequence_num = self.sequence_num + 1
odom.localization.position.x = self.position_x
odom.localization.position.y = self.position_y
odom.localization.position.z = self.position_z
odom.localization.orientation.qx = self.orientation_x
odom.localization.orientation.qy = self.orientation_y
odom.localization.orientation.qz = self.orientation_z
odom.localization.orientation.qw = self.orientation_w
odom.localization.linear_velocity.x = self.linear_velocity_x
odom.localization.linear_velocity.y = self.linear_velocity_y
odom.localization.linear_velocity.z = self.linear_velocity_z
#self.logger.info("%s"%odom)
self.gps_odom_pub.write(odom)
def shutdown(self):
"""
shutdown rosnode
"""
self.terminating = True
#self.logger.info("Shutting Down...")
time.sleep(0.2)
def main():
"""
Main rosnode
"""
node = cyber.Node('odom_publisher')
odom = OdomPublisher(node)
node.create_reader('/apollo/localization/pose', localization_pb2.LocalizationEstimate, odom.localization_callback)
while not cyber.is_shutdown():
now = cyber_time.Time.now().to_sec()
odom.publish_odom()
sleep_time = 0.01 - (cyber_time.Time.now().to_sec() - now)
if sleep_time > 0:
time.sleep(sleep_time)
if __name__ == '__main__':
cyber.init()
main()
cyber.shutdown()
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册