参考
Python创建简单的ROS节点:
- 用Python实现ROS节点(这里也说明了用Python写ROS功能包也是需要CMakelists.txt的)
https://blog.csdn.net/sinat_16643223/article/details/114057998
Python创建ROS节点(使用自定义消息):
- ROS学习笔记(十一) roscpp介绍(一)
https://blog.csdn.net/weixin_44682965/article/details/107748350
Python创建ROS服务(使用自定义消息):
- ROS学习笔记(十二) roscpp介绍(二)
https://blog.csdn.net/weixin_44682965/article/details/107767240
说明
与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()。
roscpp 和rospy的接口并不一致,实现原理上两套客户端库也有各自的实现,没有基于一个同意的核心库来开发,要避免混用。
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

:ros节点创建(python)&spm=1001.2101.3001.5002&articleId=118929762&d=1&t=3&u=9dbe2423872f4f5391aed564825b8097)
2532

被折叠的 条评论
为什么被折叠?



