Ubuntu下ROS開發環境搭建(QT+ros_qtc_plugin)


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

PS : 在“安裝ros_qtc_plugin插件”這一步中,原文提到“ Ubuntu 14.04使用apt-get方式安裝,會安裝5.7版本的Qt Creator”,因此如果對Qt版本沒要求可以直接做“安裝ros_qtc_plugin插件”這一步,可以同時安裝Qt和ros_qtc_plugin

原文出自  http://www.ncnynl.com/archives/201701/1277.html

說明:

  • 介紹如何搭建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 安裝文件直接圖形界面安裝
    請輸入圖片描述
    PS : 在“安裝ros_qtc_plugin插件”這一步中,原文提到“ Ubuntu 14.04使用apt-get方式安裝,會安裝5.7版本的Qt Creator”,因此如果對Qt版本沒要求可以直接做安裝ros_qtc_plugin插件”這一步,可以同時安裝Qt和ros_qtc_plugin請輸入圖片描述

  • 注冊帳號,需要郵箱和密碼。可以先進入網站注冊帳號,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    (bash -i -c 的目地是便於設置快捷方式)

  • 如果打開的文件是空,則表示沒有找到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。也可以直接寫入執行的命令和參數。
    請輸入圖片描述

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

參考:

  • http://download.qt.io/archive/qt/5.8/5.8.0/
  • http://www.aicrobo.com/blog/2013-12-ros_ide_qtcreator.html
  • https://wizardforcel.gitbooks.io/qt-beginning/content/4.html
  • https://lug.ustc.edu.cn/sites/qtguide/
  • https://github.com/ros-industrial/ros_qtc_plugin
  • https://github.com/ros-industrial/ros_qtc_plugin/wiki/1.-How-to-Install-(Users)
  • http://blog.csdn.net/u013453604/article/details/52186375
  • http://blog.csdn.net/u013453604/article/details/52167213
  • http://wiki.ros.org/qt_create/Tutorials/Qt%20App%20Templates
  • http://myzharbot.robot-home.it/blog/software/myzharbot-ros/qtcreator-ros/
  • http://www.ciencia-explicada.com/2014/12/ros-how-to-develop-catkin-packages-from-an-ide.html
  • https://github.com/ros-industrial/ros_qtc_plugin/issues?q=is%3Aissue+is%3Aclosed


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM