在ROS中workspace和Package的建立

2021-10-24 16:21:50 字數 2275 閱讀 3552

在workspace中建立自己的包

在包中編寫屬於自己的程式

寫完程式之後對程式的編譯

記錄一下c++**和py**的開頭格式

總結1,總的來說就是節點與節點之間的通訊,節點代表機械人的某種功能,多個節點互相作用來控制機械人

啟動流程:

roscore->啟動rosmaster

rosrun->package(找到功能包)->exe(經過編譯make後形成的可執行檔案)->創造乙個節點->想幹啥幹啥

同理用多個終端開起多個執行檔案形成多個節點,節點名字和可執行檔案名字沒鳥關係

2,py檔案不同的是不需要可執行檔案,py**本身就是可執行檔案,記得右鍵屬性裡更改它的使用許可權

rosrun ->package(找到功能包)->name.py->創造乙個節點->想幹啥幹啥

具體該部分的**演示:

roscore

ctrl+alt+t //開啟新終端

rosrun package_name exe_name

rosrun package_name exe_name.py

1.建立工作空間的方法

catkin就是整個ros的創作空間,相當於乙個project,在安裝完ros之後

mkdir -p ~

/catkin_ws/src

cd ~

/catkin_ws/src

catkin_init_workspace

2.建立完之後編譯
cd ~

/catkin_ws

catkin_make

3.在寫完程式後catkin_make之後,還要更新環境
source devel/setup.bash
在catkin中建立屬於自己的包,規定包的名字-name_pkg,後面的都是包的依賴:也就是被人寫好的包自己這個包裡直接可以用,以下**就依賴了三個包(以下在catkin_ws/src的終端中操作)

catkin_create_pkg name_pkg std_msgs rospy roscop
然後包裡面會有includesrc,c++檔案都放在src裡面,需要自己建立乙個scripts用來放py檔案。

就記錄一下:

c++程式編寫: 到包的src檔案中開啟終端輸入touch ***x.cpp建立c++檔案

python程式編寫: 在包中建立乙個stricpt資料夾專門存放py**,同理touch ***xx.py

1.c++檔案的操作:

每個包裡都有cmake檔案,開啟以後在

declare a c++ library下面,install上面

加入

add_executable

(exe_name src/name.cpp)

target_link_libraries

(exe_name $

)

差不多意思就是把你寫的cpp檔案在cmake後編成可執行檔案

然後老規矩catkin_make source

2.py檔案的操作:

在stricpt裡面,右鍵py屬性許可權變成可執行檔案,然後出去cmake,直接用

c++格式:

#include

intmain

(int argc,

char

**ar**)

python格式:
#!/usr/bin/env python

# -*- coding:utf-8 -*-

import rospy

deffunction_name()

:while

not rospy.is_shutdown():

rate.sleep(

)if __name__ ==

'__main__'

try:

function_name(

)except rospy.rosinterruptexception():

pass

以上就是整個workspace的搭建,完全寫給自己看,以後可以快速回憶。強烈推薦古月居老師,看完21講幫助巨大

ROS 1 在zsh中安裝ros

參考 ros install wiki 平台 ubuntu 14.04 64bit ros 版本 indigo sudo apt key adv keyserver hkp sks keyservers.net 80 recv key 421c365bd9ff1f717815a3895523baee...

launcher中Workspace類大致分析

1 computescroll 重寫了父類的computescroll 主要功能是計算拖動的位移量 更新背景 設定要顯示的螢幕 setcurrentscreen mcurrentscreen 3 onmeasure 重寫了父類的onmeasure 主要功能是設定螢幕的顯示大小。由每個child的me...

ROS學習(七)使用Rosed在ROS中編輯檔案

rosed是rosbash套件的一部分。它允許您通過使用包名稱直接編輯包中的檔案,而不必鍵入包的完整路徑。用法 rosed package name filename 這樣,您可以輕鬆地檢視和選擇編輯程式包中的所有檔案,而無需知道其確切名稱。用法 rosed package name 例子 rose...