Node.h
Go to the documentation of this file.
1 
18 #pragma once
19 
20 #include "Parameters.h"
21 #include "ParticleFilter.h"
22 
23 #include <rosinrange_msg/range_pose.h>
25 
26 namespace amcl3d
27 {
28 class Node
29 {
30 public:
31  explicit Node();
32  virtual ~Node();
33 
34  void spin();
35 
36 private:
38  void publishGridSlice(const ros::TimerEvent&);
39  void publishGridTf(const ros::TimerEvent&);
40  void publishParticles();
41 
42  void pointcloudCallback(const sensor_msgs::PointCloud2ConstPtr& msg);
43  void odomCallback(const geometry_msgs::TransformStampedConstPtr& msg);
44  void initialPoseReceived(const geometry_msgs::PoseWithCovarianceStampedConstPtr& msg);
45  void rangeCallback(const rosinrange_msg::range_poseConstPtr& msg);
46 
48  bool checkUpdateThresholds();
49 
51  void setInitialPose(const tf::Transform& init_pose, const float x_dev, const float y_dev, const float z_dev,
52  const float a_dev);
53 
55  double getYawFromTf(const tf::Transform& tf);
56 
58  void rvizMarkerPublish(const uint32_t anchor_id, const float r, const geometry_msgs::Point& uav,
59  const geometry_msgs::Point& anchor);
60 
64 
66 
67  sensor_msgs::PointCloud2 map_point_cloud_msg_;
70 
71  nav_msgs::OccupancyGrid grid_slice_msg_;
74 
77 
78  bool is_odom_{ false };
79  bool amcl_out_{ false };
80  double roll_{ 0 }, pitch_{ 0 };
81 
82  std::vector<Range> range_data;
84 
87 
90 
92 
94 };
95 
96 } // namespace amcl3d
void odomCallback(const geometry_msgs::TransformStampedConstPtr &msg)
Definition: Node.cpp:265
ros::Publisher odom_base_pub_
Definition: Node.h:86
Parameters parameters_
Definition: Node.h:61
tf::StampedTransform grid_to_world_tf_
Definition: Node.h:75
void initialPoseReceived(const geometry_msgs::PoseWithCovarianceStampedConstPtr &msg)
void spin()
Definition: Node.cpp:37
tf::Transform base_2_odom_tf_
Definition: Node.h:88
sensor_msgs::PointCloud2 map_point_cloud_msg_
Definition: Node.h:67
void publishParticles()
Definition: Node.cpp:111
bool amcl_out_
Definition: Node.h:79
ros::Timer grid_slice_pub_timer_
Definition: Node.h:73
ros::Subscriber point_sub_
Definition: Node.h:85
double getYawFromTf(const tf::Transform &tf)
Return yaw from a given TF.
Definition: Node.cpp:488
void publishGridSlice(const ros::TimerEvent &)
Definition: Node.cpp:93
ros::Publisher cloud_filter_pub_
Definition: Node.h:93
ros::Timer map_point_cloud_pub_timer_
Definition: Node.h:69
bool checkUpdateThresholds()
Check motion and time thresholds for AMCL update.
Definition: Node.cpp:432
ros::Publisher particles_pose_pub_
Definition: Node.h:86
Struct that contains the data concerning one particle.
ros::NodeHandle nh_
Definition: Node.h:65
Include Grid.hpp.
Definition: Grid3d.cpp:23
double roll_
Definition: Node.h:80
double pitch_
Definition: Node.h:80
ros::Subscriber initialpose_sub_
Definition: Node.h:85
ros::Subscriber range_sub_
Definition: Node.h:85
Grid3d grid3d_
Definition: Node.h:62
std::vector< Range > range_data
Definition: Node.h:82
bool is_odom_
Definition: Node.h:78
virtual ~Node()
Definition: Node.cpp:32
tf::Transform lastupdatebase_2_odom_tf_
Definition: Node.h:88
tf::Transform lastbase_2_world_tf_
Definition: Node.h:88
tf::Transform amcl_out_lastbase_2_odom_tf_
Definition: Node.h:88
tf::Transform lastodom_2_world_tf_
Definition: Node.h:88
void rvizMarkerPublish(const uint32_t anchor_id, const float r, const geometry_msgs::Point &uav, const geometry_msgs::Point &anchor)
To show range sensors in Rviz.
Definition: Node.cpp:496
Particle mean_p_
Definition: Node.h:83
ros::Publisher range_markers_pub_
Definition: Node.h:86
ros::Publisher map_point_cloud_pub_
Definition: Node.h:68
void setInitialPose(const tf::Transform &init_pose, const float x_dev, const float y_dev, const float z_dev, const float a_dev)
Set the initial pose of the particle filter.
Definition: Node.cpp:460
void publishGridTf(const ros::TimerEvent &)
Definition: Node.cpp:101
ros::Time nextupdate_time_
Definition: Node.h:91
tf::Transform initodom_2_world_tf_
Definition: Node.h:88
void publishMapPointCloud(const ros::TimerEvent &)
Definition: Node.cpp:85
nav_msgs::OccupancyGrid grid_slice_msg_
Definition: Node.h:71
tf::Transform odom_increment_tf
Definition: Node.h:88
ros::Subscriber odom_sub_
Definition: Node.h:85
ros::Publisher grid_slice_pub_
Definition: Node.h:72
ParticleFilter pf_
Definition: Node.h:63
void pointcloudCallback(const sensor_msgs::PointCloud2ConstPtr &msg)
Definition: Node.cpp:130
void rangeCallback(const rosinrange_msg::range_poseConstPtr &msg)
Definition: Node.cpp:401
ros::Timer grid_to_world_tf_timer_
Definition: Node.h:76
Particle lastmean_p_
Definition: Node.h:83


amcl3d
Author(s): Francisco J.Perez-Grau
autogenerated on Sun Sep 15 2019 04:08:05