IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> ROS如何创建一个发布者Publisher -> 正文阅读

[人工智能]ROS如何创建一个发布者Publisher

首先我们需要在主文件夹创建功能包

先创建一个文件夹

1 mkdir ~/catkin_ws
2 cd /catkin_ws
3 mkdir /src

catkin_ws为我们文件夹的名称

添加工程包需要的依赖

1 cd ~/catkin_ws/src
2 catkin_creat_pkg learning_topic roscpp std_msgs geometry_msgs turtlesim

catkin_create_pkg为创建工程包,learning_topic为工程包的名称,roscpp、std_msgs、geometry_msgs、turtlesim为添加的依赖

返回根文件catkin_ws,然后在根文件中编译

1 cd ~/catkin_ws
2 catkin_make //编译
3 catkin_make install

编译完成后,我们需要设置环境

1 source devel/setup.bash
2 echo $ROS_PACKAGE_PATH  //查看工程包路径

在配置好编译所以需要的环境后,我们便可以开始写代码啦,我使用的是C++来创作发布者。首先我们来了解一下如何实现一个发布者吧。

如何实现一个发布者

1、初始化ROS节点;

2、向ROS Master注册节点信息,包括发布的话题名和话题中的消息类型;

3、创建消息数据;

4、按照一定频率循环消息;

在learning_topic/src中创建一个velocity_publisher.cpp文件,并编写程序。以下是C++写的发布者的代码:

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

int main(int argc, char **argv)
{
    //ROS节点初始化
    ros::init(argc,argv,"velocity_publisher")
    
    //创建节点句柄
    ros::NodeHeadle n;

    //创建一个Publisher,发布名为/turtle1/cmd_vel的topic,消息类型为geometry_msgs::Twist,队列长度为10
    ros::Publisher turtle_vel_pub = n.advertise<geometry_msgs::Twist>("/turtle1/cmd_vel",10);
    //设置循环的频率
    ros::Rate loop_rate(10);

    int count = 0;
    while(ros::ok())
    {
        //初始化geometry_msgs::Twist类型的消息
        geometry_msgs::Twist vel_msg;
        vel_msg.linear.x = 0.5;
        vel_msg.angular.z = 0.2; //设置小乌龟的线速度和角速度
        

        //发布消息
        turtle_vel_pub.publish(vel_msg);
        ROS_INFO("Publish turtle velocity command[%0.2f m/s, %0.2f rad/s]",vel_msg.linear.x, vel_msg.angular.z); //输出命令,类似于C语言的print
        
        //按照循环频率延时
        loop_rate.sleep();
    }
    return 0;
}

完成代码后我们需要配置CMakeLists.txt的编译规则。让我们了解一下CMakeLists.txt的编译规则吧。

如何配置CMakeLists.txt的编译规则

1、设置需要编译的代码和生成的可执行文件;

2、设置链接库;

我们需要在文件夹learning_topic中的CMakeLists.txt如图所示的位置加入以下代码

?具体操作步骤如下:

1 gedit CMakeLists
2 add_executable(veolcity_publisher src/velocity_publisher.cpp)
3 target_link_libraries(velocity_publisher ${catkin_LIBRARIES})

之后我们便可以编译并运行发布者啦,具体的操作如下:

1 cd ~/catkin_ws
2 catkin_make
3 source devel/setup.bash
//打开一个新的终端,运行ros
4 roscore
//再打开一个终端运行小乌龟节点
5 rosrun turtlesim turtlesim_node
//返回编译代码的终端
6 rosrun learning_topic velocity_publisher

运行成功后小乌龟会已线速度为0.5 m/s,角速度为0.2 rad/s做圆周运动

恭喜你完成了发布者的第一步!

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-08 13:48:54  更:2021-12-08 13:49:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 1:14:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码