2.1 创建项目
约 546 个字 108 行代码 预计阅读时间 3 分钟
一、创建工作目录
在终端中,执行如下命令:
我们的项目工作空间是kitt_ws
,src
目录是我们的源代码存放目录。
二、创建ros包kitt
创建ros包kitt
并在该包中创建car
节点,执行如下命令:
-
ros2
是ROS2中的平台命令,像ros2 pkg
、ros2 run
等都是以ros2
开头的命令。也就是说ros2
管理着一组命令。
这里的pkg
就是一个命令,是包命令。create
是pkg
包命令的子命令,是创建命令。 -
--build-type
是选择构建类型的参数,后面可带cmake
,ament_cmake
,ament_python
,这都是指代的代码语言类型。cmake
和ament_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
,这个包用于存储我们的自定义消息声明文件,执行如下命令:
点击查看执行示例
执行示例.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工作目录,可以看到项目结构如下:
四、运行项目
切换vscode左侧栏到【运行和调试】
点击【创建launch.json文件】按钮,在弹出的选择框中选择【Python Debugger】
选择【Python 文件】
vscode给我们创建了一个launch.json
文件,文件内容如下:
launch.json
可以看到,vscode给我们创建的这个配置是启动当前python文件,也就是说我们目前打开的py文件是哪个,将使用调试器调试哪个。
实际项目开发中,程序的入口文件就那么几个,我们更多的就是指定启动的入口文件。
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python 调试程序: 当前文件",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
}
]
}
本项目中,当前的入口文件是car.py
,所以我们再定义一个car
启动项来启动car.py
。
我们在launch.json
文件中,添加一个car
的启动项,内容如下(标亮行):
打开启动项列表
选择我们的car
启动项,运行程序,我们会在终端窗口中看到如下内容输出
"Hi from kitt."