文章目錄
- 遇到的問題
- 解決方法
遇到的問題
在Qt Creator中已經有一個非常完整的影像處理程式,現在需要將程式中資料通過ros的節點與訊息發布出去,網上找到的方法多是需要在ubuntu中下載qt插件,然后使用qtcreator打開ros空間下的CMakelist.txt,現提供不需插件的方法,
初始main.cpp如下:
#include "gap.h"
#include <QApplication>
#include <QObject>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Gap w;
w.setGeometry(0,20,1280,800);
w.show();
return a.exec();
}
解決方法
將.pro檔案加入如下內容:
INCLUDEPATH += /opt/ros/kinetic/include
LIBS += -L/opt/ros/kinetic/lib \
-lroscpp -lrospack -lpthread -lrosconsole \
-lrosconsole_log4cxx -lrosconsole_backend_interface \
-lxmlrpcpp -lroscpp_serialization -lrostime \
-lcpp_common -lroslib -lpthread
修改main.cpp:
#include "gap.h"
#include <QApplication>
#include <QObject>
#include<ros/ros.h>
#include<nav_msgs/Odometry.h>
#include<geometry_msgs/Twist.h>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Gap w;
w.setGeometry(0,20,1280,800);
w.show();
ros::init(argc, argv, "command_publisher");
ros::NodeHandle nh1;
ros::Publisher command_pub = nh1.advertise<geometry_msgs::Twist>("/cmd_vel", 10);
return a.exec();
}
此時編譯正常,但直接運行會報錯,就算先啟動roscore也不行:
[FATAL] [1599012573.264764628]: ROS_MASTER_URI is not defined in the environment. Either type the following or (preferrably) add this to your ~/.bashrc file in order set up your local machine as a ROS master:
export ROS_MASTER_URI=http://localhost:11311
then, type 'roscore' in another shell to actually launch the master program.
Press <RETURN> to close this window...
用 terminal 打開 QtCreator(注意,在這個 terminal 要能運行roscore),
具體的打開方式如下:
找到 qtcreator 所在目錄:
我是通過在 computer 中搜索 “qtcreator” 來確定其目錄的,在我的電腦中其目錄為:/usr/bin/qtcreator
打開一個有 ros 環境的終端,并從該終端啟動 Qt Creator:
打開一個終端(確保已經 source 了 ros 的 setup.sh檔案),將路徑在終端中輸入/usr/bin/qtcreator就可以從終端打開 Qt Creator 了,

每次都要輸入這么長的路徑來啟動 Qt Creator 還是挺讓人頭疼的,我們可以通過給這個路徑設定別名的方式來簡化操作,具體操作為先打開.bashrc檔案(gedit ~/.bashrc),然后向其中添加一行代碼:
alias Qt=/usr/bin/qtcreator
這個Qt就是我們上面路徑的別名,以后直接在終端中使用qt命令就可以打開 Qt Creator 了,
使用上述方法運行后,在一個新終端輸入 rqt_graph 查看節點與訊息已經創建成功,
參考博文:使用 QtCreator 運行 ros 專案時環境變數的設定
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/209119.html
標籤:其他
