文章目錄
-
- 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