ROS——创建工作空间和功能包并成功运行一个基本python文件

    科技2023-10-02  103

    文章目录

    ROS文件系统的基本结构一、创建工作空间二、(可选)创建功能包三、编写python代码四、调试运行代码正确运行Clion

    ROS文件系统的基本结构

    📁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

    三、编写python代码

    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 默认编写的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

    务必在根目录下运行Clion,如果在GUI运行Clion,会导致环境报错。

    cd ~/devtools/clion-2019.3.2/bin/ ./clion.sh
    Processed: 0.019, SQL: 8