24#include <mujoco/mujoco.h>
26#include <geometry_msgs/msg/vector3.hpp>
27#include <rclcpp/node.hpp>
28#include <rclcpp/publisher.hpp>
29#include <realtime_tools/realtime_publisher.hpp>
30#include <sensor_msgs/msg/laser_scan.hpp>
31#include <sensor_msgs/msg/point_cloud2.hpp>
33#include <mujoco_ros2_control_plugins/mujoco_ros2_control_plugins_base.hpp>
47 std::string frame_name;
48 std::vector<int> resolution;
49 std::vector<double> azimuth_range;
50 std::vector<double> elevation_range;
51 std::vector<geometry_msgs::msg::Vector3> vectors;
60 std::string lidar_topic;
63 mjtNum last_compute_time{ 0.0 };
64 mjtNum last_published_time{ 0.0 };
66 sensor_msgs::msg::LaserScan laser_scan_msg;
67 rclcpp::Publisher<sensor_msgs::msg::LaserScan>::SharedPtr scan_pub_raw;
68 std::unique_ptr<realtime_tools::RealtimePublisher<sensor_msgs::msg::LaserScan>> scan_pub;
70 sensor_msgs::msg::PointCloud2 point_cloud_msg;
71 rclcpp::Publisher<sensor_msgs::msg::PointCloud2>::SharedPtr pointcloud_pub_raw;
72 std::unique_ptr<realtime_tools::RealtimePublisher<sensor_msgs::msg::PointCloud2>> pointcloud_pub;
93 bool init(rclcpp::Node::SharedPtr node,
const mjModel* model, mjData* data)
override;
102 void update_write(
const mjModel* model, mjData* data)
override;
122 bool register_sensor(
const mjModel* model,
int sensor_idx);
124 rclcpp::Node::SharedPtr node_;
127 std::vector<Lidar3dConfig> lidar_sensors_;
Base class for MuJoCo ROS 2 control plugins.
Definition mujoco_ros2_control_plugins_base.hpp:52
Plugin wrapper of the included 3D Lidar MuJoCo extension.
Definition mujoco_3d_lidar_plugin.hpp:84
void cleanup() override
Destructs the plugin and all relevant data.
Definition mujoco_3d_lidar_plugin.cpp:380
void update_write(const mjModel *model, mjData *data) override
Callback to update the plugin's data.
Definition mujoco_3d_lidar_plugin.cpp:304
bool init(rclcpp::Node::SharedPtr node, const mjModel *model, mjData *data) override
Initializes a new MujocoLidar wrapper object for 3d lidar sensors.
Definition mujoco_3d_lidar_plugin.cpp:117
Definition mujoco_ros2_control_plugins_base.hpp:22
Data container for lidar sensor information.
Definition mujoco_3d_lidar_plugin.hpp:42