ROS下订阅/cmd_vel节点

在ROS下测试订阅/cmd_vel节点,实际测试时采用/turtle1/cmd_vel节点

参考:

http://blog.csdn.net/heyijia0327/article/details/41823809 

http://answers.ros.org/question/129506/subscriber-not-seeing-cmd_vel-messages/

#include
#include
#include
#include
#include

void callback(const geometry_msgs::Twist& cmd_vel)
{
	ROS_INFO("Received a /cmd_vel message!");
	ROS_INFO("Linear Components:[%f,%f,%f]",cmd_vel.linear.x,cmd_vel.linear.y,cmd_vel.linear.z);
	ROS_INFO("Angular Components:[%f,%f,%f]",cmd_vel.angular.x,cmd_vel.angular.y,cmd_vel.angular.z);
	// Do velocity processing here:  
    // Use the kinematics of your robot to map linear and angular velocities into motor commands  
//    v_l = ...  
//    v_r = ...  
  
    // Then set your wheel speeds (using wheel_left and wheel_right as examples)  
//    wheel_left.set_speed(v_l)  
//    wheel_right.set_speed(v_r) 
}

int main(int argc, char** argv)
{
	ros::init(argc, argv, "cmd_vel_listener");
	ros::NodeHandle n;
	//ros::Subscriber sub = n.subscribe("cmd_vel", 1000, callback);
	ros::Subscriber sub = n.subscribe("/turtle1/cmd_vel", 1000, callback);//用/turtle1/cmd_vel做测试哈
	ros::spin();

/*
//http://answers.ros.org/question/129506/subscriber-not-seeing-cmd_vel-messages/
	ros::Rate loop_rate(10);
	while( n.ok() ) 
	{
   		 ros::spin();
	}
*/
	return 1;
}

turtle使用:http://wiki.ros.org/cn/ROS/Tutorials/UnderstandingTopics

节点结果:

ROS下订阅/cmd_vel节点_第1张图片



你可能感兴趣的:(ROS)