vscode开发ROS(22)-给ros添加界面(python)

本文详细介绍如何使用Python和PyQt5为ROS系统添加图形界面。从安装PyQt5库开始,到创建ROS节点并实现简单的发布功能,一步步引导读者掌握ROS界面编程的基础知识。


写在最前

ROS系统一般来说是不需要自己弄界面的, 况且ROS有非常强大的rviz工具. 不过有些时候还是需要界面更加方便. ROS添加图形界面可以使用c++也可以使用python. c++稍微复杂一点, 需要对ros库进行配置, 同时涉及到线程编程, 本此采用python编程, 比较容易一点.

pyqt5

首先呢, 我们需要安装pyqt5图形库, 安装方法很简单, ctrl+ shift + t 弹出终端. 输入以下命令

sudo pip install python-qt5

学习pyqt5

开始GUI编程之前, 请大家自学pyqt5的编程, 本篇就不给大家接受pyqt5的相关知识了, 给大家推荐一个网站: pyqt5中文教程, 请大家对照学习即可.

创建ros节点

1, 在scripts文件夹中, 新建pyGUI.py文件.
2, 粘贴以下代码

# -*- coding: utf-8 -*-

from PyQt5 import QtCore, QtGui, QtWidgets #qt相关
import sys    #系统
import rospy  #ros
from std_msgs.msg import String #导入std_msg/string这个数据类型

class Ui_MainWindow(object):        #UI类
    def setupUi(self, MainWindow):  #初始化UI
        MainWindow.setObjectName("MainWindow") #设置Mainwindow名称
        MainWindow.resize(307, 57)  #重置Mainwindow大小
        #centralwidget
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        #垂直布局
        self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
        self.verticalLayout.setObjectName("verticalLayout")
        #水平布局
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        #添加按钮
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setObjectName("pushButton")
        self.pushButton.clicked.connect(self.click) #按钮事件
        self.horizontalLayout.addWidget(self.pushButton) 
        #添加文本框
        self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit.setObjectName("lineEdit")
        self.horizontalLayout.addWidget(self.lineEdit)
        self.verticalLayout.addLayout(self.horizontalLayout)
        MainWindow.setCentralWidget(self.centralwidget)
        
        #初始化ROS节点
        rospy.init_node("ros_gui")
        #创建发布者
        self.pub = rospy.Publisher('chatter', String, queue_size=10) #话题的名称chatter

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
    #点击事件
    def click(self):
        self.pub.publish(self.lineEdit.text())
    #国际化
    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "发布"))

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)  # 创建一个QApplication,也就是你要开发的软件app
    MainWindow = QtWidgets.QMainWindow()    # 创建一个QMainWindow,用来装载你需要的各种组件、控件
    ui = Ui_MainWindow()                    # ui是Ui_MainWindow()类的实例化对象
    ui.setupUi(MainWindow)                  # 执行类中的setupUi方法,方法的参数是第二步中创建的QMainWindow
    MainWindow.show()                       # 执行QMainWindow的show()方法,显示这个QMainWindow
    sys.exit(app.exec_())                   # 使用exit()或者点击关闭按钮退出QApplication

3, 具体介绍请看注释, 主要是创建了一个按钮和一个文本框, 使用按钮点击实现publisher.

运行ROS节点

1, 使用快捷键Ctrl + Shift + T 弹出系统终端,输入roscore,启用整个ROS总节点。
2, 使用快捷键Ctrl + Shift + T 弹出系统终端,输入rosrun ros_test listener,启用listener节点。
3, 使用vscode的终端中cd命令,定位到pyGUI.py文件

cd src/ros_test/scripts/

4, 打开pyGUI

python2 pyGUI.py

在这里插入图片描述
5, 通过点击发布按钮, 即可发现发布成功, 被listener接收到.
在这里插入图片描述

后记

更多机器人ROS相关,公-众-号搜索 ”机器人小站", 关注我们吧。

### 回答1: ROS (机器人操作系统) 是一个开源的、用于构建机器人应用软件的框架。PythonROS 中常用的编程语言之一,VS Code 则是一种广泛使用的集成开发环境。 在使用 VS Code 进行 ROS Python 调试时,需要按照以下步骤进行设置: 1. 安装 ROS 扩展:在 VS Code 中打开扩展视图,搜索并安装 "ROS" 扩展。 2. 创建工作空间:在 VS Code 中创建一个文件夹,并打开该文件夹作为你的 ROS 项目的工作空间。 3. 设置工作空间:在 VS Code 中使用快捷键 "Ctrl + Shift + P" 调出命令面板,输入 "ROS: Set Workspaces" 并选择 "ROS: Set Workspace",然后选择你的工作空间文件夹。 4. 创建 launch 文件:在工作空间中创建一个 launch 文件,该文件将用于启动 ROS 节点并配置调试器。 5. 在 launch 文件中添加调试配置:在 launch 文件中添加一个节点配置,包括节点名称、节点类型和节点参数等信息,以便 VS Code 在调试时能正确启动节点。 6. 设置断点:在你的 Python 代码中选择需要设置断点的行,并在调试器视图中点击左边的行号。这样当节点运行到这行时,调试器将会暂停执行。 7. 启动调试:在工作空间中打开 `.vscode/launch.json` 配置文件,在节点配置中添加 `"request": "launch"` 字段。然后按下 F5 键或在调试菜单中选择启动调试,VS Code 将会连接 ROS 节点并进行调试。 8. 调试过程中的操作:在调试过程中,你可以使用调试器界面中的控件,如继续、暂停、下一步、单步跳入、单步跳过等,来控制代码的执行流程和查看变量的值等信息。 通过以上步骤,你可以在 VS Code 中使用调试器来调试你的 ROS Python 代码,以便更好地理解和修复代码中的错误和问题。 ### 回答2: 在使用ROSPythonVSCode进行调试时,我们可以按照以下步骤进行操作: 1. 安装ROS:首先,确保已正确安装并配置ROS开发环境。在安装完成后,可以使用`roscd`命令进入ROS工作空间。 2. 安装VSCode:从VSCode的官方网站上下载并安装VSCode;然后,安装ROS插件,如"ROS"、"Python"和"Remote - Containers"等。 3. 创建工作空间:打开VSCode,点击"打开文件夹",然后选择ROS工作空间的路径。VSCode会自动加载ROS插件以支持ROS功能。 4. 创建和编辑ROS节点:在VSCode中,打开一个新的终端并导航到ROS工作空间。使用ROS命令创建和运行ROS节点,比如`rosrun <package_name> <node_name>`。 5. 编写Python代码:在VSCode中创建或编辑Python代码文件,实现ROS节点的功能。在代码中,可以使用ROS提供的Python库来访问ROS消息、服务和参数等。 6. 配置调试器:在VSCode中,点击"调试"选项卡,然后在调试配置文件中选择"Python"。这将创建一个新的"launch.json"文件。 7. 配置调试选项:在"launch.json"文件中,配置调试器的选项,指定要运行和调试的Python脚本、启动节点的参数等。 8. 运行和调试:点击调试工具栏中的"开始调试"按钮,VSCode将运行ROS节点并自动启动调试器。可以设置断点、观察变量、单步执行等操作来调试代码。 9. 观察输出:在VSCode的"调试控制台"中,可以看到ROS节点的输出信息,包括ROS消息、调试信息等。可以使用打印语句或ROS的日志库来记录输出。 10. 停止调试:调试完成后,点击调试工具栏中的"停止"按钮,停止ROS节点的运行和调试会话。 总结,使用VSCode进行ROSPython的调试是一种便捷的方法。通过正确设置调试配置文件,我们可以轻松地调试ROS节点并观察输出信息,提高调试效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值