我们熟悉的标准化软件架构其实ros已经帮我们设计好了,这也就是百度apollo都用ros的改进版的原因。
我们熟悉的软件架构有几项功能:
1、模块化,即插件化,qt里使用加载库包的形式。
2、日志管理。
3、参数管理。
4、模块调用。
其中
1、模块化,ros本来就是多节点通讯,对于大数据传输,ros里也有相应的解决方法,即nodelet manager。
2、日志管理。ROS有自己的LOG库解决。
3、参素管理。ROS里有配置参数加载与管理,甚至还有动态参数加载。
4、模块调用。ROS是通过TCP/IP通讯实现,所以实现上比函数接口比较麻烦,但功能上是一样的,我相信以后也会简化。
所以ROS的诞生就是让你好好写算法,框架的事情交给ROS。
ROS多包编译。
我们发现编译大牛的包一次性通过,为啥到了我们这里,总是报错,好吧我承认自己。。。,
其实也不是很难,下面这篇博客介绍了多包编译需要注意的事项。
创建和编译多个ROS 功能包
主要说下重点:
基本上是add_executable、add_dependencies和target_link_libraries这三句话,关于他们的作用英文解释的比较清楚了,读者自己阅读一下。特别是add_dependencies:
add cmake target dependencies of executable same as for the library above 。
好了今天到这里,去实现工程了。