Skip to content

Commit 4a2c80e

Browse files
committed
bugfix
1 parent 22ef92d commit 4a2c80e

File tree

3 files changed

+16
-7
lines changed

3 files changed

+16
-7
lines changed

spatio_temporal_voxel_layer/include/spatio_temporal_voxel_layer/spatio_temporal_voxel_layer.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,9 @@ class SpatioTemporalVoxelLayer : public nav2_costmap_2d::CostmapLayer
135135
std::shared_ptr<spatio_temporal_voxel_layer::srv::SaveGrid::Response> resp);
136136

137137
private:
138+
// clock
139+
rclcpp::Clock::SharedPtr _clock;
140+
138141
// Sensor callbacks
139142
void LaserScanCallback(
140143
sensor_msgs::msg::LaserScan::ConstSharedPtr message,

spatio_temporal_voxel_layer/src/measurement_buffer.cpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -146,10 +146,13 @@ void MeasurementBuffer::BufferROSCloud(
146146
// remove points that are below or above our height restrictions, and
147147
// in the same time, remove NaNs and if user wants to use it, combine with a
148148

149+
geometry_msgs::msg::TransformStamped tf_direct_global, tf_z_reference, tf_global_from_z_reference;
150+
151+
149152
switch (_filter)
150153
{
151154
case Filters::PASSTHROUGH :
152-
geometry_msgs::msg::TransformStamped tf_direct_global =
155+
tf_direct_global =
153156
_buffer.lookupTransform(
154157
_global_frame, cloud.header.frame_id,
155158
tf2_ros::fromMsg(cloud.header.stamp));
@@ -164,7 +167,7 @@ void MeasurementBuffer::BufferROSCloud(
164167
pcl_conversions::fromPCL(*cloud_filtered, *cld_transformed);
165168
break;
166169
case Filters::VOXEL :
167-
geometry_msgs::msg::TransformStamped tf_direct_global =
170+
tf_direct_global =
168171
_buffer.lookupTransform(
169172
_global_frame, cloud.header.frame_id,
170173
tf2_ros::fromMsg(cloud.header.stamp));
@@ -180,11 +183,11 @@ void MeasurementBuffer::BufferROSCloud(
180183
pcl_conversions::fromPCL(*cloud_filtered, *cld_transformed);
181184
break;
182185
case Filters::PASSTHROUGH_RELATIVE :
183-
geometry_msgs::msg::TransformStamped tf_z_reference =
186+
tf_z_reference =
184187
_buffer.lookupTransform(
185188
_z_reference_frame, cloud.header.frame_id,
186189
tf2_ros::fromMsg(cloud.header.stamp));
187-
geometry_msgs::msg::TransformStamped tf_global_from_z_reference =
190+
tf_global_from_z_reference =
188191
_buffer.lookupTransform(
189192
_global_frame, _z_reference_frame,
190193
tf2_ros::fromMsg(cloud.header.stamp));
@@ -200,11 +203,11 @@ void MeasurementBuffer::BufferROSCloud(
200203
tf2::doTransform(*cld_transformed, *cld_transformed, tf_global_from_z_reference);
201204
break;
202205
case Filters::VOXEL_RELATIVE :
203-
geometry_msgs::msg::TransformStamped tf_z_reference =
206+
tf_z_reference =
204207
_buffer.lookupTransform(
205208
_z_reference_frame, cloud.header.frame_id,
206209
tf2_ros::fromMsg(cloud.header.stamp));
207-
geometry_msgs::msg::TransformStamped tf_global_from_z_reference =
210+
tf_global_from_z_reference =
208211
_buffer.lookupTransform(
209212
_global_frame, _z_reference_frame,
210213
tf2_ros::fromMsg(cloud.header.stamp));

spatio_temporal_voxel_layer/src/spatio_temporal_voxel_layer.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,8 @@ void SpatioTemporalVoxelLayer::onInitialize(void)
164164
node->get_clock(), _voxel_size, static_cast<double>(default_value_), _decay_model,
165165
_voxel_decay, _publish_voxels);
166166

167+
_clock = node->get_clock();
168+
167169
matchSize();
168170

169171
RCLCPP_INFO(logger_, "%s created underlying voxel grid.", getName().c_str());
@@ -566,10 +568,11 @@ bool SpatioTemporalVoxelLayer::updateFootprint(
566568
} else {
567569
// Using tf2 for 3d rotation to provide accurate projection of the footprint
568570
try {
571+
rclcpp::Time current_time = _clock->now();
569572
geometry_msgs::msg::TransformStamped tf_footprint_stamped =
570573
tf_->lookupTransform(
571574
_global_frame, _robot_base_frame,
572-
rclcpp::Clock.now());
575+
current_time );
573576
for (unsigned int i = 0; i < _transformed_footprint.size(); i++) {
574577
tf2::doTransform(_transformed_footprint[i], _transformed_footprint[i], tf_footprint_stamped);
575578
touch(

0 commit comments

Comments
 (0)