0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

移动机器人的运行架构

新机器视觉 来源:古月居 2024-01-02 15:55 次阅读

移动机器人ROS架构分析

1.1小海龟仿真

ROS的核心概念不少,有节点、话题、消息、服务等,在实际机器人运行过程中,这些概念是如何体现的呢?

我们先来运行ROS系统一个经典的例程——小海龟。

请大家按照以下步骤进行操作。

1.首先,打开终端;

2.输入以下命令行,启动ROS Master:

$ roscore

3.启动成功后,打开一个新终端,输入以下命令行,启动小海龟仿真器,启动成功后,就会出现如图1-1所示的小海龟仿真器界面:

$ rosrun turtlesim turtlesim_node

4.再打开一个新的终端,输入以下命令行,启动海龟控制节点,大家可以通过键盘上上下左右键来控制小海龟运动:

$ rosrun turtlesim turtle_teleop_key

注意:在控制海龟运动的过程中一定要保证turtle_teleop_key节点终端在界面最前端的,如果其他终端在最前面就没有办法被终端读取到数据的。

小海龟功能是跑起来了,那这个例程是如何基于ROS的核心概念实现的呢?

接下来我们就分析一下例程背后的节点关系。

ea33ddb8-a943-11ee-8b88-92fbcf53809c.jpg

图1-1 小海龟仿真器界面

ea3c9552-a943-11ee-8b88-92fbcf53809c.jpg

图1-2 启动海龟仿真器节点

ea427f26-a943-11ee-8b88-92fbcf53809c.jpg

图1-3 启动海龟控制节点

这里我们将用到ROS中一个重要的可视化调试工具——rosgraph,用来显示ROS运行中计算图,我们可以从上帝视角看到所有节点的运行关系。

ea483ed4-a943-11ee-8b88-92fbcf53809c.jpg

图1-4 使用rqt_graph可视化工具查看系统中运行的计算图

接着上一个小海龟的例程,我们再来打开一个终端,输入以下命令行,启动rosgraph:

$ rqt_graph

启动完成后,即可看到如图1-4所示的计算图,这个界面会自动的监控当前运行的整个ROS系统,并且把里面的节点和节点间的关系动态的显示出来,其中椭圆表示节点,中间的箭头表示节点间的关系,箭头上的内容表示话题。

在这个例程中,我们分别启动了两个节点,一个是海龟仿真器,我们可以把它当成是一个虚拟的机器人,另外一个是键盘控制,用来控制机器人前后左右运动,两个节点在节点管理器的帮助下建立了数据通信,完成速度控制指令的传输。

1.2移动机器人运动控制

通过这个例程,我们需要理解节点在ROS中用来实现某些具体的功能,比如机器人的驱动、运动指令的发送等,节点之间可以通过话题将数据发送或接收。

小海龟毕竟是一个仿真的机器人,在实物机器人中是不是也类似呢,我们再来试一试。

接下来,我们来使用以下两句命令行启动LIMO机器人,并启动键盘控制节点,类似控制小海龟前后左右运动一样,我们也可以控制机器人运动。

$ roslaunch limo_base limo_base.launch
$ roslaunch limo_bringup limo_teletop_keyboard.launch

再打开rosgraph工具看一下节点关系,我们可以直观的发现,此时系统中运行了三个节点,如图1-5所示。

ea4ccabc-a943-11ee-8b88-92fbcf53809c.jpg

图1-5 使用rqt_graph可视化工具查看节点关系

第一个是和控制海龟运动相同的键盘控制节点teleop_keybord,用来读取键盘的输入键值,并封装成cmd_vel这个速度话题发布出去。

第二个节点是类似小海龟仿真器一样,用来驱动LIMO机器人的底盘控制节点limo_base_node,它会订阅速度指令,当收到数据后,就会驱动机器人发生运动了。

从这张图中,我们可以清晰的看到这两个节点和他们之间的关系,更多节点也是类似,如果未来使用过程中某一环的数据没收到,我们就可以快速定位原因了。

teleop_keybord:读取键盘动作,发布速度控制指令

limo_base_node:机器人底盘控制节点,包含PID算法控制电机运动、订阅/cmd_vel话题

以上案例实现的功能相对简单,在一个实现众多应用功能的复杂机器人系统中,节点和话题的数量都会很多,类似如图1-6所示这样,除了底层嵌入式运动控制器中需要实现的功能外,ROS环境下会通过一系列节点分别完成雷达、相机这些传感器的驱动,发布数据话题后,上层的导航、建图、图像处理节点来订阅并进行相应的算法处理,再传输到监控的计算机,给可视化节点做显示。每个节点各司其职,在ROS Master这个节点管理器的统一协调下,有条不紊的完成各项任务。

整个ROS运行中的节点就像一个企业中不同部门的员工,每个人都有自己明确的工作,大家共同在CEO的组织下积少成多,合作完成一项非常复杂的任务。当然,每个人都不能掉队,一旦掉队就可能会影响最终任务的完成。

ea505eca-a943-11ee-8b88-92fbcf53809c.jpg

图1-6 移动机器人运行结构分析







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 仿真器
    +关注

    关注

    14

    文章

    988

    浏览量

    82997
  • 移动机器人
    +关注

    关注

    2

    文章

    718

    浏览量

    33316
  • ROS
    ROS
    +关注

    关注

    1

    文章

    271

    浏览量

    16682

原文标题:【移动机器人原理与应用】3-移动机器人的运行架构

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    移动机器人常用传感器

    移动机器人常用传感器
    发表于 08-20 22:33

    资料:移动机器人能否自动充电?

    、餐饮服务行业已经应用到了机器人。不过目前,移动机器人都是使用高质量的机载可充电蓄电池组来给自身供电,但是一般只能维持几个小时,一旦电能耗尽,必须采用人工干预的方式来给机器人充电。如果采用人工充电,那么
    发表于 01-20 09:39

    Labview My RIO 移动机器人

    初次使用 NI MyRIO控制器开发四轮全向移动机器人,由四个全向轮和直流电机与增量式编码器和NI 9001控制器组成,安装了红外距离和光电传感器。驱动板由官方提供的H桥驱动板。NI 9001由
    发表于 08-21 12:20

    履带式移动机器人的设计

    作为一个技术宅,我对机器人和单片机很感兴趣。在这里我把自己做过的一款履带式移动机器人的资料分享给大家。欢迎大家吐槽!同时也希望对做机器人的同学有帮助。 该机器人采用STM32F103R
    发表于 07-27 18:28

    机器人、协作机器人移动机器人,你分的清楚吗

    我觉得现在是时候讨论一些更有趣的话题,今天的话题是介绍工业机器人、协作机器人移动机器人。我想每个人都知道机器人是什么。机器人是可怕的大型
    发表于 10-30 11:33

    labview控制移动机器人

    有使用labview控制移动机器人的大佬嘛,在下需要一些myrio资料的讲解,希望各位伸出援助之手,拉小弟一把,感激不尽。
    发表于 03-21 15:12

    家庭移动机器人避障常用传感器及相关技术

    移动机器人机器人的重要研究领域,人们很早就开始移动机器人的研究。世界上第一台真正意义上的移动机器人是斯坦福研究院(SRI)的人工智能中心于1966年到1972年研制的,名叫Shake
    发表于 05-14 08:15

    如何实现移动机器人的设计?

     移动机器人利用导航技术,获得机器人的目前所处的位置,结合传感器技术对周围外界环境(障碍物等)作实时探测,并根据环境提供的信息规划一条可行路径完成达到目标点的任务。移动机器人技术涉及到传感器技术
    发表于 11-23 15:08

    请问怎么设计一种室外移动机器人组合导航定位系统?

    怎么设计一种室外移动机器人组合导航定位系统?如何实现室外移动机器人组合导航定位系统的硬件设计?如何实现室外移动机器人组合导航定位系统的软件设计?
    发表于 04-19 10:50

    什么是移动机器人软硬件系统问题

    接触了移动机器人这么久,我觉得应该写点什么东西,分享一下最基础的自己关于移动机器人的理解,也作为笔记总结,留到以后查阅。目前我还是觉得自己刚入门,有时候总想的太多,不如实践来的更直接,下面总结之前
    发表于 08-06 06:13

    差速移动机器人轨迹跟踪控制方法

    差速移动机器人轨迹跟踪控制方法一、引言二·、基础准备1.去除GPS数据中的坏点2.经纬度与平面坐标系转换3.差速移动机器人数学建模三、基于PID的差分移动机器人轨迹跟踪方法1、控制律设计2、航向角
    发表于 09-01 08:41

    移动机器人的三种主要运动系统

    构建机器人 | 制作移动机器人 | 构建第一个机器人 | 机器人电子 | 机器人控制器 | 机器人
    发表于 09-01 08:12

    详解移动机器人软硬件系统问题

    什么是移动机器人软硬件系统问题?移动机器人软硬件系统有哪些问题呢?
    发表于 11-11 06:07

    【科普】干货!带你从0了解移动机器人(三) ——自主导航系统及上位机软件设计与实现

    随着机器人技术的不断发展,我们可以在许多简单重复,危险的岗位上看到机器人的身影,移动机器人凭借其在复杂环境下工作,具有自行感知、自行规划、自我决策功能的能力,它可以在不同的环境中移动
    发表于 06-28 09:36

    基于Matlab和VR技术的移动机器人建模及仿真

    利用 Matlab 建立移动机器人的动力学模型 ,在虚拟现实 (VR )环境下 ,实时仿真移动机器人路径跟踪的运动特性 ,为基于 Internet 的机器人遥操作试验搭建了仿真平台 。 实验结果表明
    发表于 09-20 06:24