workspace(ROS的工作空间)
├── build(在工作空间中执行catkin_make时,会在build中创建一系列的中间编译文件和中间缓存文件)
├── devel(用于存储编译成功的目标可执行文件)
│ ├── setup.bash
└── src(用于存储新创建的程序包)
├── CMakeLists.txt
├── pkg1
│ ├── CMakeLists.txt
│ ├── include
│ ├── package.xml
│ └── src
├── pkg2
│ ├── CMakeLists.txt
│ ├── include
│ ├── package.xml
│ └── src
└── pkg3
├── CMakeLists.txt
├── include
├── package.xml
└── src
1.需要先建立一个工作空间文件夹,其中包括src文件夹。
mkdir ros_workspace/src
2.初始化工作空间
catkin_init_workspace
catkin_init_workspace
。ros_workspace
命名进行讲解。ros_workspace
下进行编译catkin_make
。ros_workspace/src
下存放该工作空间的功能包。1.在工作空间的src文件夹下,使用catkin_create_pkg
命令创建功能包。
catkin_create_pkg demo_py rospy rosmsg roscpp
demo_py
命名进行讲解。现在的demo_py功能包下有下边几个文件:
irvingao@irvingao:~/ros_project/first_ws/src/demo_py$ ls
CMakeLists.xt include package.xml src
2.如果要写python代码,需要在程序包下新建scripts
文件夹,并将python代码写在其中。
mkdir scripts
hello.py
#!/usr/bin/env python
# coding:utf-8
import rospy
if __name__ == '__main__':
# 创建节点
rospy.init_node("pyhello")
print("hello Irvingao! this is ur first ros python code! Good luck for u!")
需要注意的是:
#!/usr/bin/env python
是为了说明python文件为可执行文件,而不是脚本文件。# coding:utf-8
是保证编码格式。1.可执行权限修改
cd scripts
chmod a+x hello.py
2.项目编译
启动命令行,来到工作空间目录下,编译项目。
cd ros_workspace #回到工作空间
catkin_make
source devel/setup.bash #编译后要source刷新环境
3.启动ROS Master
打开新的命令行,启动ROS master。
roscore
4.运行节点
(1)打开新的命令行,来到工作空间目录下,source一下开发环境。
cd ros_workspace
source devel/setup.bash
(2)通过命令运行编译好的node
[pkg名] [py文件]
rosrun demo_py hello.py
rosrun
命令后跟第一个参数是package的名称,第二个参数是节点名称务必在根目录下运行Clion,如果在GUI运行Clion,会导致环境报错。
cd ~/devtools/clion-2019.3.2/bin/
./clion.sh