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 )。
按照指示一路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/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界面:
這裏我們導入 roscpp_tutorials 包,使之成爲Qt Creator的C++工程。點擊 Open Project 按鈕,在彈出的對話框中選擇 ~/catkin_ws/src/ros_tutorials/roscpp_tutorials/ 路徑下的 CMakeLists.txt 文件,如下圖:
點擊 Open,將會出現編譯路徑選擇對話框。這裏要注意了,需要 Browse 將路徑修改爲 ~/catkin_ws/build/ 的路徑,如下圖:
點擊 Next 後,在出現的對話框的 Arguments 一欄填入 -DCMAKE_BUILD_TYPE=Debug (不填後面將無法調試),然後點擊 Run CMake 即可開始編譯,結果如下圖:
如果沒有錯誤信息,則點擊 Finish 完成,在 Edit 界面可以看到工程結構,可以開始編輯工程了。
調試
先打開一個terminal,輸入 roscore 命令啓動ROS Master。
在Qt Creator的 Edit 界面工程目錄中,找到 talker.cpp 文件,打開。然後找到 “hello world” 所在的位置,修改爲 “hello I'm yuanboshe”,並設置斷點,如下圖:
保存後,從左下角的工程面板裏選擇 talker 可執行程序項,然後按 F5 快捷鍵運行調試。稍等片刻,Qt Creator會需要一點時間編譯所有程序,編譯完成後,會運行到斷點處停下來:
取消斷點,按 F5 繼續運行,在彈出的 Application Output 界面能夠看到修改後的信息,如下:
回到桌面,再開一個terminal窗口,輸入 rosrun roscpp_tutorials listener 命令,可以看到正確的監聽消息,如下圖:
關於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,如下圖: