有两个启动程序的选项:
#直接运行可执行文件。命令结构如下
ros2 run <package_name> <executable_file>
第一个参数是包含可执行文件的软件包名称。
第二个参数是(该软件包内的)可执行文件的名称。
使用启动文件时,命令结构如下:
ros2 launch <package_name> <launch_file>
第一个参数是包含启动文件的软件包名称。
第二个参数是启动文件的名称(在该软件包内)。在 ROS2 中,您可以创建两种类型的软件包:
Python 软件包
CMake (C++) 软件包
在本课程中,我们将重点讨论第一种类型。Python 包将包含 Python 可执行文件。
每个 Python 软件包都会有如下的文件和文件夹结构:
package.xml- 包含软件包元信息(软件包维护者、依赖关系等)的文件。
setup.py- 文件,其中包含如何编译软件包的说明。
setup.cfg- 包含如何安装软件包的说明。
src/\\<package_name>- 该目录以您的软件包命名。您将把所有 Python 脚本放在该文件夹中。默认情况下,它已经包含了一个空的__init__.py 文件。 source /opt/ros/humble/setup.bash
ros2 pkg create --build-type ament_python <package_name> --dependencies <package_dependency_1> <package_dependency_2>
编译colcon build
colcon build --packages-select <package_name>
source install/setup.bash列出所有包
ros2 pkg list
ros2 pkg list | grep <package>ros2的程序编写
#!/usr/bin/env python
在 Python 文件的第一行放置shebang (或hashbang),指示应使用哪个解释器来执行脚本。
rclcpp:用于C++ 的 ROS2 客户端库。
rclpy:Python 的 ROS2 客户端库。
有一个RUST ros2_client 正在受到越来越多的关注 ,ROS2 客户端库,类似于原生 Rust 中的 rclcpp 或 rclpy 库。底层 DDS 实现,RustDDS,也是原生的 Rust。import rclpy
def main(args=None):
rclpy.init(args=args)
使用ROS2 的 Python 客户端库来初始化程序所需的ROS2 通信和系统。
rclpy.shutdown()
关闭所有通过rclpy.init(args=args) 启动的与 ROS2 相关的系统连接。原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。