1. 程式人生 > >(1)搭建QT環境來開發ROS包

(1)搭建QT環境來開發ROS包

轉載自:http://www.ncnynl.com/archives/201701/1277.html


ROS與C++入門教程-搭建開發環境(QT+ros_qtc_plugin)

說明:

  • 介紹如何搭建QT環境來開發ROS包
  • 介紹QT安裝
  • 介紹QT編譯和除錯ROS包

測試環境:

  • 系統版本:Ubuntu14.04
  • ROS版本:indigo
  • QT版本:5.8.0

QtCreator安裝

  • 安裝前準備,安裝相應的GNU開發工具集和OpenGL開發庫, 請注意安裝軟體都需要root許可權,並且要聯網安裝
sudo apt-get install build-essential libgl1-mesa-dev  libevent-pthreads-2.0.5 doxygen xorg-dev
  • 下載64位Linux安裝包為 qt-opensource-linux-x64-5.8.0.run。
  • 下載地址:http://download.qt.io/archive/qt/5.8/5.8.0/qt-opensource-linux-x64-5.8.0.run
  • 下載的run檔案不一定具有可執行許可權, 可以執行如下命令開啟執行許可權(以64位安裝包為例)
cd ~/tools/
wget http://download.qt.io/archive/qt/5.8/5.8.0/qt-opensource-linux-x64-5.8.0.run
chmod +x ~/tools/qt-opensource-linux-x64-5.8.0.run
  • 桌面下,點選檔案,進入tools,雙擊 .run 安裝檔案直接圖形介面安裝
    請輸入圖片描述
    請輸入圖片描述

  • 註冊帳號,需要郵箱和密碼。可以先進入網站註冊帳號,https://login.qt.io/register.
    請輸入圖片描述

  • 預設安裝在 /home//Qt5.8.0下
    請輸入圖片描述

  • 需要的Qt元件和工具,預設不安裝原始碼
    請輸入圖片描述

  • 預設Next完整安裝,完成後點左上角的 Dash home,輸入“qt”如果看到 Qt Creator 圖示則安裝成功
    請輸入圖片描述

設定快捷方式

  • 這一步將要修改Qt Creator快捷方式,使從快捷方式啟動Qt Creator的同時載入ROS環境變數。

  • 開啟terminal,輸入下面的命令:

gedit ~/.local/share/applications/DigiaQtOpenSource-qtcreator.desktop
  • 這條命令將開啟DigiaQtOpenSource-qtcreator.desktop快捷方式檔案,可以看到檔案內容如下:
[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 ,儲存並退出。

  • 新增 bash -i -c 是為了在通過快捷方式啟動Qt Creator的同時載入ROS環境變數

  • 如果開啟的檔案是空,則表示沒有找到DigiaQtOpenSource-qtcreator.desktop檔案

  • 可能是安裝路徑不在本地使用者目錄下,或者版本不同導致的檔名不一致。

  • 可以在 ~/.local/share/applications/ 和 /usr/share/applications/ 兩個路徑下用 ls qt 命令找找看。

  • 如果沒有上述快捷方式檔案,自己新建一個,只要檔案內容類似上面的類容,路徑正確即可。

  • 快捷方式可以放在 ~/.local/share/applications/ 和 /usr/share/applications/ 兩個位置。

  • 當然也可以放在任意其他位置,功能跟放在上面兩個位置一樣,但左邊的工作列不會正確顯示圖示

安裝ros_qtc_plugin外掛

  • Ubuntu 14.04使用apt-get方式安裝,會安裝5.7版本的Qt Creator
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
  • 安裝完成在Dash home出現Qt 5.7.1 Creator, 點選即可啟動帶外掛的QtCreator
    請輸入圖片描述

  • 修改系統配置檔案讓Qt啟動器選擇新版的Qt

$ sudo gedit /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf
  • 內容為:
/usr/lib/x86_64-linux-gnu/qt4/bin
/usr/lib/x86_64-linux-gnu
  • 修改成:
/home/ubu/Qt5.8.0/5.8/gcc_64/bin
/home/ubu/Qt5.8.0/5.8/gcc_64/lib
  • /home/ubu是我的主資料夾絕對路徑,請對應修改為自己的。
  • 如果有多個QT版本,可以有不同的預設設定,查詢並同樣修改
/usr/lib/x86_64-linux-gnu/qtchooser/default.conf
和
/usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf

ros_qtc_plugin外掛新建專案

  • 利用外掛不僅可以新建工作空間還可以匯入現有的工作空間,而“新建檔案”中的“ROS”下面的“Package”、“Basic Node”等選項可以建立package和和節點、launch檔案、urdf檔案等

(1)新建專案:

  • “檔案”——“新建檔案或專案”,選擇”Import ROS Workspace”——“choose”
    請輸入圖片描述

  • 然後填寫catkin工作空間的名字和位置
    請輸入圖片描述

  • 選擇“瀏覽”——“建立資料夾”,建立一個名為catkin_new的資料夾,如下圖,按回車,再選擇“開啟”
    請輸入圖片描述

  • 在“專案管理”步驟可以配置版本控制系統,我們選擇“完成”,如下圖
    請輸入圖片描述

  • 建好的工作空間,如果沒出現src目錄,可以關閉,重開即可。
    請輸入圖片描述

(2)建立package

  • 在catkin_new下面的src上右鍵單擊,選擇“新增新檔案”,如下圖
    請輸入圖片描述

  • 然後選擇“ROS”——“package”——“choose”
    請輸入圖片描述

  • 填寫package的名字,如test1

  • 填寫作者(Authors)和維護者(Maintainers),如果你的Qt環境部沒有配置中文支援請不要用中文,否則無法新建package

  • 或者新建的package裡面的package.xml會是空檔案

  • 在“Dependencies”下的“Catkin”一欄填寫依賴,通常用C++寫節點需要新增對roscpp的依賴

  • 如下圖
    請輸入圖片描述

  • 下一步,再點選完成

(3)新增新的節點

  • test1的src資料夾上右鍵單擊,選擇“新增新檔案”
    請輸入圖片描述

  • 選擇“ROS”——“Basic Node”——“choose”,建立一個節點,也就是新建一個.cpp檔案
    請輸入圖片描述

  • 節點名稱寫為“node1”,則生成一個名為node1.cpp的原始檔
    請輸入圖片描述

  • 用ROS模板新建的node1.cpp的原始檔如下圖,是自動生成的一個Hello World程式
    請輸入圖片描述

  • 編譯節點,為test1的CMakeLists.txt加上下面幾行,意思是把node1.cpp編譯成名為node1的節點

  • 再後面include_directories,新增

add_executable(node1 src/node1.cpp)
target_link_libraries(node1
  ${catkin_LIBRARIES}
)
  • 如圖:
    請輸入圖片描述

  • 修改完CMakeLists.txt之後點選Qt左下角的錘子圖示“構建專案catkin_new”

  • 點選底邊欄的“4 編譯輸出”可以看到編譯結果,如下圖
    請輸入圖片描述

(4)執行節點

  • 新終端,執行roscore
$roscore
  • 點選左側蘭的“專案”,在“Build&Run”頁

  • 測試時候無法選擇Packge和Target,不過可以手工填寫Arguments。也可以直接寫入執行的命令和引數。
    請輸入圖片描述

  • 點選左下角的“三角”執行
    請輸入圖片描述