打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ros 消息发布和订阅
在一个包的src文件夹内,创建pubvel.cpp和listener.cpp
pubvel.cpp:
#include<ros/ros.h>
#include<geometry_msgs/Twist.h>
#include<stdlib.h>

int main(int argc,char **argv)
{
ros::init(argc,argv,"public_vel");
ros::NodeHandle nh;

ros::Publisher pub= nh.advertise<geometry_msgs::Twist>("turtle1/cmd_vel",1000);
srand(time(0));

ros::Rate rate(2);

while(ros::ok())
{
geometry_msgs::Twist msg;
msg.linear.x=double(rand())/double(RAND_MAX);
msg.angular.z=2*double(rand())/double(RAND_MAX)-1;

pub.publish(msg);
ROS_INFO_STREAM("send random velocity command :"<<"linear"<<msg.linear.x<<"angular"<<msg.angular.x);
rate.sleep();

}
}


listener.cpp :

#include<ros/ros.h>
#include<geometry_msgs/Twist.h>
#include<stdlib.h>
#include <iomanip>

void chatterCallback(const geometry_msgs::Twist& msg)
{
ROS_INFO_STREAM( " position =(" << msg .linear. x << " , " << msg .linear. y << " ) "
<< " *direction=" << msg . angular.z ) ;
}

int main(int argc,char **argv)
{
ros::init(argc,argv,"listener");
ros::NodeHandle nh;

ros::Subscriber sub= nh.subscribe("turtle1/cmd_vel",1000,chatterCallback);
ros::spin();
return 0;
}



CMakeLists.txt :
添加:
 find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
geometry_msgs //添加这一行
)
add_executable(pub_vel src/pubvel.cpp)
target_link_libraries(pub_vel ${catkin_LIBRARIES})

add_executable(listener src/listener.cpp)
target_link_libraries(listener ${catkin_LIBRARIES})
额外说明:
catkin 把所有的 package 并行的编译,所以如果你要使用其他 catkin 工作空间中其他 package 的消息,你同样也需要添加对他们各自生成的消息文件的依赖。当然,如果在 *Groovy* 版本下,你可以使用下边的这个变量来添加对所有必须的文件依赖:
add_dependencies(listener ${catkin_EXPORTED_TARGETS})
添加这一句话就可以了,不需要修改宏里面的东西
具体添加项参考:
http://wiki.ros.org/catkin/CMakeLists.txt#Library_Targets

package.xml:
添加:
<build_depend>geometry_msgs</build_depend>
<exec_depend>geometry_msgs</exec_depend>

然后在工作空间catkin_make就可以了
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
robot_setup_tf
ROS学习(四)发布者与订阅者
编写一个简单的执行回调的行动服务和行动客户端
ROS:消息发布器和订阅器(c++)
ROS2学习笔记(三)——colcon编译并编写自己的包_ros2 编译自己的小包
ros入门之用catkin和rosmake创建和编译功能包
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服