catkin_make命令

[ROS] ROS基础,创建工作空间,创建功能包,ros功能包相关命令,Catkin编译系统,catkin_make的编译方式 1.工作空间 工作空间(work space)是ROS系统中存放工程开发相关的文件夹,其目录结构如下: src:代码空间(Source Space),用于存放开发代码 build:编译空间(Build Space) devel:开发空间(Development Space),存放编译后生成的二进制代码(C++) install:安装空间(Install Space) 一个最小的项目结构如图所示 1.1 如何创建并编译一个工作空间 创建工作空间 在根目录下创建一个叫catkin_ws的工 阅读详情
AI摘要

本文深入讲解了catkin_make工具在ROS工作区中的使用方法,包括构建所有软件包、指定构建特定软件包、安装目标和更改安装位置等内容。同时,文章还提供了如何解决权限问题的指导。

catkin_make是在catkin工作区中构建代码的便捷工具。 catkin_make遵循catkin工作区的标准布局,如REP-128中所述。

 

用法

假设您的catkin工作区位于〜/ catkin_ws中,则应始终在catkin工作区的根目录中调用catkin_make:

  • $ cd〜/ catkin_ws
    $ catkin_make

上面的命令将构建〜/ catkin_ws / src中的所有软件包。手动执行此操作的等效命令为:

  • $ cd〜/ catkin_ws
    $ cd src
    $ catkin_init_workspace
    $ cd ..
    $ mkdir构建
    $ cd构建
    $ cmake ../src -DCMAKE_INSTALL_PREFIX = .. / install -DCATKIN_DEVEL_PREFIX = .. / devel
    $使

如果要在工作空间中构建特定的程序包,请在工作空间的根目录中调用以下命令:

  • $ catkin_make -DCATKIN_WHITELIST_PACKAGES =“ package1; package2”

如果要还原为生成所有软件包,请执行以下操作:

  • $ catkin_make -DCATKIN_WHITELIST_PACKAGES =“”

运行catkin_make之后,您应该在catkin工作区的根目录中注意到两个新文件夹:build和devel文件夹。在build文件夹中将调用cmake和make,在devel文件夹中将包含所有生成的文件和目标,以及setup。* sh文件,以便您可以像安装它一样使用它。

您可以将通常传递给make和cmake的任何参数传递给catkin_make。例如,您可以像这样调用安装目标:

  • $ cd〜/ catkin_ws
    $ catkin_make安装

这等效于像这样调用make:

  • $ cd〜/ catkin_ws / build
    #如果尚未调用cmake
    $ cmake ../src -DCMAKE_INSTALL_PREFIX = .. / install -DCATKIN_DEVEL_PREFIX = .. / devel
    $使
    $进行安装

现在,在工作区的根目录中应该有第三个文件夹:install。这是Catkin工作区中所有软件包的符合FHS的安装。它包含可以获取的setup。* sh文件,使您可以利用自己构建的软件包。

您可以通过将-DCMAKE_INSTALL_PREFIX = ...传递给catkin_make来更改软件包的安装位置:

  • $ cd〜/ catkin_ws
    $ catkin_make -DCMAKE_INSTALL_PREFIX = / opt / ros / <发行版> install

重要说明:当安装到/ opt / ros / <distro>(其中<distro>指的是您拥有的ROS版本,例如,靛蓝,动力学...)时,您可能会遇到权限问题。通常,作为普通用户,您没有写/ opt的权限,因此您需要超级用户特权。有三种解决方法:

  • 为根目录安装ROS(至少是最小安装)(不建议!)

  • 通过更改为root来安装软件包

  • 将软件包安装到具有所需权限(读取和写入)的位置

不建议使用第一个选项,因为在进行开发时,ROS通常不需要超级用户特权。人们通常也避免以超级用户身份工作(出于安全原因)。因此,在正常情况下,我们只有上面列表中的第二个和第三个选项。对于不习惯处理多个工作区的新ROS用户,第三个选项可能会带来一些问题,这些用户需要组合多个setup.bash文件。这就是为什么第二种选择似乎是最直接的方法。您要做的就是更改当前用户(标记为<user>,该用户表示没有超级用户权限,并且是您通常用于开发ROS软件的用户):

  • $ sudo su
    <user>的$ [sudo]密码:

现在,你有超级用户权限,所有你需要做的就是源的setup.bash位于您的非超级用户的柳絮工作空间或一个位于/opt/ros/<distro>/setup.bash:

  • $ source / home / <用户> / <user_catkin_workspace> /devel/setup.bash
    
    要么
    
    $ source /opt/ros/<distro>/setup.bash

这将使catkin_make对超级用户可见。您不需要任何其他操作,因为catkin_make安装的工作原理是将文件从源位置简单地复制到要安装ROS软件包的位置。最后一步是使用上面的参数调用catkin_make。安装应继续进行,不会出现任何其他问题。请注意,这适用于所有需要将软件包安装到通常没有读写权限的位置的情况。

 

参考资料

1.http://stevenshi.me/2017/05/26/ros-primary-tutorial-4/

2.https://blog.youkuaiyun.com/zyh821351004/article/details/50388429

catkin_make报错的解决方法汇总 记录 阅读详情

相关推荐

ROS从入门到精通系列(五)catkin详解与catkin_make编译

介绍catkin的编译系统,catkin工作空间的创建和结构,package软件包的创建和结构,介绍CMakeLists.txt文件,package.xml以及其他常见文件。从而系统的梳理了ROS文件空间的结构,对于我们ROS学习和开发有着重要的作用。

Techblog of HaoWANG 1万+

catkin_make

  普通情况下编译文件都是使用cmake,make工具,与此有关的内容可以参考:cmake,CMakeLists.txt,make,makefile的关系   但ROS中还有catkin_make,不清楚他们之间的关系,写这篇了解一下,主要区别如下: 常规的编译的过程大致有两步:1.cmake 2.make catkin_make就是把这两步做了一个封装,一步即可完成。也就是catkin_make等效于以下指令: $ cd ~/catkin_ws $ cd src $ catkin_init_works

gls_nuaa的博客 9313

构建 ROS (Robot Operating System) 工作空间的命令行工具catkin_make用法汇总

这个命令特别有用,如果你想将你的ROS软件包部署到其他机器上,或者你想保持源代码和编译后的文件分开。是一个用于构建 ROS (Robot Operating System) 工作空间的命令行工具,它提供了多种参数以适应不同的构建需求。: 这是一个用于ROS包的编译和构建的工具。它是基于CMake的,专门为ROS项目设计,以简化构建过程。这些参数可以单独使用,也可以组合使用,以提供更灵活的构建选项。: 类似于之前提到的,这个参数会将构建的文件复制到安装目录。: 设置安装前缀,即指定安装目录的路径。

小秋 AI SLAM 入门实战教程 3320

【转载】ROS学习之catkin_make

cankin_make是一个命令行工具,它用来构建catkin workspace中的代码。当安装到这个位置时是有许可问题,通常的用户不允许安装/opt,所以你需要超级用户权限。这时,当你再次在工作空间中运行catkin_make,默认的只编译你之前指定的包。devel文件夹用来保存生成文件、目标的地方及用于安装的setup.*sh。如果你是第一次构建工作空间,则会生成两个新的文件夹build和devel。这时在你的工作空间中会有一个install文件夹。如果你想编译所有包,则需要输入。

dongbab的博客 4035

PVT(Process Voltage Temperature)

芯片PVT

网始如芯个人博客 3万+

STM32F103C8T6+A4988驱动42步进电机全流程(附接线图+代码解析)

本文详细介绍了使用STM32F103C8T6单片机与A4988驱动模块控制42步进电机的完整流程。内容涵盖硬件接线图解析、电流设置、GPIO驱动代码编写以及细分控制等核心实践,旨在帮助嵌入式开发者和DIY爱好者快速实现精准运动控制,适用于3D打印机、CNC等需要精密定位的项目。

Python的专栏 792

深入解析Ubuntu 20.04中ROS的catkin_make工具

是ROS中基于Catkin构建系统的命令行工具,用于编译和管理ROS工作空间中的包。它简化了编译过程,使开发者能够方便地构建、调试和部署ROS包。封装了CMake的功能,提供了更高层次的抽象,适应了ROS生态系统的需求。作为ROS中核心的构建工具,简化了ROS工作空间中包的编译与管理过程。通过自动依赖管理、并行编译和环境隔离等特性,极大地提升了ROS开发的效率和可靠性。理解并熟练掌握的使用方法和工作流程,是每位ROS开发者在Ubuntu 20.04环境下进行高效开发的关键。

m0_73640344的博客 4683

不只是安装:用OrbbecSDK_ROS2玩转深度相机点云、滤波与DDS调优

本文深入探讨了如何通过OrbbecSDK_ROS2实现深度相机的高级应用,包括点云处理、深度图优化和DDS调优。详细介绍了点云采集与可视化技巧、多种滤波算法的配置与组合策略,以及针对高带宽数据传输的DDS高级调优方法,帮助开发者在机器人导航和三维重建等场景中提升性能。

weixin_29246195的博客 770

catkin_make 和catkin build这两个命令的区别

提供了更多的灵活性和功能,特别适用于大型工程。它还可以与其他catkin_tools命令结合使用,例如。是catkin_tools提供的增强版构建命令,提供更多功能和定制选项,特别适用于大型ROS工程。它是ROS的默认构建工具,能够构建整个ROS工作空间中的所有功能包。可以快速构建整个工作空间,但对于大型工程,构建时间可能较长。构建系统的增强和扩展,提供了更多的功能和定制选项。是ROS的默认构建命令,适用于大多数情况。是catkin_tools中提供的替代。是ROS中最常用的构建命令,使用的是。

qq_50549640的博客 4291

Jetson Nano官方镜像下载&烧录

在NVIDIA Jetson Nano开发者套件上安装NVIDIA官方Ubuntu镜像

weixin_44222088的博客 8843

YOLOv11损失函数进阶:融合SmoothL1与FocalLoss,让检测精度再涨10%的实战教程

在YOLOv11的这里的beta参数控制“L1与L2的过渡阈值”,默认设为1.0即可兼容多数场景。同样在# 计算动态alpha(基于类别样本数,需提前统计self.class_counts)# 交叉熵基础# FocalLoss权重else:使用前需统计数据集的(每个类别的样本数),并传入的alpha参数。损失函数是YOLOv11精度的“灵魂”——SmoothL1让边界框回归“稳、准、狠”,改进FocalLoss让类别分类“雨露均沾”。从代码改造到实战落地,本教程已为你搭建了一条精度跃升的路径。

m0_64661770的博客 212

ubuntu16.04下ros中catkin_make命令失效

在一次ros工程功能包的编译过程中,像往常一样,在catkin_ws目录下使用了catkin_make命令,却突然遇到了自己新添加的功能包无法正常编译的bug。 初步怀疑可能是因为在系统里装了anaconda,gym-gazebo,opencv以及一些深度学习环境,导致某些包之间发生了冲突???但是排查了好久,检查了好多遍环境变量的设置,依旧未果(希望有懂的大佬不吝赐教呀)。 现在暂时找到了可以避免这个问题的方法,记录之: 在此之前,使用catkin_make编译ros工程一切正常。当在工程中加入新的功能

山山の十三先生 3776

CloudCompare 多窗口联动显示点云

CloudCompare支持多窗口联动显示多个点云数据,可以用来比对原始点云数据与语义分割后的结果。 一、创建多个视窗 打开CloudCompare后会默认有一个视图,我们要同时打开两个数据就需要再创建一个视图,选择菜单栏里的3D Views,在下拉菜单中点击new,这样就创建了一个新的视图,这时3D Views的下拉菜单中有3D View 1和3D View 2两个视图,然后点击3D Views下拉菜单中的Title,这时在数据展示区就会出现两个并列的窗口。 二、分别加载点云数据 将数据分别拖进两个

zhaoguanhua的博客 2739

RoboWare配置远程编译踩坑,提示找不到catkin_make,catkin_init_workspace等命令

远程登陆用户使用catkin_make明明能找到命令,但是配置好roboware后却提示找不到这个命令,这是由于配置时配置的为 sudo nano ~/.bashrc 这个目录的环境变量,只能为当前用户使用,不能为所有用户使用,因此识别不到, 所以切换到超级用户,更改所有用户的环境变量: sido nano /etc/profile 添加ros命令: source /opt/ros/kinet...

蒋程扬的部落格 2173

Burpsuite 使用教程

Burpsuite 使用教程

xiongIT的博客 8192

069、PCIE属性字段:缓存、顺序与安全

上个月调试一块自研的PCIE采集卡,遇到了一个诡异的问题:主机通过DMA从设备读取图像数据,大部分帧正常,但偶尔会出现局部数据错位,像是缓存没刷干净。用逻辑分析仪抓链路层报文,发现TLP(事务层包)本身完好,但内存中的数据就是不对。排查三天后,终于锁定在设备端TLP的**属性字段(Attribute Field)**配置上——那几位看似不起眼的缓存、顺序控制位,差点让项目延期。今天我们就拆解PCIE事务头中的这个关键区域,看看它如何影响系统性能与数据安全。

z534437748的博客 49

vscode打开ros工作空间按Ctrl+Shift+B只有CMake:生成命令没有catkin_make: build命令

原因在于新建立的ros工作空间必须首先在工作空间根目录下(如。直接运行cmake命令会报错,如上图所示。

qq_69974190的博客 450

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

catkin_make与catkin build的关系与区别(使用catkin build的好处)

提供了一套名为的现代化命令行工具,它是 ROS1 默认构建工具的一个功能更强大、速度更快、用户体验更好的替代品。是一个为 ROS1 开发者准备的生产力工具。它通过提供等一系列命令,彻底革新了 ROS1 的开发工作流,带来了更快的编译速度、更清晰的工作空间管理和更友好的用户交互。对于任何还在使用 ROS1 (尤其是 Noetic) 的开发者来说,从切换到是一个毫无疑问的正确选择。

Tipriest的博客 3917

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

roboware中debug时,catkin_make找不到

roboware中debug,找不到catkin_make

m0_51723723的博客 1987

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

CMake与catkin_make的find_package()命令使用说明

在 CMake 中,是一个核心函数,用于查找并加载外部依赖库的配置。它的主要作用是,以便后续编译和链接。BoostEigen3version3.3REQUIREDCOMPONENTSsystemfilesystemNO_MODULEQUIET中的REQUIRED是可选的。如果不指定REQUIRED,CMake 会尝试查找包,但即使找不到也不会报错,而是继续执行后续的 CMake 脚本。此时,你需要通过检查变量来判断是否成功找到该包,并决定后续逻辑。

Tipriest的博客 1699

【ROS】catkin_make command not found

【ROS】catkin_make command not found 记录下自己总是忘的地方: 这个问题是在catkin_make 自己代码时,没有source 环境 我安装的系统环境: ubuntu 18.04 ros melodic 对应需要加载的环境: source /opt/ros/melodic/setup.bash 重新在自己的ws目录下运行catkin_make 即可。 ...

qq_25022577的博客 2683

ROS编译catkin_make,以及相关编译事项

http://wiki.ros.org/catkin/commands/catkin_make

运动的肉肉子的博客 1047

ROS在用命令catkin_make编译C++文件时出现错误

ROS melodic使用命令catkin_make编译C++文件,出现如下错误: 解决办法: 问题是出在 CMakeLists.txt 文件没有完全写正确,实际上是 catkin_package() 此行出错,应该将所要使用的包写进去。 进行如下修改: 修改前: 修改后: 问题解决! ...

Kingknot的博客 1197

Command ‘catkin_make‘ not found, but can be installed with: sudo apt install catkin

【代码】Command ‘catkin_make‘ not found, but can be installed with: sudo apt install catkin。

xhxhss的博客 520

catkin_make: command not found

catkin_make: command not found当我们编译ros时,出现了这种错误,可以这样解决 To execute the command: > source /opt/ros/indigo/setup.bash To add to your ~/.bashrc: > echo "source /opt/ros/indigo/setup.bash" >> ~/.

qq_39989653的博客 9685

[ROS] catkin_make找不到包

原因 $ catkin_make -DCATKIN_WHITELIST_PACKAGES=“package1;package2” 可能是由于编译某个包的时候用了上述命令。 解决方案: $ catkin_make -DCATKIN_WHITELIST_PACKAGES="" 在/dev/catkin_ws/中输入上述命令运行就行 想要单独编译某个包 $ catkin_make --only...

nangnoy的博客 3428
上一篇: aruco marker使用笔记
下一篇: 剑指 Offer 68 - II. 二叉树的最近公共祖先
风尘仆
博客等级 码龄15年 28粉丝 138原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值