ubuntu22 ros编译

ROS2项目创建与编译



前言

提示:这里可以添加本文要记录的大概内容:

ubuntu22.04 安装的ROS版本是安装ROS2,ROS2的很多操作是有别于之前的ROS版本的,本次主要介绍在运行VINS-MONO工程时创建ROS工作空间的内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、创建工作空间报错

在ubuntu22系统中运行VINS-MONO代码,按照VINS-MONO的提示在catkin_ws目录下执行catkin_make时提示要安装catkin,按照提示执行sudo apt install catkin后会报以下错误:
catkin 报错
按照提示依次安装python3-catkin-pkg python3-catkin-pkg-modules后再次安装catkin依然报同样错误,网上搜的各种解决办法均没有解决该问题。
最后在ROS官网找到了解决办法,原来ROS2工作空间的编译方式改变了T_T

二、ROS2工作空间编译

1.安装colcon

colcon是ROS2中的编译工具,如同之前的catkin_make
安装colcon需要执行以下命令:
sudo apt install python3-colcon-common-extensions


2.创建工作空间

执行colcon后会在工作空间目录下产生三个文件夹:

1、build。build文件夹是用来存放创建过程中产生的中间文件,类似CMake创建的build文件夹。
2、install。install文件夹是存放每个包的位置。
3、log。log文件夹用来存放执行过程中产生的日志文件。

在工作空间目录下执行colcon编译命令如下:
colcon build
同时也有编译可选项--symlink-install,这个选项的作用是为了加快编译速度。
编译选项--packages-select package_name可以指定编译工作空间中选定的软件包package_name

执行完colcon build之后,需要测试编译生成的package是否有错,执行命令:colcon test
执行完colcon test之后编译生成的包,会存放到install目录下。


3.source environment

在执行ros run时需要先将当前终端配置好ros环境。在install文件夹下,生成了自动配置环境的文件:setup.bash
在当前终端执行:. your_path/install/setup.bash——yourpath为自己创建的ros工作空间的路径。
然后再执行:ros2 run package_name package_func_name package_name 为ros包的名字,package_func_name 为可执行文件。

番外

通过ros2创建软件包:
在对应工作空间的src目录下执行ros2 pkg creat --build-type ament_cmake --node-name 源文件名 软件包名命令,会在src目录下会自动生成软件包的基本文件。
也可以在后面添加依赖项:--dependencies name1 name2
例如:
执行ros2 pkg create --build-type ament_cmake --node-name test package命令后会在工作空间的src目录下生成以下文件:
软件包目录


版权声明:本文为qq_33733356原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。