41 #ifndef TRICYCLE_DRIVE_PLUGIN_HH 42 #define TRICYCLE_DRIVE_PLUGIN_HH 53 #include <geometry_msgs/Twist.h> 54 #include <geometry_msgs/Pose2D.h> 55 #include <nav_msgs/Odometry.h> 56 #include <nav_msgs/OccupancyGrid.h> 57 #include <sensor_msgs/JointState.h> 64 #include <boost/thread.hpp> 65 #include <boost/bind.hpp> 90 void Load(physics::ModelPtr _parent, sdf::ElementPtr _sdf);
102 void motorController(
double target_speed,
double target_angle,
double dt);
146 void cmdVelCallback(
const geometry_msgs::Twist::ConstPtr& cmd_msg);
double separation_encoder_wheel_
bool publishWheelJointState_
void UpdateOdometryEncoder()
updates the relative robot pose based on the wheel encoders
physics::JointPtr joint_wheel_encoder_left_
std::string command_topic_
double steering_angle_tolerance_
void publishWheelJointState()
publishes the wheel tf's
~GazeboRosTricycleDrive()
boost::shared_ptr< tf::TransformBroadcaster > transform_broadcaster_
ros::CallbackQueue queue_
sensor_msgs::JointState joint_state_
physics::JointPtr joint_wheel_encoder_right_
std::string robot_namespace_
double diameter_encoder_wheel_
void cmdVelCallback(const geometry_msgs::Twist::ConstPtr &cmd_msg)
event::ConnectionPtr update_connection_
std::string robot_base_frame_
common::Time last_actuator_update_
boost::thread callback_queue_thread_
void publishOdometry(double step_time)
double diameter_actuated_wheel_
ros::Publisher joint_state_publisher_
ros::Publisher odometry_publisher_
ros::Subscriber cmd_vel_subscriber_
std::string odometry_topic_
physics::JointPtr joint_steering_
virtual void UpdateChild()
void Load(physics::ModelPtr _parent, sdf::ElementPtr _sdf)
double wheel_deceleration_
common::Time last_odom_update_
std::string odometry_frame_
double wheel_speed_tolerance_
physics::JointPtr joint_wheel_actuated_
void motorController(double target_speed, double target_angle, double dt)
double wheel_acceleration_
geometry_msgs::Pose2D pose_encoder_