• kuka示教器嵌套UR界面操作ros中rviz的UR机器人


       摘要

    本例展示了用QT增加一个网页视图,背景是kuka示教器界面,中间增加UR的VNC网页界面显示。本人博客中一起有写过ros2运行UR的操作。

            ros2 UR10仿真包运行_基于ros的ur仿真-CSDN博客

          效果如下:

    1.打开UR机器人的ros2仿真文件

    1. sudo su
    2. ros2 run ur_client_library start_ursim.sh -m ur10

     

    ros2 launch ur_robot_driver ur_control.launch.py ur_type:=ur10 robot_ip:=192.168.56.101 launch_rviz:=true

     

     2.使用QT pyside6编写界面文件

    背景的增加,参考这篇文件。 

    qt for python创建UI界面-CSDN博客

     

    主要是将示教器显示区域增加了这个QwebView控件,气泡3的URL地址写成打开的UR控制器的地址:http://192.168.56.101:6080/vnc.html,与第一步中的对应。

    3.转换界面文件到python模块

     使用这个命令转换

    pyside6-uic login.ui -o ui_login.py

    转换后是这样的,可以通过添加现有文件把这个文件添加到工程中。 

    需要注意的是有三个地方要修改,修改后的代码如下,不然总是提示不能解析qwebview,或者其他错误。只改上图标识的地方即可,其他保持原样,代码如下:

    1. # -*- coding: utf-8 -*-
    2. ################################################################################
    3. ## Form generated from reading UI file 'login.ui'
    4. ##
    5. ## Created by: Qt User Interface Compiler version 6.6.2
    6. ##
    7. ## WARNING! All changes made in this file will be lost when recompiling UI file!
    8. ################################################################################
    9. from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
    10. QMetaObject, QObject, QPoint, QRect,
    11. QSize, QTime, QUrl, Qt)
    12. from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
    13. QFont, QFontDatabase, QGradient, QIcon,
    14. QImage, QKeySequence, QLinearGradient, QPainter,
    15. QPalette, QPixmap, QRadialGradient, QTransform)
    16. from PySide6.QtWidgets import (QApplication, QPushButton, QSizePolicy, QWidget)
    17. from PySide6.QtWebEngineWidgets import QWebEngineView
    18. #from QtWebKitWidgets.QWebView import QWebView
    19. class Ui_Login(object):
    20. def setupUi(self, Login):
    21. if not Login.objectName():
    22. Login.setObjectName(u"Login")
    23. Login.resize(1056, 750)
    24. Login.setStyleSheet(u"background-image: url(:/kuka_top.png);")
    25. self.pushButton = QPushButton(Login)
    26. self.pushButton.setObjectName(u"pushButton")
    27. self.pushButton.setGeometry(QRect(720, 600, 89, 25))
    28. self.webView = QWebEngineView(Login)
    29. self.webView.setObjectName(u"webView")
    30. self.webView.setGeometry(QRect(230, 190, 601, 371))
    31. self.webView.setUrl(QUrl(u"http://192.168.56.101:6080/vnc.html"))
    32. self.webView.setZoomFactor(0.600000000000000)
    33. self.retranslateUi(Login)
    34. QMetaObject.connectSlotsByName(Login)
    35. # setupUi
    36. def retranslateUi(self, Login):
    37. Login.setWindowTitle(QCoreApplication.translate("Login", u"Form", None))
    38. self.pushButton.setText(QCoreApplication.translate("Login", u"\u4e0b\u4e00\u6b65", None))
    39. # retranslateUi

    4.加载界面程序

    按上图代码,增加3处的代码,具体如下:

    1. # This Python file uses the following encoding: utf-8
    2. # if __name__ == "__main__":
    3. # pass
    4. import sys
    5. from PySide6.QtWidgets import QApplication, QMainWindow
    6. from PySide6.QtCore import QFile
    7. from ui_login import Ui_Login
    8. import images
    9. class MainWindow(QMainWindow):
    10. def __init__(self):
    11. super(MainWindow, self).__init__()
    12. self.ui = Ui_Login()
    13. self.ui.setupUi(self)
    14. if __name__ == "__main__":
    15. app = QApplication(sys.argv)
    16. window = MainWindow()
    17. window.show()
    18. sys.exit(app.exec())

     5.运行效果

    如摘要所示,点击链接后,可以正常操作控制机器人

  • 相关阅读:
    Linux项目自动化构建工具-make/Makefile
    鸿蒙:从0到“Hello Harmony”
    如何在 Windows 10/11 上编辑 PDF [4 种简单方法]
    【C++】你想要的——印刷模板儿
    小红书kol推广怎么做?分享一份完整的小红书kol推广方案
    3.DesignForVias\1.AutoRoutingFirstSetp
    源码层面理解 LiveData 各种特性的实现原理
    线性代数的本质——几何角度理解
    鸽群优化算法(Pigeon-inspired Optimization algorithm, PIO)附matlab代码
    java深拷贝
  • 原文地址:https://blog.csdn.net/xiaoding_ding/article/details/136185661