ROS之创建功能包(二)

本文介绍了在ROS中创建和管理功能包的过程,包括使用`catkin_create_pkg`命令创建包,工作空间的覆盖机制,以及ROS如何在不同工作空间和系统路径中查找功能包的顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ROS之创建功能包

创建功能包的命令:$catkin_create_pkg <package_name> [depend1] [depend2] [...]

在所在的工作区间目录下完成操作:

1、创建功能包

cd ~/catkin_ws/src
catkin_create_pkg learning_communication std_msgs rospy roscpp

2、编译功能包

cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash

 工作空间的覆盖

覆盖机制(overlaying)

工作空间都路径依次在ROS_PACKAGE_PATH环境变量中记录

新设置都路径在ROS_PACKAGE_PATH中会自动放在最前端

运行时,ROS会优先查找最前端的工作空间中是否存在指定的功能包

如果不存在,就顺序查找其他工作空间

                                                系统路径下都功能包

                   

### 如何在ROS 2中创建功能和节点 #### 创建新的ROS 2 为了开始,在终端输入`ros2 pkg create`命令可以创建一个新的ROS 2。此命令会自动生成必要的文件夹结构以及配置文件,使得开发者能够快速上手编写代码[^1]。 ```bash $ ros2 pkg create --build-type ament_python my_package_name ``` 这里假设正在创建的是一个Python类型的;如果目标是C++项目,则应指定不同的构建类型选项。 #### 添加依赖项到Package.xml 当新被成功建立之后,下一步是在`package.xml`内声明所需的依赖关系。对于打算开发的任何特定特性——比如消息传递服务或是动作服务器/客户端——都需要在此处注明相应的依赖库版本号等信息[^3]。 #### 编写简单的Publisher Node (发布者节点) ##### Python版简易Topic Publisher实例 下面展示了一个非常基础的例子,它展示了怎样利用Python脚本来定义一个向话题发送标准字符串消息(`std_msgs/msg/String`)的简单节点: ```python import rclpy from rclpy.node import Node from std_msgs.msg import String class MinimalPublisher(Node): def __init__(self): super().__init__('minimal_publisher') self.publisher_ = self.create_publisher(String, 'topic', 10) timer_period = 0.5 # seconds self.timer = self.create_timer(timer_period, self.timer_callback) self.i = 0 def timer_callback(self): msg = String() msg.data = f'Hello World: {self.i}' self.publisher_.publish(msg) self.get_logger().info(f'Publishing: "{msg.data}"') self.i += 1 def main(args=None): rclpy.init(args=args) minimal_publisher = MinimalPublisher() rclpy.spin(minimal_publisher) # Destroy the node explicitly # (optional - otherwise it will be done automatically # when the garbage collector destroys the node object) minimal_publisher.destroy_node() rclpy.shutdown() if __name__ == '__main__': main() ``` 这段代码实现了周期性的信息发布至名为'topic'的主题下,并打印日志记录每次发布的具体内容[^2]。 #### 运行所编写的节点 完成上述操作后,可以通过如下指令运行刚刚创建好的节点: ```bash $ colcon build && source install/setup.bash $ ros2 run your_package_name script_filename_without_extension ``` 这组命令首先执行了项目的编译过程,接着激活环境变量以便于调用其中的功能模块,最后则是实际启动该节点程序[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值