二 发布cmd_vel话题的节点编写

1  编写

先建立一个catkin空间

mkdir -p ~/catkin_ws/src

cd ~/catkin_ws

catkin_make

为发布节点单独建立一个包

cd ~/catkin_ws/src

catkin_create_pkg publisher geometry_msgs std_msgs roscpp rospy

在包的src/文件夹下面编写一个publisher.cpp文件,用来向cmd_vel发布话题

#include "ros/ros.h"

#include "std_msgs/String.h"

#include "geometry_msgs/Twist.h"

int main(int argc, char **argv)

     ros::init(argc, argv, "publisher");

     ros::NodeHandle n; 

    ros::Publisher pub = n.advertise("/cmd_vel", 1000);

    ros::Rate loop_rate(10);

    geometry_msgs::Twist msg;

    while (ros::ok())

    {

        msg.linear.x = 0.5;

        msg.linear.y = 0;

        msg.linear.z = 0;

        msg.angular.x = 0;

        msg.angular.y = 0;

        msg.angular.z = 0.5;

        pub.publish(msg);

        ros::spinOnce();

        loop_rate.sleep();

    }

    return 0;

}

修改~/catkin_ws/src/publisher/CMakeList文件

在末尾添加两句

add_executable(publisher src/publisher.cpp)

target_link_libraries(publisher ${catkin_LIBRARIES})

要指定必须构建的可执行目标,我们必须使用add_executable()

其中 publisher为将要构建的可执行文件  后面的路径为存放用于构建可执行文件的代码文件

使用target_link_libraries()函数来指定可执行目标链接的库。


2 编译

完成以上之后 回到工作空间

cd ~/catkin_ws

catkin_make

3 执行

新终端 roscore

新终端如下

source ~/catkin_ws/devel/setup.bash

rosrun  publisher(包名) publisher(生成的可执行文件名)

4 代码

pan.baidu.com/s/1qXIZMlm

你可能感兴趣的:(二 发布cmd_vel话题的节点编写)