gazebo_ros_create.h
Go to the documentation of this file.
1 #ifndef GAZEBO_ROS_CREATE_H
2 #define GAZEBO_ROS_CREATE_H
3 
4 #include <gazebo/msgs/msgs.hh>
5 #include <gazebo/physics/physics.hh>
6 #include <gazebo/physics/PhysicsTypes.hh>
7 #include <gazebo/sensors/SensorTypes.hh>
8 #include <gazebo/transport/TransportTypes.hh>
9 #include <gazebo/transport/transport.hh>
10 #include <gazebo/common/Time.hh>
11 #include <gazebo/common/Plugin.hh>
12 #include <gazebo/common/Events.hh>
13 
14 #include <nav_msgs/Odometry.h>
15 #include <geometry_msgs/TwistWithCovariance.h>
16 #include <geometry_msgs/PoseWithCovariance.h>
18 #include <ros/ros.h>
19 
20 namespace gazebo
21 {
22  class GazeboRosCreate : public ModelPlugin
23  {
24  public:
26  virtual ~GazeboRosCreate();
27 
28  virtual void Load(physics::ModelPtr _parent, sdf::ElementPtr _sdf );
29 
30  virtual void UpdateChild();
31 
32  private:
33 
34  void UpdateSensors();
35  void OnContact(ConstContactsPtr &contact);
36  void OnCmdVel( const geometry_msgs::TwistConstPtr &msg);
37 
38 
40  std::string node_namespace_;
45  std::string base_geom_name_;
46 
48  float wheel_sep_;
49 
51  float wheel_diam_;
52 
54  float torque_;
55 
56 
58  //ros::Service operating_mode_srv_;
59  //ros::Service digital_output_srv_;
60 
64 
66 
67  physics::WorldPtr my_world_;
68  physics::ModelPtr my_parent_;
69 
71  float *wheel_speed_;
72 
73  // Simulation time of the last update
74  common::Time prev_update_time_;
75  common::Time last_cmd_vel_time_;
76 
77  float odom_pose_[3];
78  float odom_vel_[3];
79 
80  bool set_joints_[4];
81  physics::JointPtr joints_[4];
82  physics::CollisionPtr base_geom_;
83 
84  sensors::RaySensorPtr left_cliff_sensor_;
85  sensors::RaySensorPtr leftfront_cliff_sensor_;
86  sensors::RaySensorPtr rightfront_cliff_sensor_;
87  sensors::RaySensorPtr right_cliff_sensor_;
88  sensors::RaySensorPtr wall_sensor_;
89 
91  sensor_msgs::JointState js_;
92 
93  create_node::TurtlebotSensorState sensor_state_;
94 
95  void spin();
96  boost::thread *spinner_thread_;
97 
98  //event::ConnectionPtr contact_event_;
99  transport::NodePtr gazebo_node_;
100  transport::SubscriberPtr contact_sub_;
101 
102  // Pointer to the update event connection
103  event::ConnectionPtr updateConnection;
104  };
105 }
106 #endif
ros::Subscriber cmd_vel_sub_
sensors::RaySensorPtr right_cliff_sensor_
void OnCmdVel(const geometry_msgs::TwistConstPtr &msg)
std::string left_wheel_joint_name_
sensors::RaySensorPtr left_cliff_sensor_
float wheel_sep_
Separation between the wheels.
std::string right_wheel_joint_name_
void OnContact(ConstContactsPtr &contact)
physics::CollisionPtr base_geom_
sensors::RaySensorPtr wall_sensor_
float wheel_diam_
Diameter of the wheels.
transport::SubscriberPtr contact_sub_
sensors::RaySensorPtr rightfront_cliff_sensor_
create_node::TurtlebotSensorState sensor_state_
std::string rear_castor_joint_name_
physics::JointPtr joints_[4]
virtual void Load(physics::ModelPtr _parent, sdf::ElementPtr _sdf)
std::string front_castor_joint_name_
tf::TransformBroadcaster transform_broadcaster_
boost::thread * spinner_thread_
float torque_
Torque applied to the wheels.
ros::Publisher joint_state_pub_
physics::ModelPtr my_parent_
ros::Publisher sensor_state_pub_
float * wheel_speed_
Speeds of the wheels.
ros::NodeHandle * rosnode_
sensor_msgs::JointState js_
physics::WorldPtr my_world_
std::string node_namespace_
Parameters.
transport::NodePtr gazebo_node_
sensors::RaySensorPtr leftfront_cliff_sensor_
event::ConnectionPtr updateConnection


create_gazebo_plugins
Author(s): Nate Koenig
autogenerated on Mon Jun 10 2019 15:38:07