两个半月攒了些Autoware和Apollo r3.0.0和一些opensource的标定&硬件同步代码,修改融合为一个所谓自动驾驶的功能包,在最后的UI集成时候,感觉没有这个必要,为了不白白浪费调研花费的时间,总结一下。
一、qt开发ros的开发环境搭建
二、几个简单DEMO流程注释
三、简单的Qt相关总结(yaml生成列表、RVIZ lib使用、去掉ROS 实现通信等)
四、Autoware的runtime manager(wxPython总结)
一、qt开发ros的开发环境搭建
因为主要是为了开发UI所以qt ide下开发ros的那个插件并没有用,那个是开发package比较方便。
平常用的ide有:clion、Qt creater、pycharm、vscode
除了pycharm是写py的其他对CMake支持的都比较好
首先QT Creater使用导入CMakeLists.txt来组织别人已有工程
之后呢在编译的时候会提示路径设置找不到cmake,需要在右边的“项目”选项中设置CMake的路径,需要将CMAKE_PREFIX_PATH设置为 /opt/ros/kinetic目录,点击下面应用会自动重新组织工程。之后重点在于CMake文件怎么写,稍后介绍。
Clion的组织方式:
Clion官网有详细步骤:https://www.jetbrains.com/help/clion/ros-setup-tutorial.html
别处转载:https://www.jianshu.com/p/ccbcc717c395
1.上jetbrain官网下载clion,切记是linux版,按照官网安装
2.进入ros的catkin的工作空间,一般来说是~/catkin_ws/
3.执行 source devel/setup.bash (这一步我一般是source 三遍)
4.cd src进入到~/catkin_ws/src 目录下,在此打开clion
5.运行clion.sh (根据每个人安装clion的目录不同,运行的命令行也不同),比如我的clion.sh目录是在/opt/clion-2017.3.1/bin/clion.sh 下,那么我这一步的运行命令就是/opt/clion-2017.3.1/bin/clion.sh
6.clion点击Import Project from Sources
然后选择~/catkin_ws/src目录,这样可以加载该目录下所有的已经存在的ROS项目
切记第四步在~/catkin_ws/src/下运行clion
加载完项目之后,运行如果遇到头文件找不到,例如 ros/ros.h no such file
试试把CMakeLists.txt文件中
include_directories(${catkin_INCLUDE_DIRS})
放在catkin_package()那一行的后面
还有个小技巧:如何让clion只编译目录下的某一个或者几个包
在上面配置的情况下,你可能会发现每次修改完CMakeList文件都要把你所有的ROS项目重新build一遍,
如果你想只make一个或者几个项目可以选择下面这个方法
在clion中找到 File->Settings->Build,Execution,Deployment->CMake
在CMake options 那一行中添加-DCATKIN_WHITELIST_PACKAGES="pkg1"
pkg1 是你的package名称
如果想make多个包,用分号;间隔,类似这样-DCATKIN_WHITELIST_PACKAGES="pkg1;pkg2"