初识ros2 功能包建立与可执行文件的配置

电子说

1.4w人已加入

描述

ros2有两个启动程序的选项:

直接运行可执行文件,启动 ROS2 程序。

启动启动文件,启动 ROS2 程序。

 

#直接运行可执行文件。命令结构如下
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 相关的系统连接。
    
审核编辑 黄宇

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分