foxy简单例程
时间: 2025-07-14 13:39:24 浏览: 4
为了获取ROS 2 Foxy Fitzwilliam框架的简单示例程序,可以参考官方教程和示例代码。以下是一个简单的ROS 2节点示例,展示了如何创建一个发布者和订阅者。
### 创建一个ROS 2包
首先,你需要创建一个新的ROS 2包。如果你还没有创建工作空间,可以按照以下步骤创建:
```bash
mkdir -p ~/dev_ws/src
cd ~/dev_ws/src
```
然后,克隆ROS教程包:
```bash
git clone https://github.com/ros/ros_tutorials.git -b foxy-devel
```
进入你的工作空间根目录并构建它:
```bash
cd ~/dev_ws
colcon build
```
### 简单的ROS 2节点示例
下面是一个简单的ROS 2节点示例,它包括一个发布者和一个订阅者。
#### 发布者节点
创建一个名为`publisher_node.py`的文件,并添加以下代码:
```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 = 'Hello World: %d' % self.i
self.publisher_.publish(msg)
self.get_logger().info('Publishing: "%s"' % msg.data)
self.i += 1
def main(args=None):
rclpy.init(args=args)
minimal_publisher = MinimalPublisher()
rclpy.spin(minimal_publisher)
rclpy.shutdown()
if __name__ == '__main__':
main()
```
#### 订阅者节点
创建一个名为`subscriber_node.py`的文件,并添加以下代码:
```python
import rclpy
from rclpy.node import Node
from std_msgs.msg import String
class MinimalSubscriber(Node):
def __init__(self):
super().__init__('minimal_subscriber')
self.subscription = self.create_subscription(
String,
'topic',
self.listener_callback,
10)
self.subscription # prevent unused variable warning
def listener_callback(self, msg):
self.get_logger().info('I heard: "%s"' % msg.data)
def main(args=None):
rclpy.init(args=args)
minimal_subscriber = MinimalSubscriber()
rclpy.spin(minimal_subscriber)
rclpy.shutdown()
if __name__ == '__main__':
main()
```
### 运行示例
确保你已经安装了ROS 2 Foxy,并且设置了环境变量。在终端中运行发布者节点:
```bash
python3 publisher_node.py
```
在另一个终端中运行订阅者节点:
```bash
python3 subscriber_node.py
```
你应该会看到订阅者终端输出从发布者接收到的消息。
### 入门教程
对于更详细的入门教程,可以访问ROS 2的官方文档,那里提供了丰富的教程和示例代码来帮助你开始使用ROS 2 Foxy [^1]。
阅读全文
相关推荐












