Ask Your Question

publish from gazebo

asked 2012-03-20 23:59:08 -0500

hmmm gravatar image

updated 2012-03-22 20:13:43 -0500

kwc gravatar image

hi guys, i want to publish from a gazebo plugin. How can i do that? In the same way as i publish from a common node? so do i have to write a main() and while{} and so on? I want to publish torque in order to plot it with rxplot. this is the part of the plugin:

torque.x = inertia.x *  controllers_.roll.update(roll_command, euler.x, angular_velocity.x, dt);
torque.y = inertia.y *  controllers_.pitch.update(pitch_command, euler.y, angular_velocity.y, dt);


i try following, is this the right way?

ros::Publisher wrench_publisher;
geometry_msgs::Wrench moment;
int main(int argc, char **argv)
  ros::init(argc, argv, "hector_quadrotor_gazebo_plugins");
  ros::NodeHandle node_handle;
  ros::Rate loop_rate(100);
  wrench_publisher_ = node_handle.advertise<geometry_msgs::Wrench>("force", 1);
  moment.torque.x = torque.x ;
  moment.torque.y = torque.y;

  return 0;
edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2012-03-22 16:08:01 -0500

hsu gravatar image

In fuerte, I just updated the plugin template if it's of any help

gazebo_ros_template.h and gazebo_ros_template.cpp

Similarly in electric: gazebo_ros_template.h and gazebo_ros_template.cpp

The simplest example I can think of in electric is the sim time publisher.

edit flag offensive delete link more

answered 2012-03-21 04:50:15 -0500

DimitriProsser gravatar image

You cannot put a main() in a Gazebo plugin because it runs as part of Gazebo's main(). You'd have to put your publish functions in one of the interface methods (probably the update() method).

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2012-03-20 23:59:08 -0500

Seen: 363 times

Last updated: Mar 22 '12