ROS——创建工作空间和功能包并成功运行一个基本python文件

2023-05-16

文章目录

    • ROS文件系统的基本结构
    • 一、创建工作空间
    • 二、(可选)创建功能包
    • 三、编写python代码
    • 四、调试运行代码
    • 正确运行Clion

ROS文件系统的基本结构

📁workspace(ROS的工作空间)
├── 📁build(在工作空间中执行catkin_make时,会在build中创建一系列的中间编译文件和中间缓存文件)
├── 📁devel(用于存储编译成功的目标可执行文件)
│   ├── 📃setup.bash
└── 📁src(用于存储新创建的程序包)
    ├── 📃CMakeLists.txt
    ├── 📁pkg1
    │   ├── 📃CMakeLists.txt
    │   ├── 📁include
    │   ├── 📃package.xml
    │   └── 📁src
    ├── 📁pkg2
    │   ├── 📃CMakeLists.txt
    │   ├── 📁include
    │   ├── 📃package.xml
    │   └── 📁src
    └── 📁pkg3
        ├── 📃CMakeLists.txt
        ├── 📁include
        ├── 📃package.xml
        └── 📁src

一、创建工作空间

1.需要先建立一个工作空间文件夹,其中包括src文件夹。

mkdir ros_workspace/src

2.初始化工作空间

catkin_init_workspace
  • 一开始创建空间时就要进行编译catkin_init_workspace
  • 工作空间可以任意命名,这里以ros_workspace命名进行讲解。
  • 如果要编译功能包,需要到工作空间ros_workspace下进行编译catkin_make
  • ros_workspace/src下存放该工作空间的功能包。

二、(可选)创建功能包

1.在工作空间的src文件夹下,使用catkin_create_pkg命令创建功能包。

catkin_create_pkg demo_py rospy rosmsg roscpp
  • 功能包也可以任意命名,这里以demo_py命名进行讲解。

现在的demo_py功能包下有下边几个文件:

irvingao@irvingao:~/ros_project/first_ws/src/demo_py$ ls
CMakeLists.xt  include  package.xml  src

2.如果要写python代码,需要在程序包下新建scripts文件夹,并将python代码写在其中。

mkdir scripts

三、编写python代码

hello.py

#!/usr/bin/env python
# coding:utf-8
import rospy

if __name__ == '__main__':
    # 创建节点
    rospy.init_node("pyhello")
    print("hello Irvingao! this is ur first ros python code! Good luck for u!")

需要注意的是:

  • #!/usr/bin/env python是为了说明python文件为可执行文件,而不是脚本文件。
  • # coding:utf-8是保证编码格式。

四、调试运行代码

1.可执行权限修改

cd scripts
chmod a+x hello.py
  • 默认编写的py文件是不具备执行权限的。因此我们需要手动讲文件权限修改为可执行。

2.项目编译

启动命令行,来到工作空间目录下,编译项目。

cd ros_workspace  #回到工作空间
catkin_make
source devel/setup.bash  #编译后要source刷新环境

3.启动ROS Master

打开新的命令行,启动ROS master。

roscore

4.运行节点

(1)打开新的命令行,来到工作空间目录下,source一下开发环境。

cd ros_workspace

source devel/setup.bash

(2)通过命令运行编译好的node

		[pkg名]  [py文件]
rosrun demo_py hello.py
  • rosrun命令后跟第一个参数是package的名称,第二个参数是节点名称
  • 可以直接在代码中进行更改而不需要再次进行编译。

正确运行Clion

务必在根目录下运行Clion,如果在GUI运行Clion,会导致环境报错。

cd ~/devtools/clion-2019.3.2/bin/

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

ROS——创建工作空间和功能包并成功运行一个基本python文件 的相关文章

  • week16 实验A TT数鸭子

    题目 xff1a 这一天 xff0c TT因为疫情在家憋得难受 xff0c 在云吸猫一小时后 xff0c TT决定去附近自家的山头游玩 TT来到一个小湖边 xff0c 看到了许多在湖边嬉戏的鸭子 xff0c TT顿生羡慕 此时他发现每一只鸭
  • group by分组查询后排序

    group by分组查询后排序 如 xff1a 分组查询 SELECT s name name COUNT s id value FROM t setmeal s t order o WHERE s id 61 o setmeal id G
  • 数据库的视图

    数据库视图的作用 数据库视图是一种虚拟的表 xff0c 它不是一个实际的表 xff0c 而是根据一个或多个实际表的查询结果生成的一个虚拟表 xff0c 它可以看作是对一个或多个表的一个或多个列的子集的逻辑表示 在数据库中 xff0c 视图有
  • Ubuntu开启FTP服务+FileZilla传输文件

    1 Ubuntu安装 FTP 服务 sudo apt install vsftpd 2 本地 写入权限使能 xff0c 首先打开 etc vsftpd conf 进行配置 sudo vim etc vsftpd conf 配置文件中 loc
  • spring集成Junit单元测试出现的问题及解决办法

    spring集成Junit单元测试出现的问题及解决办法 1 在spring集成Junit单元测试的时候 xff0c 所有的集成步骤都没有问题 xff0c 但是在启动测试的时候出现如下问题 xff1a java lang IllegalSta
  • MySQL实验

    表如下 xff1a 学院 xff08 学院代码 xff0c 学院名称 xff09 学生 xff08 学号 xff0c 姓名 xff0c 性别 xff0c 学院代码 xff09 教师 xff08 教师号 xff0c 教师名 xff0c 学院代
  • SpringBoot整合Mybatis-plus代码生成器

    本文还是采用经典实用知识三段论 是什么 xff1f 能干什么 xff1f 怎么干 xff1f 让Mybatis plus代码生成器轻而易举的为你所用 希望文章能够帮到你提高写代码的效率 前言 整合基于在idea已经创建好的Springboo
  • 定义struct结构体数组

    题目要求 xff1a 有3个候选人 xff0c 每个选民只能投票选一人 xff0c 要求编一个统计选票的程序 xff0c 先后输入被选人的名字 xff0c 最后输出各人得票结果 解题思路 xff1a 设一个结构体数组 xff0c 数组中包含
  • AAC高级音频编码

    AAC 的支持现状 目前支持 AAC 的产品还比较少 xff0c 这主要是因为专利使用费大大限制了 AAC 的发展 xff01 不过好在有索尼 诺基亚 苹果 松下四大巨头的鼎力支持 xff0c 场面还不算冷清 重量级的 iPod 和 iPo
  • 三种做法——判断给定的字符序列是否是回文,回文是指一个字符序列以中间字符为基础,两边字符忽略大小写完全相同

    判断给定的字符序列是否是回文 xff0c 回文是指一个字符序列以中间字符为基础 xff0c 两边字符忽略大小写完全相同 xff08 10分 xff09 判断回文多种方法 xff1a 不值得推荐方法 xff1a 纯死脑筋做法 span cla
  • word文件转md文件

    文章目录 一 下载pandoc二 pandoc转换1 cmd进入文件夹2 代码实现 一 下载pandoc 建议使用msi直接安装 xff0c 而不是下载安装包直接使用 xff0c msi的下载方法 xff1a 安装方法 二 pandoc转换
  • JavaScript中定义结构体一维二维多维数组

    相信学过C语言的开发者刚接触JavaScript时都会很不习惯 xff0c C语言中的虽然是结构化面向过程的编程语言 xff0c 但是C语言中也有封装的思想 xff0c 例如C语言结构体和公用体等 xff0c 在他们中都可以直接定义变量 C
  • does not name a type报错的改正方式

    does not name a type报错的改正方式 原代码如下 xff1a 报错 xff1a does not name a type 原因 xff1a 不知道 改正方法 xff1a 把初始化放主函数外面 xff0c 赋值放主函数里面
  • ERROR: Cause: unable to find valid certification path to requested target终极解决方法

    ERROR Cause unable to find valid certification path to requested target终极解决方法 2022 09 20 更新一下 xff1a 报这个错主要是因为网络问题 xff0c
  • yum安装ansible报错如何解决

    yum安装ansible报错解决方案 一 报错信息 xff1a 二 如何解决1 重装虚拟机2 修改yum源3 使用EPEL源4 安装ansible5 测试 文章参考 xff1a https mirrors tuna tsinghua edu
  • FORTRAN基础编程(1)——基本格式及读入输出

    FORTRAN基础编程 xff08 1 xff09 基本格式及输出 读入 文章目录 FORTRAN基础编程 xff08 1 xff09 基本格式及输出 读入书面格式一 Fixed Format 固定格式 二 Free Format 自由格式
  • Anaconda3-2022.05安装与环境配置

    文章目录 1 Anaconda下载方式一 xff1a Anacoda官网下载方式二 xff1a 国内镜像下载 2 Anaconda安装3 Anaconda环境变量配置4 测试是否配置成功 1 Anaconda下载 方式一 xff1a Ana
  • 解题笔记——救援

    解题笔记 救援 救生船从大本营出发 xff0c 营救若干屋顶上的人回到大本营 xff0c 屋顶数目以及每个屋顶的坐标和人数都将由输入决定 xff0c 求出所有人都到达大本营并登陆所用的时间 在直角坐标系的原点是大本营 xff0c 救生船每次
  • 【千奇百怪】java自定义spotbugs检测器

    前两天 xff0c 在对一个代码质量检测平台维护的时候 xff0c 遇到了一个新添加指定规则集的需求 xff0c 在经过一番折腾后否定掉了基于 ANTLR 实现自定义规则 xff1b 基于 CheckStyle 实现自定义规则 xff1b
  • win10深度学习环境配置

    nvidia驱动以及cuda的安装与卸载 下载cuda和对应的cudnn nvidia官网 直接在搜索栏搜索想要下载的版本 xff0c cuda11 x和cudnn11 x 首先安装cuda 安装cuda会自动安装相对应的显卡驱动 xff0

随机推荐

  • 【CCF-CSP】201312-1 出现次数最多的数 C++

    文章目录 一 题目二 解题1 题目解释1 出现次数最多的数2 如果这样的数有多个 xff0c 请输出其中最小的一个 2 代码3 提交结果 三 总结1 代码思路 xff1a 2 其他 一 题目 题目原始链接 xff1a http 118 19
  • 【CCF-CSP】201403-1 相反数 C++

    文章目录 一 题目二 使用步骤1 解题2 代码3 提交结果 总结1 代码思路2 其他 一 题目 原题目链接 二 使用步骤 1 解题 求相反数的队数 xff0c 可以利用相反数的绝对值相等的思路来解题 2 代码 dev c 43 43 5 1
  • 【CCF-CSP】201409-4 最优配餐 C++

    文章目录 一 题目二 解题1 题目2 代码3 提交结果 总结1 代码思路 一 题目 原题目链接 二 解题 1 题目 一个BFS xff08 宽度优先搜索 xff09 的实现 xff0c 用于处理迷宫中的节点 下面是代码的详细解释 xff1a
  • 【CCF-CSP】201412-2 Z字形扫描 C++

    文章目录 一 题目二 解题1 核心2 代码3 提交结果 总结 一 题目 原题目链接 二 解题 1 核心 一个关于矩阵的遍历输出算法 具体来说 xff0c 输出的是一个n n的矩阵z中的所有元素 内层循环的意思是 xff1a 在外层循环中确定
  • 【CCF-CSP】 201604-4 游戏

    文章目录 一 题目二 解题1 题目2 代码3 提交结果 总结1 注意边界 一 题目 原题目链接 二 解题 1 题目 类似于迷宫问题 xff0c 假设有一个n行m列的矩阵 xff0c 其中的一些格子是障碍物 xff0c 机器人从 xff08
  • 碰撞的小球 201803-2 C++

    文章目录 一 题目二 解题1 题目2 代码3 提交结果 总结1 解释 一 题目 原题目链接 二 解题 1 题目 这段代码通过模拟小球在一维轴上的运动来解决碰撞小球问题 它读入小球的数量 n xff0c 轴的长度 L 和运动的时间 t xff
  • 风险人群筛查 202009-2 C++

    文章目录 一 题目二 解题1 题目2 代码3 提交结果 总结1 解释 一 题目 原题目链接 二 解题 1 题目 这个程序解决了一个计数问题 它读取一些输入值 xff0c 包括n k t xl yd xr和yu 其中 xff0c n表示人数
  • 如此编码 202209-1 C++

    文章目录 一 题目二 解题1 题目2 代码3 提交结果 总结1 解释2 其他 一 题目 原题目链接 二 解题 1 题目 根据题目的提示 xff0c 我们已经知道m xff0c 需要求解的是b 那我们先求解c xff0c 然后再求解b 2 代
  • 期末预测之最佳阈值(类似前缀和的思想)

    题目 见https blog csdn net qq 45985728 article details 114903481 思路 我对此题没什么太好的思路 大概就只有暴力枚举混个70分吧 具体思路还是见上面的题目网址 代码 span cla
  • 阿里云服务器建站教程(从0到1)

    购买了阿里云服务器后 xff0c 需要一系列的配置 设置密码 首先 xff0c 点击右上角的 控制台 在左边找到 云服务器ESC xff0c 点击 可以看到有你刚刚购买的服务器 xff0c 点击进去 进入之后 xff0c 点击 更多 xff
  • 阿里云服务器建站教程

    第一步 xff1a 阿里云域名购买 需要到阿里云购买域名 xff1a 域名特惠专场 第二步 xff1a IPC备案 自行下载阿里云app进行IPC备案 xff0c 因为需要进行人脸验证 第三步 xff1a 购买服务器 购买服务器 xff1a
  • 树莓派3B+远程连接被拒或超时亦或屏幕无反应的登录方式

    报了一个大学生创新创业比赛 xff0c 计划做一个基于视觉识别的切菜机械臂 xff0c 毫无头绪 xff0c 于是先学树莓派吧 xff0c 入手3B 43 有一段时间了 xff0c 为了节约成本没有买屏幕 xff0c 几天后发现最大的问题就
  • 最大矩形(题解)

    题意 xff1a 给一个直方图 xff0c 求直方图中的最大矩形的面积 例如 xff0c 下面这个图片中直方图的高度从左到右分别是2 1 4 5 1 3 3 他们的宽都是1 xff0c 其中最大的矩形是阴影部分 思路 xff1a 对于每个高
  • python 工厂方法模式原理与实现

    一 简介 工厂模式是属于创建型模式 xff0c 它提供了一种创建对象的最佳方式 在工厂模式中 xff0c 我们在创建对象的过程中不会向客户端暴露实现逻辑 xff0c 而是通过一个共同的接口类来指向新创建的对象 二 工厂方法模式的主要角色 抽
  • Python安装Jupyter Notebook配置使用教程

    原文见 xff1a https blog csdn net qq 27825451 article details 84427269 一 什么是jupyter 1 简介 xff1a jupyter notebook是一种 Web 应用 xf
  • 【Python学习】——实现文本的朗读(pyttsx3)

    import pyttsx3 engine pyttsx3 init engine say 三角形 engine runAndWait 1 导入第三方库 import pyttsx3 2 创建朗读器 engine pyttsx3 init
  • 啊啊啊啊啊,终于解决电脑hardlock.sys蓝屏问题啦,顺利下载modelsim软件

    最开始下载软件时 xff0c 电脑蓝屏 xff0c 以为是电脑储存空间不足 xff0c 换了1T固态硬盘之后 xff0c 问题还是没有解决 xff1b 从博客看经验贴 xff0c 需要进入安全模式后 xff0c 从别的笔记本电脑上复制har
  • 上课摸鱼必备 -- Vscode网页版的搭建教程

    上课摸鱼必备 Vscode网页版的搭建教程 文章目录 上课摸鱼必备 Vscode网页版的搭建教程前言 xff08 一 xff09 运行效果 xff08 二 xff09 基础配置1 下载code server到服务器上2 解压安装试运行 xf
  • 牛客练习赛50

    tokitsukaze and Connection 链接 xff1a https ac nowcoder com acm contest 12257 A 来源 xff1a 牛客网 题目描述 tokitsukaze有一个长度为n xff0c
  • ROS——创建工作空间和功能包并成功运行一个基本python文件

    文章目录 ROS文件系统的基本结构一 创建工作空间二 xff08 可选 xff09 创建功能包三 编写python代码四 调试运行代码正确运行Clion ROS文件系统的基本结构 x1f4c1 workspace xff08 ROS的工作空