跳转至

2.1 创建项目

约 546 个字 108 行代码 预计阅读时间 3 分钟

一、创建工作目录

在终端中,执行如下命令:

mkdir -p ~/kitt_ws/src && cd kitt_ws/src
我们的项目工作空间是kitt_wssrc目录是我们的源代码存放目录。

二、创建ros包kitt

创建ros包kitt并在该包中创建car节点,执行如下命令:

ros2 pkg create --build-type ament_python --node-name car kitt
命令解释:

  • ros2是ROS2中的平台命令,像ros2 pkgros2 run等都是以ros2开头的命令。也就是说ros2管理着一组命令。
    这里的pkg就是一个命令,是包命令。createpkg包命令的子命令,是创建命令。

  • --build-type是选择构建类型的参数,后面可带cmakeament_cmakeament_python,这都是指代的代码语言类型。cmakeament_cmake是c/c++语言,ament_python是python语言。

  • --node-name是节点名参数,后面就可以添加节点名,最后那个参数是包名称。

点击查看执行示例
执行示例.log
fotianmoyin@fotianmoyin-moon:~/Projects/vscode/kitt_ws/src$ ros2 pkg create --build-type ament_python --node-name car kitt
going to create a new package
package name: kitt
destination directory: /home/fotianmoyin/Projects/vscode/kitt_ws/src
package format: 3
version: 0.0.0
description: TODO: Package description
maintainer: ['fotianmoyin <190045431@qq.com>']
licenses: ['TODO: License declaration']
build type: ament_python
dependencies: []
node_name: car
creating folder ./kitt
creating ./kitt/package.xml
creating source folder
creating folder ./kitt/kitt
creating ./kitt/setup.py
creating ./kitt/setup.cfg
creating folder ./kitt/resource
creating ./kitt/resource/kitt
creating ./kitt/kitt/__init__.py
creating folder ./kitt/test
creating ./kitt/test/test_copyright.py
creating ./kitt/test/test_flake8.py
creating ./kitt/test/test_pep257.py
creating ./kitt/kitt/car.py

[WARNING]: Unknown license 'TODO: License declaration'.  This has been set in the package.xml, but no LICENSE file has been created.
It is recommended to use one of the ament license identitifers:
Apache-2.0
BSL-1.0
BSD-2.0
BSD-2-Clause
BSD-3-Clause
GPL-3.0-only
LGPL-3.0-only
MIT
MIT-0

三、创建ros包inters

创建ros包inters,这个包用于存储我们的自定义消息声明文件,执行如下命令:

ros2 pkg create --build-type ament_cmake inters

点击查看执行示例
执行示例.log
fotianmoyin@fotianmoyin-moon:~/Projects/vscode/kitt_ws/src$ ros2 pkg create --build-type ament_cmake inters
going to create a new package
package name: inters
destination directory: /home/fotianmoyin/Projects/vscode/kitt_ws/src
package format: 3
version: 0.0.0
description: TODO: Package description
maintainer: ['fotianmoyin <190045431@qq.com>']
licenses: ['TODO: License declaration']
build type: ament_cmake
dependencies: []
creating folder ./inters
creating ./inters/package.xml
creating source and include folder
creating folder ./inters/src
creating folder ./inters/include/inters
creating ./inters/CMakeLists.txt

[WARNING]: Unknown license 'TODO: License declaration'.  This has been set in the package.xml, but no LICENSE file has been created.
It is recommended to use one of the ament license identitifers:
Apache-2.0
BSL-1.0
BSD-2.0
BSD-2-Clause
BSD-3-Clause
GPL-3.0-only
LGPL-3.0-only
MIT
MIT-0

我们用vscode【打开文件夹】方式打开我们的kitt_ws工作目录,可以看到项目结构如下:

kitt_ws项目结构

四、运行项目

切换vscode左侧栏到【运行和调试】

vscode切换到运行与调试

点击【创建launch.json文件】按钮,在弹出的选择框中选择【Python Debugger】

vscode选择Python Debugger

选择【Python 文件】

vscode选择调试python文件

vscode给我们创建了一个launch.json文件,文件内容如下:

launch.json
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python 调试程序: 当前文件",
            "type": "debugpy",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal"
        }
    ]
}
可以看到,vscode给我们创建的这个配置是启动当前python文件,也就是说我们目前打开的py文件是哪个,将使用调试器调试哪个。 实际项目开发中,程序的入口文件就那么几个,我们更多的就是指定启动的入口文件。

本项目中,当前的入口文件是car.py,所以我们再定义一个car启动项来启动car.py

我们在launch.json文件中,添加一个car的启动项,内容如下(标亮行):

setup.py
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python 调试程序: 当前文件",
            "type": "debugpy",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal"
        },
        {
            "name": "car",
            "type": "debugpy",
            "request": "launch",
            "program": "${workspaceFolder}/src/kitt/kitt/car.py",
            "console": "integratedTerminal",
            "justMyCode": true,
        },
    ]
}
打开启动项列表

vscode选择启动项

选择我们的car启动项,运行程序,我们会在终端窗口中看到如下内容输出
"Hi from kitt."

源码下载