ROS知识【11-1】:建立用户自己的工作空间、功能包
一、關(guān)于功能包 的操作指令
????????圍繞功能包的操作指令,這些指令存在的必要性,就是直接對某個(gè)包進(jìn)行操作,尤其是如果有上百個(gè)功能包,直接從linux進(jìn)行操作是低效的:
二、烏龜案例分析
當(dāng)ros安裝好后,用下列指令測試:
roscore # 打開主進(jìn)程 rosrun turtlesim turtlesim_node # 運(yùn)行turtlesim 包中的turtlesim_node節(jié)點(diǎn)臺 rosrun turtlesim turtle_teleop_key # 運(yùn)行turtlesim 包中的turtle_teleop_key節(jié)點(diǎn),顯然是在功能包turtlesim下有兩個(gè)節(jié)點(diǎn)turtlesim_node和 turtle_teleop_key節(jié)點(diǎn)。
三、圍繞turtlesim包的操作
3.1 roscd指令進(jìn)入turtlesim元功能包
執(zhí)行命令:
roscd turtlesim #進(jìn)入烏龜功能包 rosls #查看包內(nèi)文件結(jié)構(gòu) rosnode list #查看包內(nèi)的節(jié)點(diǎn)細(xì)節(jié)注意:/opt/ros/melodic/share下面的應(yīng)用包,都是元應(yīng)用包;其中也有turtlesim,但此包不是用戶開發(fā)的包,因此只能看,不能修改。
???
四、用戶自己開發(fā)的開端
????????以上小烏龜?shù)目刂铺N(yùn)含了ROS的基本原理,但它是前面的人開發(fā)出來發(fā)布出來的,如今擺在面前的問題是,我們自己如何能開發(fā)一個(gè)類似的程序?那么,就從這里開始吧。
????????建立工作空間,其意義在于,每一個(gè)工作空間,可以包含多個(gè)功能包;換個(gè)角度,每一個(gè)功能包只能依附在某個(gè)工作空間內(nèi)部。即便我們需要修改別人的ros代碼,也需要生成一個(gè)工作空間,再把需要修改的代碼導(dǎo)入該空間,然后修改、編譯、發(fā)布。
4.1 建立工作空間
mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src catkin_init_workspace可以看出,上文中建立一個(gè)工作空間catkin_ws, 而且通過catkin_init_workspace使得該空間與
/opt/ros/melodic/share/catkin/cmake/toplevels.cmake 相連接;使得本地編譯擴(kuò)大為全局編譯。 ??
4.2 編譯
編譯整個(gè)工作空間。
cd ~/catkin_ws catkin_make編譯后,工作空間多了兩個(gè)目錄:build和devel;多出來的空間有:
-
src:代碼空間(Source Space)
-
build:編譯空間(Build Space)
-
devel:開發(fā)空間(Development Space)
-
install:安裝空間(Install Space)
4.3 設(shè)置環(huán)境變量:
source ./devel/setup.bash查看執(zhí)行后效果:echo $ROS_PACKAGE_PATH
?
4.4 創(chuàng)建功能包
cd ~/catkin_ws/src catkin_create_pkg learning_communication std_msgs rospy roscpp以上代碼在工作空間catkin_ws上定義一個(gè)功能包;
注意:功能包不可嵌套,只能平行放置;也就是如果繼續(xù)追加功能包,就重復(fù)上面操作。
?4.5 編譯并設(shè)置環(huán)境
cd ~/catkin_ws catkin_make source ./devel/setup.bash以上就是創(chuàng)建功能包的全部過程。
五、將工作空間改造成Eclipse工程
5.1 首先將ros的教程代碼安裝進(jìn)本地電腦
sudo apt-get install ros- melodic-ros-tutorials查看安裝地點(diǎn):
rospack find roscpp-tutorials顯示:
/opt/ros/melodic/share/roscpp_tutorials
5.2 改變方式,rosc_tutorials將源碼導(dǎo)入本地catkin_ws中
因?yàn)閷?dǎo)入的是功能包,和上文建的learning_communication處于平行的路徑上,所以:
cd ~/catkin_ws/src?執(zhí)行:
git clone https://github.com/ros/ros_tutorials.git將github上的ros_tutorials.git源碼下載解壓到本地,catkin_ws/src下面。
5.3 將本地catkin_ws中內(nèi)容轉(zhuǎn)成Eclipe工程
編譯本地
cd ~/catkin_ws catkin_make source ./devel/setup.bash?創(chuàng)建eclipse工程
cd ~/catkin_ws catkin_make --force-cmake -G"Eclipse CDT4 - Unix Makefiles"設(shè)置終端環(huán)境變量到Eclipse
awk -f $(rospack find mk)/eclipse.awk build/.project > build/.project_with_env && mv build/.project_with_env build/.project注意:如果上部執(zhí)行不成功,查看
???? echo $ROS_PACKAGE_PATH ? ? ??
用該命令查看是否設(shè)置正確。或執(zhí)行【 source ./devel/setup.bash 】
如果需要調(diào)試程序,還需要執(zhí)行下面命令來設(shè)置代碼編譯成debug版本:
cmake ./src -DCMAKE_BUILD_TYPE=Debug?項(xiàng)目的文件在目錄 ~/catkin_ws/build,至此Eclipse工程文件創(chuàng)建完成。
?至此,從Eclipse環(huán)境導(dǎo)入現(xiàn)有工程,將catkin_ws導(dǎo)入即可用。注意:小烏龜?shù)陌咐驮赾atkin_ws內(nèi)部,導(dǎo)入Eclipse可以編輯查看修改。
總結(jié)
以上是生活随笔為你收集整理的ROS知识【11-1】:建立用户自己的工作空间、功能包的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华硕笔记本:Ubuntu 18.04安装
- 下一篇: 射影几何笔记5:齐次坐标(Homogen