使用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頭文件。