ROS解决'[rosrun] Couldn't find executable named ...'

2023-05-16

使用实验室电脑制作的镜像安装了Ubuntu之后新建终端出现bash文件路径报错,这里是因为实验室电脑的bashrc文件已经被修改,需要换成自己的工作空间路径,这也导致了后面找不到功能包,无法生成可执行文件。

1、建立自己的功能包

首先新建工作空间

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws
catkin_make

创建ROS功能包

cd ~/catkin_ws/src
catkin_create_pkg test std_msgs roscpp

2、检查下自己的功能包在不在路径里

echo $ROS_PACKAGE_PATH

如果你找不到功能包那一般是不在路径里的...

借鉴这个回答解决问题

Don't set ROS_PACKAGE_PATH yourself, let setup.bash of the appropriate workspace do that. Remove that line (export ROS_PACKAGE_PATH=..), and change source /opt/ros/hydro/setup.bash to source the setup.bash from your workspace (ie: devel/setup.bash). Then open new terminal, and try again.

具体操作参见3

3、将自己的工作空间添加到路径里

打开bashrc文件:

source gedit ~/.bashrc

打开的bashrc文件末尾显示如下,发现自己多次将source命令和export命令写进bashrc文件:

source /opt/ros/indigo/setup.bash
export TURTLEBOT_3D_SENSOR=kinect
source /home/lab404/turtlebot/devel/setup.bash

export TURTLEBOT_STAGE_MAP_FILE=/home/lab404/maps/office.yaml
 export TURTLEBOT_STAGE_WORLD_FILE=/home/lab404/maps/stage/office.world

export ROS_PACKAGE_PATH=~/catkin_ws:/home/amanda/dev/catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks
export ROS_PACKAGE_PATH=~/catkin_ws:/home/amanda/catkin_ws:/home/amanda/dev/catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks
export ROS_PACKAGE_PATH=~/dev/catkin_ws:/home/amanda/catkin_ws:/home/amanda/catkin_ws:/home/amanda/dev/catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks
export ROS_PACKAGE_PATH=~/ros_workspace:/home/amanda/dev/catkin_ws:/home/amanda/catkin_ws:/home/amanda/catkin_ws:/home/amanda/dev/catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks
export ROS_PACKAGE_PATH=~/dev/rosbook:/home/amanda/ros_workspace:/home/amanda/dev/catkin_ws:/home/amanda/catkin_ws:/home/amanda/catkin_ws:/home/amanda/dev/catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks

删掉多余的export语句,留下前三行,将第三行的路径改成自己的工作空间路径,我的是

source /home/amanda/catkin_ws/devel/setup.bash

(amanda是我自己的计算机名,可以到devel文件夹下的setup.bash文件右键属性看一下自己的路径)

4、编译功能包

cd ~/catkin_ws
catkin_make

5、在catkin_ws/test/src里面添加两个cpp

一个发布消息 一个接受消息 网上百度两个复制一下,参考这个博客

https://blog.csdn.net/poqiaomi5437/article/details/79660199

然后修改catkin_ws/test文件夹里面的CMakelist,在末尾加一下

add_executable(example_public src/example_publih.cpp)
add_executable(example_subscriber src/example_subscriber.cpp)
add_dependencies(example_public tutorials_generate_messages_cpp)
add_dependencies(example_subscriber tutorials_generate_messages_cpp)
target_link_libraries(example_public ${catkin_LIBRARIES})
target_link_libraries(example_subscriber ${catkin_LIBRARIES})

也是参考上面的博客。

6、让工作空间自己setup路径,不要手动source添加

cd ~/catkin_ws/devel
source setup.bash

(其实第3步就已经设置好路径了,如果没做第3步那么要执行第6步)

7、执行

cd ~/catkin_ws
catkin_make -j4

新开三个终端分别输入:

roscore
 
rosrun example_cpp example_public
 
rosrun example_cpp example_subscriber

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS解决'[rosrun] Couldn't find executable named ...' 的相关文章

  • 在列表中查找一个值[重复]

    这个问题在这里已经有答案了 我使用以下命令来检查是否item is in my list if item in my list print Desired item is in list Is if item in my list 在列表中
  • 将java程序编译为可执行文件[重复]

    这个问题在这里已经有答案了 可能的重复 如何为 Java 程序创建 exe https stackoverflow com questions 516399 how do i create an exe for a java program
  • 未将 Win32 可移植可执行映像映射到偏移量 0 处的可能原因有哪些?

    我最近一直在研究 Window 的 PE 格式 我注意到在大多数示例中 人们倾向于设定ImageBase中的偏移值optional header到一些不合理的高的东西 比如0x400000 什么可能使它不利not在偏移处映射图像0x0 首先
  • 正则表达式类型之间的差异

    我正在读 GNU find的手册页并偶然发现了这个开关 regextype type Changes the regular expression syntax understood by regex and iregex tests wh
  • “启动失败。未找到二进制文件。” Snow Leopard 和 Eclipse C/C++ IDE 问题

    不是问题 我刚刚在互联网上搜索了这个问题的解决方案 并认为我会与 SO 的好人分享 我会用通俗易懂的语言来表述 以便新手也能理解 如果这是错误的地方 我们深表歉意 只是想提供帮助 几乎所有尝试使用 Eclipse C C IDE 的 OS
  • cmake find_path/find_library 检查失败

    我在用着CMake 2 8 2 http www cmake org Wiki CMake 2 8 2 Docs版本 该项目使用大量外部文件和自定义库 无法通过 find package 获得 并且有一长串元素 如下所示 find path
  • 下划线充当分隔符 C# RTF Box

    我正在开发一个 Winforms 应用程序 并使用 RichTextBox 控件上的 Find 来查找要设置样式的特定关键字 由于某种原因 尽管指定了 WholeWord 标志 Find 似乎仍将其中带有下划线的单词视为 2 个单独的单词
  • 如何告诉 find 命令转义文件名中的空格字符?

    我有一个单行 find 命令 它递归地检查并打印出在特定时间范围内创建的特定文件类型的大小 所有者和名称 但在结果中 给出文件名列 直到目录或文件名中的第一个空格字符为止 有没有办法在这个单一命令中解决这个问题 而无需在 bash 中编写任
  • 为什么我在mongodb中找不到_id的记录

    我试图通过 MongoID id 字段在 mongoDB 中查找记录 我找到了有关如何执行此操作的示例 但无法使其发挥作用 例子 recID 010101010101011 would be a valid mongodb id recID
  • Mongo:如何通过存储在子数组中的ObjectId查找?

    我有一个包含这样记录的集合 id ObjectId 50ae3bdb50b3d6f01400027a admins ObjectId 50ae3bdb50b3d6f014000279 ObjectId 50ae3bdb50b3d6f0140
  • 使用“-prune”时,从“find”命令中省略“-print”

    我一直无法完全理解 find 命令的 prune 操作 但实际上 至少我的一些误解源于省略 print 表达的影响 从 查找 手册页 如果表达式除 prune 之外不包含任何操作 则对表达式为 true 的所有文件执行 print 我一直
  • 如何为 HDFS 递归列出子目录?

    我在 HDFS 中递归创建了一组目录 如何列出所有目录 对于普通的 UNIX 文件系统 我可以使用以下命令来做到这一点 find path type d print 但我想为 HDFS 得到类似的东西 递归列出目录内容hadoop dfs
  • 在 EXE 文件末尾写入字节安全吗?

    我听说如果我们在 EXE 文件末尾附加一些字节 它仍然可以正常工作 在所有情况下都是如此吗 这是一种安全的方法吗 我打算使用程序执行文件中的数据来编写演示 因此它可以是安全的 至少对普通用户而言 并且我不必将数据存储在其他地方 这是不可能用
  • python 课堂上有太多自我

    我正在学习 Python OOP 并尝试将 Java 类转换为 Python 类 请参阅此 PDF 中的第 15 页了解 Java 代码 google 文档link https docs google com open id 1eqzajO
  • 如何让 Ruby 的 Find.find 遵循符号链接?

    我有一个文件层次结构 一些子目录是相对符号链接 我在用Ruby s Find find http apidock com ruby Find爬行这些目录并找到一些特定的文件 但是 它不会查找任何符号链接的目录 它遵循符号链接的文件 看着源代
  • ROS中spin和rate.sleep的区别

    我是 ROS 新手 正在尝试了解这个强大的工具 我很困惑spin and rate sleep功能 谁能帮助我了解这两个功能之间的区别以及何时使用每个功能 ros spin and ros spinOnce 负责处理通信事件 例如到达的消息
  • 如何将 VBScript 转换为可执行 (EXE) 文件? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我四处寻找转换 VBScript 的信息 vbs 到可执行文件 并意识到大多数可用的工具实际上是将脚本包装在可执行文件中 尝试了一些工
  • 使用文本框搜索 datagridview 中的列 (vb.net)

    如何使用文本框搜索 datagridview 中的列 我正在使用 vb net 2010 我有一个带有数据源的 Datagridview 下面是我用于填充 datagridview 的代码 网格视图将有 4 列 Private Sub Lo
  • Perl 初学者:如何查找/替换文件中的 ASCII 字符?

    我对 Perl 完全陌生 我认为这将是解决我的简单任务的最佳语言 我需要将二进制文件转换为可读的文件 并且需要查找和替换字符串 例如 x00 x39 into x09 选项卡 或类似的东西 从 bash 开始 我从以下内容开始 效果很好 p
  • 查找 div 元素中的所有链接并禁用它们

    假设我有一些如下所示的 HTML 元素 div span a href some link Click me a span div Hello everybody Click a href some link else me a to do

随机推荐

  • 【CVPR2019】超分辨率文章,SRFBN: Feedback Network for Image Super-Resoluition

    论文地址 代码 CVPR的单图像超分辨率文章 xff0c 主要是用回传机制来提高超分辨率的效果 xff0c 且不引入过多的参数 主要是设计了一个feedback模块 xff0c 多次回传 xff0c 如下图所示 xff1a 上一次feedb
  • selenium与browsermob-proxy

    BrowserMob Proxy允许您操作HTTP请求和响应 xff0c 捕获HTTP内容 xff0c 并将性能数据导出为HAR文件 BMP作为独立的代理服务器运行良好 xff0c 嵌入Selenium测试时尤其有用 下载地址如下 http
  • Ubuntu下Samba服务器搭建

    看网上Samba的搭建教程比较乱 xff0c 因此自己将Samba的搭建过程记录下来 xff0c 方便需要用到时还可以查看 1 安装 Samba xff1a apt get install samba 2 创建一个用于分享的 Samba 目
  • linux 第一章 shell编程及自动化运维实现

    linux shell编程及自动化运维实现 第一章 变量 一 shell 前言 1 shell语言的特点 SHELL语言是指Unix操作系统的命令语言 xff0c 同时又是该命令语言的解释程序的简称 shell本身是一个用c语言编写的程序
  • Error running 'ApplicationRun': 'xxx\jdk1.8.0_191\jre' is not a valid JRE home

    Error running ApplicationRun xxx jdk1 8 0 191 jre is not a valid JRE home解决办法 春节刚过 xff0c 疫情肆虐 从没见过如此冷清的成都 xff0c 阴沉的天空 xf
  • 总结一下:分页的几种办法

    总结一下 xff1a 分页的几种办法 以mysql为例 xff0c 做分页的方法 xff0c 目前我总结了3种 第一种分页 xff1a 采用Query类和PageUtils类做出分页 xff0c sql用limit获取条数 第一步 xff1
  • RabbitVCS:ubuntu下svn可视化工具的安装和使用

    转载链接 如果想在Linux环境下使用图形化界面的SVN客户端软件 xff0c 那么RabbitVCS绝对是首选 xff0c 可以媲美Windows环境下用的TortoiseSVN xff0c 甚至连操作都基本一样 xff0c 所以强烈推荐
  • docker - mysql - utf8 中文编码问题

    手把手教你如何在mysql 中使用中文编码 1 首先在docker中拉取好一个最新的mysql镜像以后 xff0c 创建一个容器 xff1a docker run span class hljs attribute d span span
  • 在 Ubuntu中安装图形用户界面

    参考链接 使用ubuntu server安装lamp主机非常的方便 xff0c 只要在安装系统的步骤中选择就是了 但是很多时候我需要在图形界面下管理主机更加方便 今天的教程就是教大家安装图形界面 方法一 首先你需要确定你的源文件中 etc
  • cmake在vscode和VS中的使用笔记

    在视频中看来的 launch json的 34 program 34 34 command cmake launchTargetPath 34 xff0c 这样就可以在vscode中按F5运行程序了CMakeLists中的aux sourc
  • centos yum 安装 php7.4 的mongodb扩展

    centos yum 安装 php7 4 的mongodb扩展 安装pecl php扩展包管理工具 yum install span class token operator span y openssl devel php pear ph
  • 利用ffmpeg实现添加图片水印和文字水印,添加多个水印。代码和命令实现及中文水印乱码

    ffmpeg中文水印乱码两种原因 1 字符编码格式原因 xff0c 中文必须是utf8编码格式的 xff08 我遇到的问题 xff0c 在vs2013上写的中文 xff0c 已做编码格式转码 xff0c 放到centos7 2上编译运行也会
  • rust error: failed to run custom build command for `openssl-sys v0.9.67`

    问题描述 在安装cargo install wasm pack时编译失败 xff0c 报错如下 error failed to run custom build command for 96 openssl sys v0 9 67 96 C
  • 获取文件行数

    获取文件行数 64 param string filename 文件名 64 return int function file line string filename int if file exists filename die 39
  • OneDrive的申请与使用

    最近在使用OneDrive的时候遇到了一些问题 xff0c 在这里记录下来 xff0c 方便以后查看 使用学校邮箱申请OneDrive 点击office365教育版申请地址 xff0c 输入你的学校邮箱 xff0c 按照指示操作即可 在On
  • Ubuntu22.04虚拟机配置及使用代理工具

    特别注意 xff1a 本教程基于VMware虚拟机 xff0c 安装Ubuntu22 04 其他类型虚拟机及Linux其他版本配置相似但有所不同 1 虚拟机配置 1 1 打开虚拟机设置 或 1 2 选择硬件选项卡 网络适配器 xff0c 在
  • pycharm 安装和使用常见问题

    一 pycharm的安装 pycharm的下载安装很简单 xff0c 可以去官网 xff08 https www jetbrains com pycharm xff09 但是安装之后运行往往会出现 no jdk found 的错误 可以在
  • python脚本纠错:interpolate.interp2d的正确用法

    说明 xff1a 接上一篇脚本中有个错误 xff0c 一直未解决 xff0c 其实是interpolate interp2d的输入参数错误 xff0c 输入参数应该一维数组 xff0c 而不是二位数组 参考https stackoverfl
  • 解决Ubuntu18.04网络不自动连接问题

    解决Ubuntu18 04网络不自动连接问题 有两种方法 xff1a 1 永久修改网络管理器 span class token function sudo span vim etc NetworkManager NetworkManager
  • ROS解决'[rosrun] Couldn't find executable named ...'

    使用实验室电脑制作的镜像安装了Ubuntu之后新建终端出现bash文件路径报错 xff0c 这里是因为实验室电脑的bashrc文件已经被修改 xff0c 需要换成自己的工作空间路径 xff0c 这也导致了后面找不到功能包 xff0c 无法生