在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_mak
e之後,還要更新環境source devel/setup.bash
在catkin中建立屬於自己的包,規定包的名字-name_pkg
,後面的都是包的依賴:也就是被人寫好的包自己這個包裡直接可以用,以下**就依賴了三個包(以下在catkin_ws/src的終端中操作)
catkin_create_pkg name_pkg std_msgs rospy roscop
然後包裡面會有include
和src
,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...