Qt-crateor 編譯 ROS

http://my.phirobot.com/blog/2013-12-ros_ide_qtcreator.html

QtCreator安裝

QtCreator安裝方式很多,本文以Qt 5.2.0爲例,我直接下載離線安裝程序安裝。

下載安裝

從http://qt-project.org/downloads下載QtCreator安裝程序。對於Ubuntu 32位系統,點擊 Qt 5.2.0 for Linux 32-bit (425 MB) 將下載離線安裝程序( Qt Online Installer for Linux 32-bit (23 MB) 爲在線安裝程序,不推薦),下載後的文件名爲 qt-linux-opensource-5.2.0-x86-offline.run

雙擊 .run 安裝文件直接圖形界面安裝,默認安裝在 /home/<user>/Qt5.2.0 下( <user> 爲你的用戶名,這裏爲viki )。

Qt Installer

按照指示一路Next即可安裝完成。

安裝完成後點左上角的 Dash home,輸入“qt”如果看到 Qt Creator 圖標則安裝成功。

Qt Creator

設置快捷方式

這一步將要修改Qt Creator快捷方式,使從快捷方式啓動Qt Creator的同時加載ROS環境變量。

打開terminal,輸入下面的命令:

gedit ~/.local/share/applications/DigiaQtOpenSource-qtcreator.desktop

這條命令將打開DigiaQtOpenSource-qtcreator.desktop快捷方式文件,可以看到文件內容如下:

[Desktop Entry]
Type=Application
Exec=/home/viki/Qt5.2.0/Tools/QtCreator/bin/qtcreator
Name=Qt Creator (Opensource)
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/viki/Qt5.2.0/Tools/QtCreator/bin/qtcreator ,保存並退出。添加 bash -i -c 是爲了在通過快捷方式啓動Qt Creator的同時加載ROS環境變量(ROS環境變量加載腳本配置在 ~/.bashrc 文件內)。

Warning

如果打開的文件是空,則表示沒有找到DigiaQtOpenSource-qtcreator.desktop文件,可能是安裝路徑不在本地用戶目錄下,或者版本不同導致的文件名不一致。可以在 ~/.local/share/applications/ 和 /usr/share/applications/ 兩個路徑下用 ls *qt* 命令找找看。

Tip

如果沒有上述快捷方式文件,自己新建一個,只要文件內容類似上面的類容,路徑正確即可。快捷方式可以放在~/.local/share/applications/ 和 /usr/share/applications/ 兩個位置。當然也可以放在任意其他位置,功能跟放在上面兩個位置一樣,但左邊的任務欄不會正確顯示圖標。

用Qt Creator調試C++工程

可以自己建立包做實驗,爲求簡潔,這裏直接從GitHub下載現有的源碼包,即大家熟悉的 ros_tutorials 包。

新建catkin工作空間

如果已經有自己的catkin工作空間則跳過,否則新建catkin工作空間:

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc

對應解釋參照《配置ROS工作空間catkin+rosbuild》。關閉所有的terminal在重新打開,使環境變量生效。

向catkin工作空間添加源碼包

這裏添加 ros_tutorials 源碼包。

cd ~/catkin_ws/src
git clone [email protected]:ros/ros_tutorials.git -b hydro-devel
ls

可以看到下面的信息,表示 ros_tutorials 已經被下載到了 ~/catkin_ws/src 目錄下。

viki@ROS:~/catkin_ws/src$ ls
CMakeLists.txt  ros_tutorials

向Qt Creator裏添加工程

從 Dash home 裏啓動Qt Creator,將看到下面的Welcome界面:

Qt Creator

這裏我們導入 roscpp_tutorials 包,使之成爲Qt Creator的C++工程。點擊 Open Project 按鈕,在彈出的對話框中選擇 ~/catkin_ws/src/ros_tutorials/roscpp_tutorials/ 路徑下的 CMakeLists.txt 文件,如下圖:

Qt Creator

點擊 Open,將會出現編譯路徑選擇對話框。這裏要注意了,需要 Browse 將路徑修改爲 ~/catkin_ws/build/ 的路徑,如下圖:

Qt Creator

點擊 Next 後,在出現的對話框的 Arguments 一欄填入 -DCMAKE_BUILD_TYPE=Debug (不填後面將無法調試),然後點擊 Run CMake 即可開始編譯,結果如下圖:

Qt Creator

如果沒有錯誤信息,則點擊 Finish 完成,在 Edit 界面可以看到工程結構,可以開始編輯工程了。

調試

先打開一個terminal,輸入 roscore 命令啓動ROS Master。

在Qt Creator的 Edit 界面工程目錄中,找到 talker.cpp 文件,打開。然後找到 “hello world” 所在的位置,修改爲 “hello I'm yuanboshe”,並設置斷點,如下圖:

Qt Creator

保存後,從左下角的工程面板裏選擇 talker 可執行程序項,然後按 F5 快捷鍵運行調試。稍等片刻,Qt Creator會需要一點時間編譯所有程序,編譯完成後,會運行到斷點處停下來:

Qt Creator

取消斷點,按 F5 繼續運行,在彈出的 Application Output 界面能夠看到修改後的信息,如下:

Qt Creator

回到桌面,再開一個terminal窗口,輸入 rosrun roscpp_tutorials listener 命令,可以看到正確的監聽消息,如下圖:

Qt Creator

關於Debug問題

如果之前在CMake的時候沒有填寫 -DCMAKE_BUILD_TYPE=Debug 參數,則編譯出來的程序不可用於調試。按下調試快捷鍵 F5 的時候,可能會出現下面的警告信息:

This does not seem to be a "Debug" build.
Setting breakpoints by file name and line number may fail.

Section .debug_info: Not found.
Section .debug_abbrev: Not found.
Section .debug_line: Not found.
Section .debug_str: Not found.
Section .debug_loc: Not found.
Section .debug_range: Not found.
Section .gdb_index: Not found.
Section .note.gnu.build-id: Found.
Section .gnu.hash: Found.
Section .gnu_debuglink: Not found.

可以通過左邊的"Projects"->"Run CMake"重新設置參數,並make,如下圖:

ROS debug
發佈了21 篇原創文章 · 獲贊 33 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章