系统:ubuntu16.04
ROS:kinetic
最近想给husky车做一个ui界面,于是考虑ROS是否可以直接与Qt通信。
查了优快云上的一些博文后,发现要想在Qt中创建ROS工程,需要安装ros_qtc_plugins插件,于是决定跟着官网走。
官网地址:link
根据官网的引导便可以简单安装
很巧的是,最近突然看到古月居出了一门课“ROS人机交互软件的界面开发”。如果有同样看了这门可的朋友欢迎来积极讨论~
注:如果安装失败,可以检查一下安装依赖是否已经安装,执行:
sudo apt-get install ros-kinetic-qt-create
sudo apt-get install ros-kinetic-qt-build
不同ros版本自行更改
-----------------------------分割线-----------------------------
安装完成后,打算跑个简单的例程看一下。
首先创建一个工作空间:
mkdir -p ~/catkin_qt/src
cd ~/catkin_qt/src
catkin_init_workspace
cd ~/catkin_qt
catkin_make
然后创建一个Qt功能包
catkin_create_qt_pkg qttest roscpp rospy std_msgs
创建桌面快捷方式
打开启动应用程序
点击添加
名称为Qt_ROS
命令:点击浏览,选择安装的qtcreator,这里我安装在默认路径下,opt/qt59/bin/qtcreator
注释和名称可以根据自己的习惯随便写。
点击添加后,将Qt_ROS拖到桌面
对其点击右键-属性
在命令项前面加上 bash -i -c
即将命令改为:bash -i -c /opt/qt59/bin/qtcreator
点击 权限,将“允许作为程序执行文件”选中。
这样我们就可以直接打开qtcreator了。
打开qt后选择Open Project
选择刚刚创建的功能包下的CMakeLists.txt文件
导入后可能会报错,是由CMake的路径问题导致的
解决方法:
选择左侧的Projects选项
选择Build选项
找到CMAKE_PREFIX_PATH项,将后面的/usr改成你安装的ros的路径。这里我的是/opt/ros/kinetic
改好后应用一下,此时工程会自动编译。这次就可以编译成功了。
可以看到左下角的运行选项已经可以用了。
运行一下,出现qttest功能包自带的ui界面(QRosApp)。
将Ros Master Url改为系统的本地环回地址
我的电脑是127.0.0.1
Ros IP 也改为 127.0.0.1
改好后打开新终端,运行roscore
切回ui界面,点击Connect,显示
至此便成功的在Qt中创建并运行ROS工程了。
tip:
另外,也可以创建一个新工程,点击New Project
选择Other Project - ROS Workspace
接下来就不具体写了,跟着引导做即可