天天看點

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

異常中出現 ^M 标志

出現原因:我将win下的代碼複制到linux中去,這是由于兩個系統的編碼格式不同導緻的.

解決方法:參考 https://blog.csdn.net/u011498011/article/details/89474931

rolaunch 啟動的 * .py 的第一行須要添加 python 環境路徑

解決方法: 1. 通過

which python

找到你需要的 python 環境的路徑,我的最終修改結果如下:

ROS 中寫 python 的 roslaunch

3. 開發過程常用到的資訊儲存如下:

激活自己筆記本上的 ros_py27 環境:conda activate ros_py27

激活 ros 環境:source /opt/ros/kinetic/setup.bash

3.1. 建立工作區

ROS 中寫 python 的 roslaunch

3.2. 環境激活:

ROS 中寫 python 的 roslaunch

3.3. 建立功能包

ROS 中寫 python 的 roslaunch

4. 我最終的 檔案結構 截圖如下:

ROS 中寫 python 的 roslaunch

說明:build 和 devel 中的檔案是 通過

katkin_make

自動生成了(我沒有具體看過裡面的内容),裡面的内容可以删除,重新 make 就會自動生成。這三個檔案夾都需要自己手動建立。

ROS 中寫 python 的 roslaunch

traffic_sign_2030

檔案夾 和

CMakeLists.txt

是通過

catkin_create_pkg traffic_sign_2030

指令自動生成的。

是以這裡可以 并立存放(建立)多個 pkg

ROS 中寫 python 的 roslaunch

txt 和 xml 檔案是自動建立的,但需要根據自己使用到的依賴,進行添加内容。

setup.py 是自己建立的,内容根據 參考的PDF文檔修改。

ROS 中寫 python 的 roslaunch
ROS 中寫 python 的 roslaunch

__init__.py

是個空檔案

ROS 中寫 python 的 roslaunch
ROS 中寫 python 的 roslaunch

根據自己的需要,自己定義。

ROS 中寫 python 的 roslaunch
ROS 中寫 python 的 roslaunch

具體路徑通過

which python

來查找。

ROS 中寫 python 的 roslaunch

需要

import rosgraph

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

ROS 中寫 python 的 roslaunch
ROS 中寫 python 的 roslaunch
ROS 中寫 python 的 roslaunch
ROS 中寫 python 的 roslaunch