ROS Noetic教程------VSCode创建ROS话题通讯--发布方的简单流程

目录

1.创建一个工作空间

1.1按快捷键Ctrl+Alt+T,调出终端

1.2输入命令,创建工作空间:

1.3输入命令,进入新建的demo01_ws工作空间中,

2.输入命令,初始化工作空间

3.启动VSCode

[3.1vscode 中编译 ros](#3.1vscode 中编译 ros)

3.2在工作空间下的src目录下创建功能包

3.3在新建的功能包下,新建一个scripts文件夹

3.4在新建的scripts文件夹下,新建一个py文件

3.5在py文件中,写代码创建一个简单的死循环pub发布方

3.6为新建的py文件添加可执行权限

3.7修改CMakeLists.txt文件

3.8编译一下,看是否能正常编译?​编辑

4.测试上述创建的发布方是否能够发布数据?

4.1按Ctrl+Alt+T,调出新的终端窗口​编辑

4.2启动roscore​编辑

4.3在另一个新建的终端窗口中,进入工作空间,输入命令,将节点挂起​编辑

4.4输入发布方发布的话题,查看发布的数据


1.创建一个工作空间

1.1按快捷键Ctrl+Alt+T,调出终端

1.2输入命令,创建工作空间:

python 复制代码
mkdir -p demo01_ws/src

上述命令创建了一个工作空间,名为demo01_ws,工作空间内包含一个子文件夹src(空的)。

1.3输入命令,进入新建的demo01_ws工作空间中,

python 复制代码
cd demo01_ws/

2.输入命令,初始化工作空间

python 复制代码
catkin_make

3.启动VSCode

python 复制代码
code .

3.1vscode 中编译 ros

快捷键 ctrl + shift + B 调用编译,选择:catkin_make:build

可以点击配置设置为默认,修改.vscode/tasks.json 文件

复制下面的代码,进行替换原代码:

python 复制代码
{
// 有关 tasks.json 格式的文档,请参见
    // https://go.microsoft.com/fwlink/?LinkId=733558
    "version": "2.0.0",
    "tasks": [
        {
            "label": "catkin_make:debug", //代表提示的描述性信息
            "type": "shell",  //可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行
            "command": "catkin_make",//这个是我们需要运行的命令
            "args": [],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES="pac1;pac2"
            "group": {"kind":"build","isDefault":true},
            "presentation": {
                "reveal": "always"//可选always或者silence,代表是否输出信息
            },
            "problemMatcher": "$msCompile"
        }
    ]
}

3.2在工作空间下的src目录下创建功能包

3.3在新建的功能包下,新建一个scripts文件夹

3.4在新建的scripts文件夹下,新建一个py文件

3.5在py文件中,写代码创建一个简单的死循环pub发布方

python 复制代码
#! /usr/bin/env python

import rospy
from std_msgs.msg import String

"""
    使用python实现消息发布:
        1.导包;
        2.初始化ROS节点;
        3.创建发布者对象;
        4.编写发布逻辑并发布数据。
"""

if __name__ == "__main__":

    # 2.初始化ROS节点;
    rospy.init_node("sanDai")   # ()内传入的是节点的命名
    # 3.创建发布者对象;
    pub = rospy.Publisher("che",String,queue_size=10) #()内依次是话题的命名/传输数据的类型/数据的最大容量(若超出,就从前往后依次删除)
    # 4.编写发布逻辑并发布数据。
    msg = String()  # 创建数据对象
    while not rospy.is_shutdown():  # 发布数据的死循环(循环条件:节点不关闭)
        msg.data = "hello"   # 数据内容
        pub.publish(msg)     # 发布数据

3.6为新建的py文件添加可执行权限

3.7修改CMakeLists.txt文件

3.8编译一下,看是否能正常编译?

4.测试上述创建的发布方是否能够发布数据?

4.1按Ctrl+Alt+T,调出新的终端窗口

4.2启动roscore

4.3在另一个新建的终端窗口中,进入工作空间,输入命令,将节点挂起

4.4输入发布方发布的话题,查看发布的数据

相关推荐
deephub2 小时前
dLLM:复用自回归模型权重快速训练扩散语言模型
人工智能·python·语言模型·大语言模型
itwangyang5202 小时前
AIDD-人工智能药物设计-字节跳动 PXDesign:AI 设计蛋白,82% 命中率惊艳业界
人工智能·python
Biehmltym2 小时前
【AI】01开发环境:Conda_python包/环境管理,10分钟上手
开发语言·python·conda
袁气满满~_~2 小时前
Python练习
开发语言·python
我可以将你更新哟2 小时前
【爬虫】爬取斗罗大陆漫画,面向对象封装(存入数据库)
数据库·爬虫·python
麦麦大数据2 小时前
F060 基于BERTvue+flask电影评论情感分析系统
后端·python·flask·bert·推荐算法·情感分析·电影评论
yongche_shi2 小时前
第八十九篇:CAP理论、BASE理论在系统设计中的应用
开发语言·python·面试宝典·cap理论·base理论
小智RE0-走在路上3 小时前
Python学习笔记(13) --Mysql,Python关联数据库
数据库·python·学习
YJlio3 小时前
杨利杰YJlio|博客导航目录(专栏总览 + 推荐阅读路线)
开发语言·python·pdf