基於ROS系統的手部追蹤器程式設計!

2021-10-09 01:20:40 字數 2369 閱讀 1199

第一部分: 完成該程式的注意事項

1、ros預設的python版本為2.7,但是在python2.7環境下,手部追蹤程式不能正確執行,其主要原因在於python2與python3的運算規則存在很大差異,比如對於除法即 『/』運算子,python2下,int/int = int, 而python3環境下int/int = int=float,而cv.dnn模組以及python指令碼程式中涉及到很多'/'運算,因此必須讓該程式在ros系統下以python3環境執行,否則不可能得出想要的效果。

2、如何使ros呼叫python3解析器呢?很簡單,只要在python指令碼程式頭部新增如下宣告即可。

#!/usr/bin/python3
3、由於本程式需要用到python3版本的rospy,而ros系統沒有基於python3的rospy,因此需要利用pip3進行安裝。安裝命令為:

pip3 install rospkg -i
第二部分:專案構建全過程概覽

一、構建工作空間

1、首先新建乙個資料夾,名稱為tracing_hands

mkdir tracing_hands
並在該資料夾下新建乙個資料夾,名稱為src

mkdir src
執行catkin_make,建立出乙個空的ros程式架構(工作空間)

catkin_make
二、構建catkin軟體包

1、在前述src資料夾環境下,建立軟體包,並取名為tracing_hands

catkin_create_pkg tracing_hands std_msgs rospy
2、建立自定義訊息型別,剛剛建立的tracing_hands資料夾下新建乙個資料夾,取名msg

mkdir msg
在該資料夾下新建兩個自定義訊息型別,分別是:

int_list_1d.msg:

#該message儲存left,top,right,bottomint32 data
int_list_2d.msg:

#該message儲存多個[left,top,right,bottom]int_list_1d data
3、在當前資料夾下繼續建立一資料夾,取名scripts,用於存放可執行python指令碼檔案,talker.py,listener.py,執行

chmod +x talker.py
chmod +x listener.py
用以將python指令碼定義為可執行檔案,使其可以執行。

4、在當前資料夾下新建一資料夾,取名為launch,並在其中新建一檔案,取名為tracing_hands.launch,內容如下:

用以快速啟動tracing_hands軟體包下的talker和listener節點

執行

chmod +x tracing_hands.launch
用以將其變為可執行檔案。

5、修改當前資料夾下的cmakelist.txt和package.xml檔案

6、回到工作空間目錄下即~/tracing_hands,執行catkin_make編譯程式

!!!至此程式框架已全部構建完成,後面可用rosrun來逐個執行節點或者roslaunch來快速啟動所有節點

第三部分:程式使用

1、使用前請注意:修改talker.py 的配置檔案路徑(就是你自己訓練的權重檔案)talker.py在/tracing_hands/src/tracing_hands/scripts 資料夾下。修改26,27行即可,其餘的不需要修改了。

2、使用roslaunch啟動:在我的環境下用到如下語句:

cd ~/tracing_hands
source ./devel/setup.bash
roslaunch tracing_hands tracing_hands.launch
3、使用rosrun啟動:在我的環境下用到如下語句:

roscore
開啟乙個新終端:依次輸入如下:

cd ~/tracing_handssource ./devel/setup.bashrosrun tracing_hands talker.py
再開啟乙個新終端:依次輸入如下:

cd ~/tracing_handssource ./devel/setup.bashrosrun tracing_hands listener.py
另:要實現視覺化效果可在程式執行時,開啟乙個新終端並執行:

rqt_graph

FCC批准亞馬遜開發基於雷達的睡眠追蹤器

對於公司開發和銷售含有雷達技術的消費級裝置,美國聯邦通訊委員會 fcc 設定了非常高的門檻並對相關申請進行嚴苛審查。因為該組織擔心,允許此類商品不受限制的銷售可能會對 對 雷達 頻段的授權使用者產生有害干擾 2018年,fcc 經過嚴苛審查之後允許在 pixel 智慧型手機上使用雷達技術。fcc 近...

ROS 一種基於RRT的路徑規劃器

最近寫了乙個基於rrt的全域性路徑規劃器在此記錄下來。ubuntu18.04 ros melodic 作為move base外掛程式。包括rrt rrt connect,啟發式擴充套件,路徑優化等內容。過載!一般為機械人起始點和目標點 然後規劃這兩個點之間的路徑。函式為 bool rrtstarpl...

基於epoll的併發伺服器程式設計

這一篇文章主要是理清伺服器和客戶端的建立通訊的流程,整個通訊是在網路層 即ip協議以及其上的傳輸層和應用層 不明白的話需要先了解網路7層模型 對應的報文格式和不同層的封裝。下面主要圍繞圖11 14講述並深入 serverfd socket af inet,sock stream,0 這裡返回的描述符...