ROS2 python 通信demo

已创建包:test_kiki

test_kiki/test_kiki文件夹

两个py文件即两个node

talk.py

https://raw.githubusercontent.com/ros2/examples/humble/rclpy/topics/minimal_publisher/examples_rclpy_minimal_publisher/publisher_member_function.py

listen.py

https://raw.githubusercontent.com/ros2/examples/humble/rclpy/topics/minimal_subscriber/examples_rclpy_minimal_subscriber/subscriber_member_function.py

package.xml文件中添加依赖

找到<build_type>ament_python</build_type>

下面添加

<exec_depend>rclpy</exec_depend>

<exec_depend>std_msgs</exec_depend>

即import 的包

setup.py中添加入口

entry_points={
        'console_scripts': [
            'talk_node = test_kiki.talk:main',
            'listen_node = test_kiki.listen:main'
        ],
    },

编译

colcon build

启动

ros2 run test_kiki talk_node

ros2 run test_kiki listen_node

也可以手动发布话题消息

ros2 topic pub /topic std_msgs/msg/String ' hello how are you '

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ROS2中引入了action通信机制,通过action通信可以实现更复杂和灵活的交互式任务处理,相比于ROS1中的service通信机制,action通信可以处理需要长时间运行、中间结果反馈以及取消请求的任务。 实现一个ROS2 action通信demo可以遵循以下步骤: 1. 创建一个名为my_package的ROS2 package,并在该package中创建一个名为my_action的action文件,用于定义action的目标和反馈消息。 2. 在package的CMakeLists.txt文件中添加对action接口的依赖,确保action文件正确编译。 3. 编写一个名为action_server.cpp的节点程序作为action服务器,用于接收action请求并生成结果。 4. 在action_server.cpp中,包含自动生成的action接口头文件,并在main函数中创建一个相应的action服务器。 5. 在action服务器的回调函数中处理action请求,并根据需要更新并发送反馈消息。 6. 编写一个名为action_client.cpp的节点程序作为action客户端,用于向action服务器发送请求并获取结果。 7. 在action_client.cpp中,包含自动生成的action接口头文件,并在main函数中创建一个相应的action客户端。 8. 在action客户端的回调函数中发送action请求,并根据需要处理和显示从action服务器接收到的反馈消息和结果。 9. 使用colcon编译并运行action服务器和action客户端节点,观察是否可以成功进行action通信,并获取到相应的反馈和结果。 通过实现这个简单的demo,可以理解和体验ROS2中action通信的使用方法和优势,为自己更复杂的机器人任务处理和交互设计提供参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值