11#!/usr/bin/env python3
2- import matplotlib .pyplot as plt
3- from mpl_toolkits .mplot3d import Axes3D
42import numpy as np
53import os
64from functools import partial
7- import threading
8- import time # Import time module for benchmarking
95
106# ROS 2 imports
117import rclpy
2521from std_msgs .msg import Float32MultiArray
2622from std_msgs .msg import MultiArrayLayout as MAL
2723from std_msgs .msg import MultiArrayDimension as MAD
28- from geometry_msgs .msg import TransformStamped
2924from rclpy .serialization import serialize_message
3025
3126# Custom module imports
@@ -51,7 +46,12 @@ def __init__(self):
5146 # Initialize the node without passing callback_group to super()
5247 super ().__init__ (
5348 'elevation_mapping_node' ,
54- automatically_declare_parameters_from_overrides = True
49+ automatically_declare_parameters_from_overrides = True ,
50+ # Add this parameter to enable sim time
51+ allow_undeclared_parameters = True ,
52+ parameter_overrides = [
53+ rclpy .Parameter ('use_sim_time' , rclpy .Parameter .Type .BOOL , True )
54+ ]
5555 )
5656
5757 # Get package share directory
@@ -412,14 +412,14 @@ def pointcloud_callback(self, msg: PointCloud2, sub_key: str) -> None:
412412 frame_sensor_id = msg .header .frame_id
413413 try :
414414 # Add a timeout to wait for the transform to become available
415- transform_sensor_to_odom = self ._tf_buffer .lookup_transform (
415+ transform_sensor_to_map = self ._tf_buffer .lookup_transform (
416416 self .map_frame ,
417417 frame_sensor_id ,
418418 self ._last_t ,
419419 )
420420
421- t = transform_sensor_to_odom .transform .translation
422- q = transform_sensor_to_odom .transform .rotation
421+ t = transform_sensor_to_map .transform .translation
422+ q = transform_sensor_to_map .transform .rotation
423423 t_np = np .array ([t .x , t .y , t .z ], dtype = np .float32 )
424424 R = quaternion_matrix ([q .x , q .y , q .z , q .w ])[:3 , :3 ].astype (np .float32 )
425425
0 commit comments