一、Workspace:工作空间

        当前目录下有多个功能包的时候,明明只需要一个功能包,当我使用colcon build这个指令时,会构建所有的功能包,再比如,功能包的编译产生的临时文件和功能包都在同一个目录下,一旦功能包出现增加,看起来就会很混杂,因此我们需要使用多功能包组合的最佳实践workspace。

        一个完整的机器人项目往往由多个不同的功能模块组成,所以就需要对多个功能包进行组合。ros2开发者约定了workspace——即工作空间这一概念。

        1、创建工作空间

                mkdir -p chapt2_ws/src

                -p:双层文件夹,即 chapt2_ws包下的src包

        2、整理功能包

                将原来的功能包拷贝到我们的工作空间下

                mv demo_cpp_pkg/        chapt2_ws/src/

                mv demo_python_pkg/        chapt2_ws/src/

                然后使用rm将构建文件删掉

                rm -rf build/ install/ log/ 

                

        3、构建工作空间里的功能包

                构建所有功能包:colcon  build

                构建单独功能包:colcon build --packages-select demo_cpp_pkg

                

                

        4、构建workspace下功能包的依赖情况

                将功能包放在同一空间下,当构建时比如我的A功能包依赖B功能包,那么我可以直接在.xml文件中表示依赖,那么在构建A功能包的时候他就会去找我们的B功能包,并且当你使用colcon build全部构建时,会自动先去构建B功能包,再构建A功能包。

                

                 

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐