如何编写ros的python程序
发布时间:2025-05-22 20:20:57 发布人:远客网络
一、如何编写ros的python程序
ROS Indigobeginner_Tutorials-10编写ROS话题版的Hello World程序(Python版)
我使用的虚拟机软件:VMware Workstation 11
使用的Ubuntu系统:Ubuntu 14.04.4 LTS
Hello world程序,在我们编程界,代表学习某种语言编写的第一个程序。对于ROS机器人操作系统来说,这个Hello World程序就是:写一个简单的消息发布器(发送)和订阅器(接收)。
C++的程序都会存放在每个程序包的src文件夹里。Python不同,Python程序都存放在scripts文件夹中,反正意思都是源文件包。
Step 1.所以,先在beginner_tutorials软件包中创建一个scripts文件夹:
$ roscd beginner_tutorials$ mkdir scripts$ cd scripts123
如果你懒得去写的话,你可以使用wget命令,在github上获取一个talker.py源代码。如何获取呢?
Step 2.开一个终端,输入下面的命令就可以获取talker.py:
-devel/rospy_tutorials/001_talker_listener/talker.py$ ls
但是我建议你亲自动手,写一写:手动创建一个talker.py文件在/scripys文件夹里:
$ roscd beginner_tutorials/scripts$ gedit talker.py12
将这上面链接里的代码手动输入到talker.py文件中。(我就不将代码贴上来了)
Step 3.最后一步,给这个talker.py文件加上可执行权限:
这样,一个发布器就编写完了。我们不要急着去运行它,现在我们编写一个订阅器,来接收这个发布器发布的话题:
Step 4.和发布器一样,我们使用wget命令获取订阅器的源代码listener.py:
$ roscd beginner_tutorials/scripts/$ wget
ials/indigo-devel/rospy_tutorials/001_talker_listener/listener.py$ ls
但是,我还是建议你自己动手写一下。
好吧,下面我们开始讲解listener.py里面的代码,这个listener.py程序的代码简单:
Step 5.最后不要忘了给这个listener.py加可执行权限:
对于python来说,我们不需要使用catkin_make命令对~/catkin_ws工作空间进行编译。因为python文件本身就是可执行文件(前提是我们给它添加可执行权限)。
OK,发布器和订阅器都创建完了。下面我们运行它们,看看效果:
Step 6.新打开一个终端,先执行roscore命令:
Step 7.新打开一个终端,启动发布器:
$ rosrun beginner_tutorials talker.py 1
Step 8.新打开一个终端,启动订阅器:
$ rosrun beginner_tutorials listener.py 1
Step 9.我们来使用rostopic list,看看当前的话题有哪些:
其中/chatter就是我们在发布器里面发布的ROS话题。
6.扩展,编写一个启动脚本文件:
还记得上一节,我们讲的ROS的启动脚本文件吧,下面我们来编写一个launch文件,来将talker.py和listener.py文件的启动工作交个这个launch文件来做:
Step 10.来到beginner_tutorials程序包的/launch路径下,新建一个hello_world_topic.launch文件:
$ roscd beginner_tutorials/launch$ gedit hello_world_topic.launch#使用你自己喜欢的文本编辑器12
<node pkg="beginner_tutorials" name="talker" type="talker.py"/>
<node pkg="beginner_tutorials" name="listener" type="listener.py"/></launch>1234
Step 12.现在,将之前打开的终端都关闭,我们启动这个脚本:(开一个终端:Ctrl+Alt+T)
$ roslaunch beginner_tutorials hello_world_topic.launch1
上面截图的输出显示:talker.py和listener.py脚本运行成功。但是并没有出现刷屏的现象。这是为什么?为了证明这个脚本程序真的成功的运行了,我们来试一试:
Step 13.重新开一个终端,输入下面的命令:
$ rosrun list$ rostopic list$ rostopic echo/chatter123
Step 14.现在Ctrl+C结束监听/chatter话题。使用rqt_graph对当前启动的节点可视化:
这些足以说明,hello_world_topic.launch启动脚本文件,启动成功。
总结:发布器和订阅器是很简单的,就是简单的发布一个自定义的话题。
我之前使用说过:节点之间通讯的方式有两种:话题(rostopic)和服务(rosservice)
所以,接下来,我们会讲:使用ROS服务来完成ROS版Hello World程序的例子。但是在这之前,我们需要学一学:如何创建自定义的ROS消息和ROS服务,以便ROS服务版的Hello World程序的编写。
所以下一讲,我们来学习:如何创建自定义的ROS消息和ROS服务。
二、ros怎么学习
说起ROS,可能大家现在或多或少都有所了解。现如今世界机器人发展之迅猛犹如几十年前计算机行业一样,机器人也逐渐进入到千家万户,大到工业机器人,小到家用的服务型机器人,各式各样,为各种人们生活所需的机器人以计算机技术的发展为基础的机器人也是如雨后春笋。机器人可主要分为硬件层和软件层两个大的主要方向。每一种类型的机器人都需要以硬件的实际情况编写符合用户需要的功能,渐渐的人们发现,这样的机器人代码的复用率很低,大大阻碍了机器人的发展。因此ROS便是为机器人在研发的过程中的代码复用提供支持.ROS是Robot Operating Syetem(机器人操作系统)的简称.ROS开始于2007年,在斯坦福大学人工智能实验室斯坦福AI机器人项目的支持下开发了ROS。从2010年3月2日发布的第一版ROS Box Turtle至今(截止到2018年8月)已有12个版本。其中三个长期支持版本,并对应着的Ubuntu的的三个LTS版本具体如下:
ROS版本发行时间截止支持时间对应的Ubuntu的的版本
ROS Indigo 2014年7月22 2019年4月 Ubuntu 14.04
ROS Kinetic 2016年5月23 2021年4月 Ubuntu 16.04
ROS Melodic 2018年5月23 2023年4月 Ubuntu 18.04
ROS支持的Python,C++,JAVA等编程语言。因为ROS主要支持Ubuntu的操作系统,因此本教程也是在Ubuntu的系统下安装的。这里比较建议安装的Ubuntu系统或者的Windows的双系统,这样可以更便于ROS学习接下来为大家详细讲解ROS的安装。
一,Ubuntu安装:Ubuntu现在的最新版本是18.04。而相对更为稳定的,并且参考学习博文较多的是16.04版本的。下面附上Ubuntu 16.04的镜像源.https://mirrors.tuna.tsinghua.edu.cn/ help/ ubuntu/。这里需要注意的是需要选择版本为16.04的。这里给大家一个比较详细的在Windows系统下安装的博客 3&wd= ubuntu%20Windows%CB%AB%CF%B5%CD%B3。
二,Ubuntu的的系统装好了,接下来就进入我们今天的正题ROS系统的安装。
三、ros是什么简称
1、ROS是一个适用于机器人编程的框架,它起源于斯坦福大学的人工智能与机器人项目,并由柳树车库公司进一步发展与完善。ROS的设计目标是简化机器人开发过程中的复杂度和提高软件复用率。它通过提供一个分布式、模块化的通信架构,使得机器人系统中的各个组件能够高效地协同工作。
2、ROS的核心思想是将机器人系统分解为多个可独立运行、可相互通信的节点。每个节点负责执行特定的功能,如传感器数据采集、运动控制、路径规划等。这些节点之间通过发布/订阅的方式进行消息传递,实现信息的共享与协同处理。此外,ROS还提供了丰富的工具软件包和库文件,以支持机器人开发者在构建复杂机器人应用时的各种需求。
3、举例来说,ROS在机器人导航领域有着广泛的应用。通过利用ROS提供的SLAM算法,机器人能够在未知环境中自主地进行地图构建与定位。此外,ROS还支持路径规划与运动控制算法的实现,使得机器人能够根据目标位置和环境信息计算出最优路径,并实现精确的运动控制。
4、总的来说,ROS作为一个开源的机器人操作系统,为机器人开发者提供了一个强大而灵活的软件平台。它通过简化机器人开发过程中的复杂度和提高软件复用率,极大地推动了机器人技术的发展与应用。