ros学习(2-2):ros节点创建(python)

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

参考

Python创建简单的ROS节点:

Python创建ROS节点(使用自定义消息):

Python创建ROS服务(使用自定义消息):



说明

与C++代码区别:

  • rospy没有NodeHandle。
    rospy创建和初始化一个node,不再需要NodeHandle(rospy没有设计NodeHandle这个句柄)
  • 创建publisher、subscriber等操作被直接封装成了rospy中的函数或类,调用简单。
    创建topic、service等操作都直接用rospy里对应的方法即可。
  • rospy节点的初始化不一定必须放在开头,在Publisher建立后再初始化也可以。
  • 消息的创建更加简单。自定义类型的消息可以用类似于构造函数的方式创建。
    例如:自定义gps类型的消息可以直接用类似与构造函数的方式gps(state,x,y)创建。
  • 日志的输出方式不同,C++是ROS_INFO(),Python中为rospy.loginfo()。
    判断节点是否关闭的函数不同,C++为ros::ok(),Python为rospy.is_shutdown()。

roscpprospy的接口并不一致,实现原理上两套客户端库也有各自的实现,没有基于一个同意的核心库来开发,要避免混用。

ROS2就解决了这一问题,ROS2中的客户端库有rclcpp(ROS Client Library C++)、rclpy(ROS Client Library Python)和其他语言版本,都是基于一个共同的核心ROS客户端库rcl开发(核心库由C语言实现)。


编写的python文件在执行前需要修改为可运行的节点

sudo chmod +x (文件名.py)

01 创建节点

在编写程序前,需要创建工作空间,然后在工作空间的src文件夹下创建功能包

功能包的创建可以使用如下指令:(我的功能包名称为is_a_test,后面的是相关的依赖项)

catkin_create_pkg is_a_test std_msgs

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值