ROS 中写 python 的 roslaunch

文章目录

    • 1. 必看教程(快速入门)
      • 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
    • 2. 调试 bug 参考的文档
      • all processes on machine have died, roslaunch will exit!
      • 异常中出现 ^M 标志
      • rolaunch 启动的 * .py 的第一行须要添加 python 环境路径
    • 3. 开发过程常用到的信息保存如下:
      • 3.1. 创建工作区
      • 3.2. 环境激活:
      • 3.3. 创建功能包
    • 4. 我最终的 文件结构 截图如下:
    • 5. 常用的命令放在下面:

背景:之前将交通标志的检测程序,放在了 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
截图重点部分如下:把原来的代码,改成下面这个。
ROS 中写 python 的 roslaunch_第1张图片

异常中出现 ^M 标志

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

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

解决方法: 1. 通过which python 找到你需要的 python 环境的路径,我的最终修改结果如下:
ROS 中写 python 的 roslaunch_第2张图片

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

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

3.1. 创建工作区

ROS 中写 python 的 roslaunch_第3张图片

3.2. 环境激活:

ROS 中写 python 的 roslaunch_第4张图片

3.3. 创建功能包

ROS 中写 python 的 roslaunch_第5张图片

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

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

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

ROS 中写 python 的 roslaunch_第8张图片
txt 和 xml 文件是自创建的,但需要根据自己使用到的依赖,进行添加内容。
setup.py 是自创建的,内容根据 参考的PDF文档修改。
ROS 中写 python 的 roslaunch_第9张图片
ROS 中写 python 的 roslaunch_第10张图片
__init__.py 是个文件
ROS 中写 python 的 roslaunch_第11张图片

ROS 中写 python 的 roslaunch_第12张图片
根据自己的需要,自己定义。
ROS 中写 python 的 roslaunch_第13张图片
ROS 中写 python 的 roslaunch_第14张图片
具体路径通过which python 来查找。
ROS 中写 python 的 roslaunch_第15张图片
需要 import rosgraph

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

ROS 中写 python 的 roslaunch_第16张图片

ROS 中写 python 的 roslaunch_第17张图片

ROS 中写 python 的 roslaunch_第18张图片

ROS 中写 python 的 roslaunch_第19张图片

你可能感兴趣的:(autoware,ros)