ROS 中写 python 的 roslaunch

2023-11-08

文章目录

背景:之前将交通标志的检测程序,放在了 ROS 环境中运行,能实现正常的订阅和发布功能,实现了与其他程序的配合。但是没有运行程序时,是通过直接终端输入python2 detect_traffic_sign_2030.py 实现启动节点的。

开发需求:把整个 node 配置成完整的 ROS 启动,roslaunch 启动

1. 必看教程(快速入门)

先看1(视频) 再看 2(pdf),3(官方可不看) 最后看1(视频),我才把代码调通。

官方文档 通过创建 bin 文件夹的方法,误导了我,最终是不需要这样操作的。

1.1. 快速入门ROS的视频教程(里面有一节是专门讲 roslaunch 的):https://www.bilibili.com/video/av59458869/

1.2. PDF文档(How to create a ROS package (In Python) in Easy Steps.pdf):https://duckietown.mit.edu/media/pdfs/1rpRisFoCYUm0XT78j-nAYidlh-cDtLCdEbIaBCnx9ew.pdf

1.3. 官方文档(Writing a ROS Python Makefile):http://wiki.ros.org/rospy_tutorials/Tutorials/Makefile

这个参考的较少,其中的 Installing scripts and exporting modules 过程在PDF文档中没有提及,所以我 最终不是通过创建 bin 文件夹的方法来实现 rosrun 来运行 *.py 文件的。

2. 调试 bug 参考的文档

all processes on machine have died, roslaunch will exit!

参考的文档:file:///F:/E/ROS%E5%AD%A6%E4%B9%A0%E6%96%87%E4%BB%B6/rocon_launch.launch%20%E2%80%94%20rocon_launch%200.3.2%20documentation.html
截图重点部分如下:把原来的代码,改成下面这个。
在这里插入图片描述

异常中出现 ^M 标志

出现原因:我将win下的代码复制到linux中去,这是由于两个系统的编码格式不同导致的.
解决方法:参考 https://blog.csdn.net/u011498011/article/details/89474931

rolaunch 启动的 * .py 的第一行须要添加 python 环境路径

解决方法: 1. 通过which python 找到你需要的 python 环境的路径,我的最终修改结果如下:
在这里插入图片描述

3. 开发过程常用到的信息保存如下:

激活自己笔记本上的 ros_py27 环境:conda activate ros_py27
激活 ros 环境:source /opt/ros/kinetic/setup.bash

3.1. 创建工作区

在这里插入图片描述

3.2. 环境激活:

在这里插入图片描述

3.3. 创建功能包

在这里插入图片描述

4. 我最终的 文件结构 截图如下:

在这里插入图片描述
说明:build 和 devel 中的文件是 通过katkin_make 自动生成了(我没有具体看过里面的内容),里面的内容可以删除,重新 make 就会自动生成。这三个文件夹都需要自己手动创建。
在这里插入图片描述
traffic_sign_2030文件夹 和 CMakeLists.txt 是通过 catkin_create_pkg traffic_sign_2030 命令自动生成的。

所以这里可以 并立存放(创建)多个 pkg

在这里插入图片描述
txt 和 xml 文件是自创建的,但需要根据自己使用到的依赖,进行添加内容。
setup.py 是自创建的,内容根据 参考的PDF文档修改。
在这里插入图片描述
在这里插入图片描述
__init__.py 是个文件
在这里插入图片描述

在这里插入图片描述
根据自己的需要,自己定义。
在这里插入图片描述
在这里插入图片描述
具体路径通过which python 来查找。
在这里插入图片描述
需要 import rosgraph

5. 常用的命令放在下面:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

ROS 中写 python 的 roslaunch 的相关文章

随机推荐

  • 【BingGPT对话记录】基于格的密码学简介

    格密码学是一种基于格 lattice 的数学结构的密码学分支 它具有抵抗量子计算攻击的特性 格是一个由线性无关向量生成的离散点集 可以用来描述许多复杂的几何和代数问题 格密码学的安全性通常建立在最坏情况下的难度假设上 即即使给定最优化算法
  • 4.Docker网络配置

    网络相关 IP 子网掩码 网关 DNS 端口号 子网掩码 互联网是由许多小型网络构成的 每个网络上都有许多主机 这样便构成了一个有层次的结构 IP 地址在设计时就考虑到地址分配的层次特点 将每个 IP 地址都分割成网络号和主机号两部分 以便
  • Java private方法访问

    大家知道 Java中private修饰符修饰的方法或属性 只有在该类内可以访问 其他类均无法访问 事实真的是这样吗 下面一个例子可以实现访问一个类中的private方法 原理是通过Java的反射机制 感觉Java反射机制在这点似乎不太安全
  • 手把手教你使用LabVIEW OpenCV dnn实现物体识别(Object Detection)含源码

    文章目录 前言 一 物体识别算法原理概述 1 物体识别的概念 2 Yolo算法原理概述 二 opencv调用darknet物体识别模型 yolov3 yolov4 1 darknet模型的获取 2 python调用darknet模型实现物体
  • 深度学习环境配置1——windows下的tensorflow-gpu=1.13.2环境配置

    深度学习环境配置1 windows下的tensorflow gpu 1 13 2环境配置 注意事项 一 2021 9 11更新 二 2021 7 8更新 三 2020 11 5更新 学习前言 环境内容 环境配置 一 Anaconda安装 1
  • Android - Session 'app': Error Installing APK或installaion failed intall_parse_failed_manifest_的解决方法

    在Android Studio中启动模拟器的时候偶尔会遇到以下的问题 1 installaion failed with message intall parse failed manifest malformed 2 Session ap
  • 【Linux:进程间信号】

    文章目录 1 生活角度的信号 2 技术应用角度的信号 3 信号的产生 3 1 由系统调用向进程发信号 3 1 1 signal 3 1 2 kill 3 1 3 raise 3 2 由软件条件产生信号 3 3 硬件异常产生信号 3 4 通过
  • Git使用操作规范

    一 创建自己的开发分支 1 1 配置Git环境 1 1 1 Windows平台上安装 1 1 2 Linux平台上安装 1 1 3 Mac平台上安装 1 1 4 基本概念名词解释 Git 工作区 暂存区和版本库 工作区 就是你在电脑里能看到
  • Unity UGUI 无限循环列表 ----------多功能版

    一共有四种 循环列表 如下图 1 常用循环列表 2 收展嵌套 循环列表 3 弹框 循环列表 4 翻页 循环列表 注意点 1 层次结构如下图 2 Content 和 Item 控件锚点必须为如图 使用方式 只举例常用列表 其他列表查看 GIt
  • JDE(Towards Real-Time Multi-Object Tracking)代码训练——小白必看

    前言 自己在跑JDE多目标跟踪代码时 总结的方法和教训 一 数据集制作 1 可直接下载作者给的数据集 是制作好的 论文链接 https arxiv org pdf 1909 12605v1 pdf 代码链接 https github com
  • 如何使用oracle修改表字段长度

    系列文章目录 ORACLE简介 Oracle是一种关系数据库管理系统 RDBMS 广泛应用于企业应用程序中 它是由甲骨文公司在20世纪70年代末开发的 自此成为世界上最流行的数据库系统之一 Oracle以其可扩展性 可靠性和安全性而闻名 它
  • USB无线网卡的用途及编程实现

    USB无线网卡是一种设备 它可以通过USB接口连接到计算机 并提供无线网络连接功能 在本文中 我们将探讨USB无线网卡的用途以及如何通过编程实现相关功能 用途 提供无线网络连接 USB无线网卡允许计算机通过无线信号连接到网络 这对于那些没有
  • 【Java】------- Base64格式图片保存到服务器文件

    一 使用技术 Java Springboot 二 代码实例 fun base64ToImage base64转成图片格式 提示 data image png base64 的前缀要去掉 param imgBase64 base64 数据 p
  • Griffin 数据管理任务的SQL和原理

    文章目录 各种Measure内部计算原理 accuracy completeness distinct timeliness uniqueness profiling spark sql pre proc Service 任务管理模块 配置
  • JUC常用到的类

    JUC java util concurrent 并发包中包含了许多并发编程中需要用到的类 锁 如ReentratLock ReadWriteLock ReentrantLock重入锁 可以替代synchronized使用 并且有更多强大的
  • 在windows内使用virtualbox搭建安卓x86--以及所遇到的问题解决--3

    一 ARM兼容包的植入 1 下载arm包 2 安装arm兼容包 3 验证arm兼容包是否移植成功 二 触屏无效 三 玩游戏卡顿严重 一 ARM兼容包的植入 在AndroidX86系统内大部分应用 国内 并没有适配X86架构 安装基于arm架
  • Python实验作业

    Python实验作业 1 实验题目 中文数字对照表 输入一个数字 转换成中文数字 比如 1234567890 gt 壹贰叁肆伍陆柒捌玖零 chinese number 零 壹 贰 叁 肆 伍 陆 柒 捌 玖 numeber input 请输
  • Vue-组件

    Vue 组件 组件之间的父子关系 使用组件的三个步骤 私有组件 通过components 注册的是私有子组件 全局组件 在vue 项目的main js 入口文件中 通过Vue component 方法 可以注册全局组件 import Vue
  • 【css面试题】实现2栏布局 右侧自适应; 3栏布局 中间自适应

    2栏布局 右侧自适应 flex grid table float div class son1 div
  • ROS 中写 python 的 roslaunch

    文章目录 1 必看教程 快速入门 1 1 快速入门ROS的视频教程 里面有一节是专门讲 roslaunch 的 https www bilibili com video av59458869 1 2 PDF文档 How to create