文章目录
-
- 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
截图重点部分如下:把原来的代码,改成下面这个。
异常中出现 ^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