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输入发布方发布的话题,查看发布的数据

相关推荐
QQ2422199795 小时前
基于python+微信小程序的家教管理系统_mh3j9
开发语言·python·微信小程序
RSTJ_16255 小时前
PYTHON+AI LLM DAY THREETY-SEVEN
开发语言·人工智能·python
郝学胜-神的一滴5 小时前
深度学习优化核心:梯度下降与网络训练全解析
数据结构·人工智能·python·深度学习·算法·机器学习
Aision_5 小时前
Agent 为什么需要 Checkpoint?
人工智能·python·gpt·langchain·prompt·aigc·agi
清水白石0085 小时前
《Python性能深潜:从对象分配开销到“小对象风暴”的破解之道(含实战与最佳实践)》
开发语言·python
Land03296 小时前
RPA工具选型技术指南:架构差异与实测数据
python·自动化·rpa
kafei_*7 小时前
VScode 添加 UV虚拟环境方法
vscode·python·uv
洛_尘7 小时前
Python 5:使用库
java·前端·python
m0_596749097 小时前
如何防止SQL拼接漏洞_使用PDO对象实现安全的SQL交互
jvm·数据库·python
AIFQuant9 小时前
2026 全球股票/外汇/贵金属行情 API 深度对比:延迟、覆盖、价格与稳定性
python·websocket·ai·金融·mcp