Skip to content
ChengYang edited this page Feb 23, 2023 · 5 revisions

Welcome to the Ros_Qt5_Gui_App wiki!

常见问题解决

1,多机通讯环境配置,rostopic list有话题名,但是rostopic echo无话题内容,使用软件能发送速度控制命令,但是速度仪表盘数据不会变化:

A:如果是环境变量连接安装如下教程排查: https://blog.csdn.net/qq_38441692/article/details/98205852 如果是界面中设置ros ip及ros master ip连接,检查ros ip是否正确,rosip 写错会导致单向通信

2,could not find a package provid by “rviz” Add this installtion prefix ....set rviz_Dir

could not find a package provid by “cv_bridge” 首先在终端直接执行catkin_make,查看是否会报错,如果终端不会报错在qtcreator报错,说明qtcreator没从终端打开,配置qtcreator从终端打开,如果终端和qtcreator均报错首先确保包有没有安装,使用sudo apt-get安装,安装后还不行可以参考以下配置: 1,首先尝试删除build目录重新编译 看是否还报错 2,cmakelist里添加rviz_Dir和cv_bridge_Dir,参考之前群友提供的方法:

3,qtcreator打开项目报错:

find_package(catkin) failed,catkin was neither found the workspace execute_process(/usr/bin/python3 ....setup.py) .... 首先在终端执行catkin_make编译工作空间,是不是环境变量失效了,环境变量失效解决方法:https://blog.csdn.net/xiaodingqq/article/details/88136323?xutm_source=app&app_version=4.7.0 不是的话就是原生qtcreator问题,或者其他一系列的在终端catkin_make编译不报错,但是在原始qtcreator中编译报错的环境问题,这里建议使用ros qtc pluging版本qtcreator A:见博客:https://blog.csdn.net/qq_38441692/article/details/105158790?utm_source=app&app_version=4.6.1中安装ROS qtc pluging版本qtcreator

4,终端运行qtcreator,不能正常打开,报错pluging ..... “xcb”

A:一般是把qtcreator相关的库放到了环境变量,然后起依赖qt相关的库导致库冲突,取消环境变量的设置即可

5,QObject::connect: Cannot queue arguments of type 'QVector'

(Make sure 'QVector<int>' is registered using qRegisterMetaType().) 出现以下提示是什么原因? 不是qt元类型,不能在信号中传递,在main函数注册为qt元类型 qRegisterMetaType<QVector>("QVector");

6,如何实现PC端QT界面点击按钮执行机器人launch文件?

将命令作为QString存在变量中即可,接着参考快捷指令实现的方法,传入此qstring

7,cmakelist中添加外部库

参考如何添加mutlimedia教程,一般是将首字母大写 https://blog.csdn.net/qq_38441692/article/details/105491339?spm=1001.2014.3001.5501

8,使用运行终端命令功能报roscore未找到

在命令中加两句source命令,分别source ros环境变量与工作空间环境变量如: source /opt/ros/melodic/setup.bash source /home/xxxx/catkin_ws/devel/setup.bash

9,noetic版本安装qt-create和qt-build报包不存在问题

安装这两个包的目的仅仅是为了方便使用catkin_create_qt_pkg命令去创建ros-qt模板包,不存在也不影响使用,可以使用我这里创建好的模板包https://github.com/chengyangkj/ros_qt_demo 放在工作空间src目录下直接进行编译即可

10,undefined reference to vtable....功能包的CmakeList.txt的如下一行:file(GLOB_RECURSE QT_MOC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} FOLLOW_SYMLINKS include/class1_ros_qt_demo/*.hpp .h) 添加上.h,否者在编译时不会自动将.h文件添加到项目中,而导致编译错误

11,订阅图像话题 显示图像功能 图像显示卡顿

1,改用订阅压缩后的图像话题 2,如果订阅压缩后的图像话题还是卡顿,可能是订阅的话题过多导致卡顿 参考github qnode代码,使用ros::AsyncSpinner多线程spin

12,关于多机通讯,即连接不是rosmaster问题

● 主节点地址:即ROS_MASTER_URI ROS多机通讯主节点地址,如果只是单机通讯填127.0.0.1即可 ● 本机IP:即ROS_IP 软件运行的机器的IP 如果是单机通讯填127.0.0.1即可 注意 此ip填错 会导致只能单向通讯 导致收不到远程小车的话题信息 却有话题列表的现象 ● 勾选使用环境变量连接就不使用界面设置的ROS_IP与ROS_MASTER_URI,需要在环境变量文件(~/.bashrc)配置好多机通讯环境变量,并且需要在终端使用rosrun打开软件,否则会导致连接失败

13, jetson nano 编译报 Project 'cv_bridge' specifies '/usr/include/opencv' as an include dir, which is not found

编辑 /opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake文件,将如下一行: set(_include_dirs "include;/usr/include;/usr/include/opencv") 改为: set(_include_dirs "include;/usr/include;/usr/include/opencv4")

如果修改后还不行的话需要手动编译cv_bridge: 解决jetson nano cv_bridge问题