ARTICLE · 1093491
实验室进阶技能之机器人测控软件开发:基于QT和ROS的混合开发环境构建
基于ROS开发机器人测控软件系统非常方便,但存在的问题是在机载和遥控计算机上可能需要开非常多的终端(p.s. CTRL+ALT+T 快捷键可新建终端),对非专业人士来说界面非常不友好。为此,可以采用QT(C++)来开发界面,并将多个终端的操作集成在QT界面中,从而构造一个具有友好界面的测控软件系统。
基于实验室开发经验,选用ROS2比ROS1增加不少好处。在分布式节点通信环境下,ROS2设置非常简单:确保多台计算机通过局域网相连,且有独立的IP(用ping命令测试),只要在.bashrc设置相同的域(export ROS_DOMAIN_ID=X)就可以通信了。此外,ROS2去中心节点(RosMaster),提高了分布式系统通信效率和可靠性。后续除非硬件厂商未提供ROS2驱动,一律用ROS2开发,QT对ubuntu版本适应性很广。下面上干货,介绍如何配置有关环境。
第一步安装支持ROS2的最低版本的Ubuntu 22.04, 详情参见:从U盘安装操作系统:一份面向新手的指南。建议下载清华大学镜像的Ubuntu版本https://mirror.tuna.tsinghua.edu.cn/ubuntu-releases/22.04.5/ubuntu-22.04.5-desktop-amd64.iso,采用Rufus 4.2以上版本制作启动盘,找不到可到网盘下载。
第二步:安装ROS2 humble,参见CSDN有关教程,也可采用鱼香ROS(FishROS)快速安装。
第三部:安装QT, 可选择的版本是qt-opensource-linux-x64-5.12.10.run
下载地址:https://download.qt.io/archive/,找不到可到网盘下载。
第四步:安装QtCreator, ros2的ros-qtc-plugin插件只支持QtCreator 6.0以上的版本这里选择QtCreator10.0.下载地址: https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/qtcreator/10.0/10.0.1/qt-creator-opensource-linux-x86_64-10.0.1.run. 找不到可到网盘下载。
第五步:ros-qtc-plugin插件版本,ros-qtc-plugin插件是在0.5版本以后才支持ros2,可到网盘下载。插件文件名:ROSProjectManager-10.0-Linux-x86_64.zip
第六步,环境设置:参见https://blog.csdn.net/Functioe/article/details/131659829; 主要步骤包括:
1. 打开QtCreator10.0.1,在界面上菜单栏点击“编辑→Preferences…”,在构建套件(Kit)中选择Qt版本,点击右侧Link with Qt…,将Qt5.12.10 与QtCreator10.0.1链接在一起,有重启提醒就重启。
2. 将ros-qtc-plugin插件的压缩包放进QtCreator10.0.1安装目录,在QtCreator10.0.1,在界面上菜单栏点击“帮助→关于插件,选择下载好的ROSProjectManager-10.0-Linux-x86_64.zip压缩包,一直下一步即可安装完成,有重启提醒就重启。
3. 改变变量终端输入:gedit ~/.local/share/applications/org.qt-project.qtcreator.desktop
修改Exec变量一行,中间添加bash -i -c即改为 Exec=bash -i -c,并将原先连接的5.12.10的QtCreator改成QtCreator10.0.1的QtCreator路径,保存。
第七步开发环境使用与测试
1.建立ros2-qt框架1)在home路径下新建文件夹test/src2)打开QtCreator10.0.1,选择创建项目切记build system选择colcon,否则创建功能包会失败。
2.下载古月居(https://www.guyuehome.com/detail?id=1825498577384566785
)的例子进行测试:本质上是将QT窗口程序和ROS线程构建了多线程通信关系。
3.编译通过之后,需要打开终端,运行节点,如能运行说明完成了所有工作。
4.编译通过例程ros_qt_template可在百度网盘下载。
下载地址:https://pan.baidu.com/s/1hBAPlBgkCVlYh6E_y47vgg,提取码联系dou_jp@163.com索取。