環境 :
Ubuntu 18.04 LTS
開始前准備工作
ubuntu18 安裝ROS 參考 http://wiki.ros.org/melodic/Installation/Ubuntu
1、在ROS環境下安裝 QT Creator
第一步 安裝Qt Creator
Ubuntu系統庫自帶的qtcreator並沒有ROS插件,需要自己通過ppa方式安裝,網上多是基於14.04版本的,且較為繁瑣,並不推薦。這里要介紹的是帶有ROS插件的Qt Creator安裝,鏈接如下:
ros-qtc-plugin How to Install (Users)
下載文件名為 qtcreator-ros-bionic-latest-offnline-installer.run,進入文件所在目錄,使用如下命令安裝:
chmod +x qtcreator-ros-bionic-latest-offnline-installer.run
sudo ./qtcreator-ros-bionic-latest-offnline-installer.run
彈出安裝界面,按鏈接中的步驟一步步走即可。
第二步 安裝 ROS 的 QT 相關功能包
sudo apt-get update sudo apt-get install ros-kinetic-qt-create ros-kinetic-qt-build
第三步 測試 QT 功能包
3.1 新建工作空間,並新建一個名為 hello 的 qt功能包
mkdir -p qt_ws/src
cd qt_ws/src
catkin_create_qt_pkg hello roscpp rospy std_msgs //注意這里是 catkin_create_qt_pkg,不是 catkin_create_pkg
cd ..
catkin_make
3.2 運行節點
source devel/setup.bash
rosrun hello hello
出現以下軟件彈窗證明 Q T 功能包測試成功

2.使用Qt Creator開發ROS
為了開發ROS,首先需要創建工作空間,然后創建程序包,接下來根據需要編寫消息文件、服務文件,動作文件等資源文件,然后利用catkin_make編譯生成相應的編程語言目標文件,最后創建節點、launch文件、機器人模型等。
Qt Creator為開發ROS程序提供了良好的代碼編輯、編譯、調試工具,在本小節中,我們將介紹如何利用Qt Creator開發一個名為“Hello ROS”的基本節點。
1.創建工作空間
首先,打開QtCreator的“New Project”,並選擇“Other Project”,選擇“ROS Workspace”模板,如圖1所示:
圖1
選擇ROS Workspace創建項目
然后,設置項目名為catkin_ws,設置工作空間路徑為~/ros/catkin_ws,其中~代表當前用戶目錄。ROS版本默認選擇Melodic,編譯系統選擇CatkinMake,設置完成后點擊“下一步”。設置工程名和位置如圖2所示:

最后,設置GIT、SVN、CVS等版本控制系統,默認無。點擊“完成”按鈕即可完成工作空間的創建,如圖3所示:

ROS會創建catkin_ws.workspace文件設定ROS版本和編譯系統,並創建src目錄和工作空間的CMakelists.txt文件,CMakelists.txt文件對catkin編譯系統進行了配置,如圖4:
2.創建程序包
工程創建完之后,就可以創建程序包了。右鍵點擊圖4的src目錄,選擇“New File”創建程序包,在彈出的界面選擇ROS–>Package,然后點擊“Choose”,如圖5所示:
在彈出的窗口中,設置包名及路徑,默認為src目錄,在所示的Catkin中添加依賴roscpp、rospy、std_msgs,依賴之間用逗號隔開,這意味着該程序包支持C++和Python兩種開發語言,並支持ROS標准消息輸出,最后點擊“Next”,如圖6所示:
最后彈出工作空間和版本控制界面,程序包“example_01”就會被添加到工作空間catkin_ws中,界面如圖7所示:
點擊“完成”按鈕即可完成程序包的創建。創建完成后,ROS會自動地在相應的目錄下初始化生成CMakeLists.txt、Package.xml等文件和include、src等目錄。
然而,在QtCreator左側欄看不到新添加的包,但系統中已經存在相應的文件。猜測應該是QtCreator的bug。此時關閉工程,重新導入可解決。
3.創建節點
接下來創建節點,右鍵點擊程序包example_01下的目錄src,選擇“Add New”,QtCreator支持基本節點、發布者節點、訂閱者節點、服務端節點、客戶端節點、launch文件、URDF文件等的創建,並提供了基本的模板。在此我們選擇“Basic Node”,點擊“Choose”(為節省篇幅,不再重復截圖)。
在彈出的新建基本節點界面中,設置文件名為hello.cpp,文件路徑默認為/home/simon/ros/catkin_ws/src/example_01/src,如圖8所示:
點擊“下一步”按鈕作進一步配置,然后點擊“完成”將hello.cpp文件添加到程序包example_01中。
自動生成的hello.cpp文件僅對ROS進行初始化並創建了一個節點句柄,內容如下:
#include <ros/ros.h> int main(int argc, char **argv) { ros::init(argc, argv, "hello"); ros::NodeHandle nh; ROS_INFO("Hello world!"); }
接下來需要編輯文件example_01/CMakeLists.txt(注意不要搞錯哦,不要和catkin_ws/src目錄下的CMakeLists.txt混淆),配置可執行文件和目標鏈接庫,可鏈接到ros/ros.h,可執行文件名為hello,內容如下:
//添加可執行文件 add_executable(hello src/hello.cpp) //將可執行文件和庫文件鏈接 target_link_libraries(hello ${catkin_LIBRARIES} )
4.編譯
網上的資料都是點擊左下角的三角型進行build,但是我在編譯的時候出現以下的錯誤
16:12:51: 無法啟動進程"catkin" build --cmake-args -G 'CodeBlocks - Unix Makefiles' -DCMAKE_BUILD_TYPE=Debug
Error while building/deploying project catkin_ws (kit: 桌面)
When executing step "CatkinTools Step"
找了很多資料,按照步驟去做都沒有解決,
索性 我直接在終端里輸入命令去編譯,運行
catkin_make
source devel/setup.bash
rosrun example_01 hello
