MCPcopy Create free account
hub / github.com/RoboMaster/RoboRTS / Init

Method Init

roborts_localization/localization_node.cpp:28–74  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

26
27
28bool LocalizationNode::Init() {
29
30 LocalizationConfig localization_config;
31 localization_config.GetParam(&nh_);
32
33 odom_frame_ = std::move(localization_config.odom_frame_id);
34 global_frame_ = std::move(localization_config.global_frame_id);
35 base_frame_ = std::move(localization_config.base_frame_id);
36
37 laser_topic_ = std::move(localization_config.laser_topic_name);
38
39 init_pose_ = {localization_config.initial_pose_x,
40 localization_config.initial_pose_y,
41 localization_config.initial_pose_a};
42 init_cov_ = {localization_config.initial_cov_xx,
43 localization_config.initial_cov_yy,
44 localization_config.initial_cov_aa};
45
46 transform_tolerance_ = ros::Duration(localization_config.transform_tolerance);
47 publish_visualize_ = localization_config.publish_visualize;
48
49 tf_broadcaster_ptr_ = std::make_unique<tf::TransformBroadcaster>();
50 tf_listener_ptr_ = std::make_unique<tf::TransformListener>();
51
52 distance_map_pub_ = nh_.advertise<nav_msgs::OccupancyGrid>("distance_map", 1, true);
53 particlecloud_pub_ = nh_.advertise<geometry_msgs::PoseArray>("particlecloud", 2, true);
54
55 // Use message filter for time synchronizer (laser scan topic and tf between odom and base frame)
56 laser_scan_sub_ = std::make_shared<message_filters::Subscriber<sensor_msgs::LaserScan>>(nh_, laser_topic_, 100);
57 laser_scan_filter_ = std::make_unique<tf::MessageFilter<sensor_msgs::LaserScan>>(*laser_scan_sub_,
58 *tf_listener_ptr_,
59 odom_frame_,
60 100);
61 laser_scan_filter_->registerCallback(boost::bind(&LocalizationNode::LaserScanCallback, this, _1));
62
63 initial_pose_sub_ = nh_.subscribe("initialpose", 2, &LocalizationNode::InitialPoseCallback, this);
64 pose_pub_ = nh_.advertise<geometry_msgs::PoseStamped>("amcl_pose", 2, true);
65
66 amcl_ptr_= std::make_unique<Amcl>();
67 amcl_ptr_->GetParamFromRos(&nh_);
68 amcl_ptr_->Init(init_pose_, init_cov_);
69
70 map_init_ = GetStaticMap();
71 laser_init_ = GetLaserPose();
72
73 return map_init_&&laser_init_;
74}
75
76bool LocalizationNode::GetStaticMap(){
77 static_map_srv_ = nh_.serviceClient<nav_msgs::GetMap>("static_map");

Callers

nothing calls this directly

Calls 2

GetParamFromRosMethod · 0.80
GetParamMethod · 0.45

Tested by

no test coverage detected