本文主要是介绍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<ros/ros.h>
#include<tf/transform_broadcaster.h>
#include<nav_msgs/Odometry.h>
#include<geometry_msgs/Twist.h>
#include<iostream>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节点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!