ros使用QT插件开发
使用qt插件开发ros
一 安装
1.0 安装qt5.7
1.1 UBuntu14.04
sudo add-apt-repository ppa:levi-armstrong/qt-libraries-trusty
sudo add-apt-repository ppa:levi-armstrong/ppa
sudo apt-get update && sudo apt-get install qt57creator-plugin-ros
1.2 Ubuntu16.04
sudo add-apt-repository ppa:levi-armstrong/qt-libraries-xenial
sudo add-apt-repository ppa:levi-armstrong/ppa
sudo apt-get update && sudo apt-get install qt57creator-plugin-ros
二 配置系统使用新的QT
安装完毕,替换
sudo gedit /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf
把下面的路径改为文件内容成为自己的路径
/opt/qt57/bin /opt/qt57/lib
改为:
/home/你的用户名/Qt5.7.0/5.7/gcc_64/bin
/home/你的用户名/Qt5.7.0/5.7/gcc_64/lib
三 测试插件
qtcreator
确认文件-》新文件或工程》工程》导入工程》导入ROS工作空间,存在导入ROS工作空间,则成功
四 注意问题:
1 这里我测试了采用源码安装的ros,插件不能知道ros的发布版本,也不能显示ros的头文件,这里没有深入研究,采用的都是默认的值,所以还是采用非源码安装的方式。
2 我的程序在新创建一个工作空间的时候并没有初始化工作空间,所以
echo $ROS_PACKAGE_PATH
并没有新创建的工作空间的路径,如果需要在终端运行,还需要把新创建的工作空间路径加入到~/.bashrc中
3 使用ros_qt插件时,要注意
1 CMakeLists.txt编写正确
2 运行设置中,ROS step如果target中没有内容,很可能是因为你的可执行文件生成到工作空间的build目录中,只有生成在devel目录中才可以找到。
3 运行程序时,输出是在
ROS Terminals中,如果没有,点击
,这里可以选择显示ROS Terminals
4 .workspace中需要添加
<IncludePaths> <Directory>/opt/ros/indigo/include</Directory> </IncludePaths>
添加后的形式可能是这样
<?xml version="1.0"?> <Workspace> <Distribution name="indigo"/> <DefaultBuildSystem value="0"/> <WatchDirectories> <Directory>src</Directory> </WatchDirectories> <IncludePaths> <Directory>/opt/ros/indigo/include</Directory> </IncludePaths> </Workspace>
我的电脑即使添加,或者重启qt都不能包含ros头文件,只有编译一次之后才可以找到ros头文件。