ROS入门(一):如何写一个最简单的收发程序

这篇博客记录了作者学习ROS编程的过程,重点介绍了如何使用rospy库编写简单的收发程序。从创建ROS包开始,详细讲解了编写Python代码实现发布者和订阅者节点,以及编译、运行和检查节点状态的步骤。通过分析示例1_talker_listener,解释了发布者和订阅者节点的区别。最后,提到了一些用于检查ROS网络状态的命令工具。
摘要由CSDN通过智能技术生成

最近入门ROS编程,希望记录一下学习过程以便后期复习。也希望对于一些刚入门的朋友有所帮助。

我入门教材使用的是Anil Mahtani等人写的《ROS机器人高效编程》以及ROBOTIS公司Turtlebot3开发人员YoonSeok Pyo等写的《ROS ROBOT PROGRAMING》。前者对与ROS的框架介绍得比较精要,系统性更好,后者在对ROS的发展和版本等信息的介绍则更清晰。如果在Ubuntu系统中安装ROS,建议参考Turtlebot3人员写的那本,他们将系统设置集成为一个脚本,安装更简单。书中也对脚本中的内容进行了详细的介绍。

都说从实践中学习,首先我们参考《ROS机器人高效编程》进行一些简单的实验。这本书采用的是C++语言编程,虽然ROS将一些基本的类和功能都封装得比较好,不会涉及太底层的计算,但C++节点需要写CMake文件进行编译,后期复杂项目的编程复杂度估计还是要比python高,这里还是用rospy来进行编程。

其实ROS安装的时候在/opt/ros/kinetic/share/rospy_tutorials中有很多示例程序。在ROSPY的官网ROSPYROSPY官方指南也有很清晰的教程。这里使用示例1进行实验并分析其中的代码。

1. 在catkin_ws中创建包

打开终端(ctrl+alt+T) 并进入catkin_ws的目录
$sudo catkin_create_pkg ros_newto_example rospy cv_bridge

catkin_create_pkg函数的template

catkin_create_pkg [pkg name] [dependency 1]…

2. 编写代码 (python)

找到示例文件

$ roscd rospy_tutorials

分析001_talker_listener(publisher_subscriber)

第一个示例涉及两个节点:1个发布者(talker/publisher)及1个订阅者(listener/subscriber)

talker代码:

#!/usr/bin/env python
import rospy
from std_msgs.msg import String

def talker():
    pub = rospy.Publisher('chatter', String, queue_size=10)
    rospy.init_node('talker', anonymous=True)
    rate = rospy.Rate(10) # 10hz
    while not rospy.is_shutdown():
        hello_str = "hello world %s" % rospy.get_time()
        rospy.loginfo(hello_str)
        pub.publish(hello_str)
        rate.sleep()

if __name__ == '__main__':
    try:
        talker()
    except rospy.ROSInterruptException:
        pass

talker的设计思路是:

Created with Raphaël 2.1.2
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值