本文共 1408 字,大约阅读时间需要 4 分钟。
在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/
#includeturtle使用:http://wiki.ros.org/cn/ROS/Tutorials/UnderstandingTopics#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;}
节点结果: