3 #include <rclcpp/rclcpp.hpp>
4 #include <sensor_msgs/msg/camera_info.hpp>
5 #include <sensor_msgs/msg/image.hpp>
7 #include <mujoco/mjdata.h>
8 #include <mujoco/mjmodel.h>
9 #include <mujoco/mjrender.h>
10 #include <mujoco/mjtnum.h>
11 #include <mujoco/mjvisualize.h>
13 #include <GLFW/glfw3.h>
41 void reset(
const mjModel * m,
int plugin_id);
48 void compute(
const mjModel * m, mjData * d,
int plugin_id);
69 const std::string & frame_id,
70 std::string color_topic_name,
71 std::string depth_topic_name,
72 std::string info_topic_name,
113 rclcpp::Node::SharedPtr
nh_;
114 rclcpp::Publisher<sensor_msgs::msg::Image>::SharedPtr
color_pub_;
115 rclcpp::Publisher<sensor_msgs::msg::Image>::SharedPtr
depth_pub_;
116 rclcpp::Publisher<sensor_msgs::msg::CameraInfo>::SharedPtr
info_pub_;
Plugin to publish topics of color and depth images.
void compute(const mjModel *m, mjData *d, int plugin_id)
Compute.
int publish_skip_
Iteration interval to skip ROS publish.
unsigned char * color_buffer_flipped_
rclcpp::Publisher< sensor_msgs::msg::Image >::SharedPtr color_pub_
rclcpp::Publisher< sensor_msgs::msg::Image >::SharedPtr depth_pub_
ImagePublisher(ImagePublisher &&)=default
Copy constructor.
rclcpp::Publisher< sensor_msgs::msg::CameraInfo >::SharedPtr info_pub_
int sim_cnt_
Iteration count of simulation.
std::string frame_id_
Frame ID of topics header or TF parent.
unsigned char * color_buffer_
static void RegisterPlugin()
Register plugin.
void reset(const mjModel *m, int plugin_id)
Reset.
rclcpp::Node::SharedPtr nh_
static ImagePublisher * Create(const mjModel *m, mjData *d, int plugin_id)
Create an instance.
float * depth_buffer_flipped_