在QT中加載ROS,然後使用image_transport進行圖像訂閱,結果出現錯誤提示:
[rospack] Error: package 'image_transport' not found
程序編譯沒有問題,連接庫也沒有問題,就是在運行時出現。應該ros環境加載問題。
在QT中調用source /opt/ros/kinetic/setup.bash 也不行。
最後找到解決法案:
配置qt的啓動文件。需要在qt啓動時加載ros的環境變量
sudo gedit /usr/share/applications/QtProject-qtcreator-ros-latest.desktop
[Desktop Entry]
Type=Application
Exec=bash -i -c /home/ubuntu/Qt5.10.1/Tools/QtCreator/bin/qtcreator
Name=Qt Creator (Community)
GenericName=The IDE of choice for Qt development.
Icon=QtProject-qtcreator
StartupWMClass=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;
中加上:
bash -i -c
然後終於可以了,折騰了好幾天,差點轉cmake編譯。
trans_port_= new image_transport::ImageTransport(nh);
image_subscriber_ = trans_port_->subscribe(topic.toStdString(), 1, &QNode::imageCallback, this, hints);