系统测试环境:
- 系统版本:Ubuntu16.04
- ROS版本:kinetic
- QT版本:QT5.8
QT5.8安装
进入官网下载,对应5.8下载地址https://download.qt.io/archive/qt/5.8/5.8.0/
注意版本,对应的系统下载的软件名为qt-opensource-linux-x64-5.8.0.run,接着为.run文件赋权限并且执行,在终端输入
cd ~/Downloads
chmod +x qt-opensource-linux-x64-5.8.0.run
./qt-opensource-linux-x64-5.8.0.run
安装过程,选择路径尽量选择到/opt下.
安装完成后,从左上角的Dash Home中输入qt,如果看到了qt图标说明安装成功.
设置快捷方式
打开终端,输入命令
gedit ~/.local/share/applications/DigiaQtOpenSource-qtcreator.desktop
gedit /usr/share/applications/DigiaQtOpenSource-qtcreator.desktop
上述命令需要根据你安装的qt路径来决定,如果你装在/home下,则输入第一行指令,如果安装在/opt下,则输入第二行指令.
修改具体的桌面快捷方式
[Desktop Entry]
Type=Application
Exec=/home/ubu/Qt5.8.0/Tools/QtCreator/bin/qtcreator
Name=Qt Creator (Community)
GenericName=The IDE of choice for Qt development.
Icon=QtProject-qtcreator
Terminal=false
Categories=Development;IDE;Qt;
MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.qt.qmakeprofile;application/vnd.qt.xml.resource;text/x-qml;text/x-qt.qml;text/x-qt.qbs;
修改Exec变量,中间添加bash -i -c ,最后变成Exec=bash -i -c /home/ubu/Qt5.8.0/Tools/QtCreator/bin/qtcreator,目的是为了能够编译ros环境,最后保存.
安装ros_qtc_plugin插件
在16.04下,可以直接通过apt进行安装,具体的指令为
sudo add-apt-repository ppa:levi-armstrong/qt-libraries-xenial
sudo add-apt-repository ppa:levi-armstrong/ppa
sudo apt update && sudo apt install qt57creator
sudo apt install qt57creator-plugin-ros
对于ppa安装方式,对应的删除方式为
sudo add-apt-repository -r ppa:levi-armstrong/qt-libraries-xenial
安装成功后,同样在左上角找到安装的具体快捷方式,说明安装成功.
之后需要修改系统配置文件让Qt启动器选择新版的Qt
sudo gedit /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf
将内容修改为你下载好的Qt的bin与lib文件夹
/opt/Qt5.8.0/5.8/gcc_64/bin
/opt/Qt5.8.0/5.8/gcc_64/lib
其中的路径需要根据你自己的下载地址进行选择.
利用ros_qtc_plugin导入ros功能包
插件本身可以新建工作空间并且导入已存在的工作空间,同时可以新建对应的Package,Node,launch,urdf文件
这里注意,因为Qt会在工作空间会生成catkin_ws.workspace,并通过读取该文件来处理工作空间,而本身ros没有这个文件,所以需要新建一个工作空间,并且名字与你想要导入的工作空间名字相同.
这样就能看到你想要导入的工作空间了,之后还有两个步骤.
1.将工作空间下的CMakeList.txt文件解锁,具体的指令为
sed -i '' CMakeLists.txt
2.导入除开src之外的文件夹以及头文件
打开文件catkin_ws.workspace,输入
<?xml version="1.0"?>
<Workspace>
<Distribution name="kinetic"/>
<DefaultBuildSystem value="0"/>
<WatchDirectories>
<Directory>src</Directory>
<Directory>你想加入的文件夹名字</Directoory>
</WatchDirectories>
<Directory>/opt/ros/kinetic/include</Directory>
</Workspace>
之后编译通过即可