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

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

3天内不再提示

如何利用SLAMWARE ROS SDK进行机器人导航定位开发

领衔资讯 2019-10-30 09:16 次阅读

承接上篇,上篇讲到,SLAMWARE ROS SDK的发布,既可以让用户在机器人开发中实现使用SLAMWARE提供的建图、定位和导航功能,又能保留原先基于ROS开发的应用逻辑,一举两得。

今天,小岚就来践行上篇的承诺,带大家体验一下如何利用SLAMWARE ROS SDK进行业务开发。

我们先从机器人的移动开始说起。

一、键盘控制 (前后左右移动)

还记得ROS中最经典的turtlesim(http://wiki.ros.org/turtlesim/)吗?案例中启动turtle_teleop_key节点就可以通过键盘方向键控制小海龟移动了。

但是,用户拿到我们基于SLAMWARE的机器人或者建图雷达产品,一开始在RViz中显示的只是一张地图信息,想要用键盘控制机器人移动方向,发现并不奏效?

这时候,参阅SLAMWARE ROS SDK开发文档可以发现, slamware_ros_sdk_server_node订阅了【方向移动】的标准类型topic,也就是说,想要实现利用键盘控制“机器人”,我们只需编一个节点接收键盘信息,当收到键盘信息后往该topic发对应的指令消息即可。

相应的消息参数如下:

在利用sdk进行键盘控制的时候,开发的主要重点有以下几个,小岚已经帮大家罗列好了:

1、定义键盘按钮

2、定义pub,制定消息topic及消息类型

3、初始化节点

这些都操作完成之后,当按下的按键在之前定义的案件keys中时,将对应的值赋给linearX,angularZ。

4、根据topic所需类型组装发布消息

至此,利用键盘控制机器人的部署已经完成,完成这一步的小伙伴可以分别启动slamware_ros_sdk_server_node与teleop_twist_keyboard节点试一下【前后左右】移动 。

下面,我们进一步深入了解导航定位这个问题。大家都知道,思岚有一款可扩展的机器人管理与开发软件 —— RoboStudio,里面集成了机器人运动及控制开发各项功能,可以对移动机器人发送指令,实现对机器人的可视化监控。

那,如何让ROS实现Robostudio同样的功能呢?

二、导航定位

1、导航定位

SLAMWARE ROS SDK的发布,使得所有基于SLAMWARE的机器人的定位和地图信息都可以在RViz中显示。有了地图之后,我们可以点击任意位置,机器人会自动规划一条最佳路线移动到目的地。

2、虚拟墙/虚拟轨道

对于思岚来说,除了自主定位导航技术之外,还有一大特点功能就是基于纯软件设置的虚拟墙/虚拟轨道,不需任何实物铺设,灵活控制机器人活动范围。这个在实际应用场景中有很大的意义。

下面,我们就开始上手实验吧~

首先,先找到文档中的【virtual_walls】这个topic,发布的消息类型是自定义类型,点击可查看类型结构信息。

同样的,小岚给大家画了一下重点:

(1)初始化节点、定义publisher与subscriber对象

(2)全局定义了一个Marker类型,lines用以存储发布虚拟墙

(3)接收到slamware_ros_sdk_server_node节点发来的虚拟墙消息后,保存到lines中

(4)配置lines,如:类型、尺寸和颜色等

(5)将lines发布出去

部署完之后,我们分别启动slamware_ros_sdk_server_node, view_slamware_ros_sdk_server_node和display_virtual_lines节点。

此时,在RViz中需要配置添加Marker信息,先找到在RViz中点击左下角【Add】按钮。

选择添加【Marker】显示对象。

添加完成之后,我们继续在参考文档中找到【add_ lines】这个topic,然后我们就可以自定义。点进去查看自定义类型的组成与描述:线段类型、添加位置、以及相关定义

启动slamware_ros_sdk_server_node节点,连上机器人,然后在命令行中输入:

rostopic pub /slamware_ros_sdk_server_node/add_line slamware_ros_sdk/AddLineRequest -1 -- '[0]' '[1, [0.0, 0.0], [1.0, 1.0]]'

此时,我们就可以在Rviz中看见虚拟墙了。

那要如何删除呢?同理,我们找到clear_lines节点信息,在命令行输入相应代码即可:

rostopic pub /slamware_ros_sdk_server_node/clear_lines slamware_ros_sdk/ClearLinesRequest -1 '[0]'

虚拟轨道功能开发亦是如此。

……以上,仅为SLAMWARE ROS SDK中功能两个简单功能的演示。控制机器人运动状态、转向、旋转角度、地图同步、清空地图等topic的灵活使用,将可以更好的对机器人进行监测与控制。

那么,你准备好去探索了吗?

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

    评论

    相关推荐

    SLAM:机器人如何在未知地形环境中进行导航

    作者: Aswin S Babu 设想一下,当我们困在一个陌生的沙漠中时,所面临的艰巨任务是寻找一条安全之路。长期以来,在陌生地形中导航一直是人类和机器人共同面临的难题。用于机器人或自动驾驶汽车
    的头像 发表于 10-02 16:37 370次阅读

    精准定位,激光领航——激光跟踪仪助力服务机器人性能提升

    随着人工智能和机器人技术的快速发展,服务机器人在各行各业得到了广泛应用,服务机器人能够自主完成各种服务任务,如导航、搬运、清洁等,为保证服务机器人
    的头像 发表于 07-26 14:27 519次阅读
    精准<b class='flag-5'>定位</b>,激光领航——激光跟踪仪助力服务<b class='flag-5'>机器人</b>性能提升

    ROS机器人开发更便捷,基于RK3568J+Debian系统发布!

    的快速发展,智能机器人设备已成为工业自动化体系的佼佼者,而智能机器人设备核心—ROS系统,是机器人领域的集大成者,主要应用于机器人控制领域,
    发表于 07-09 11:38

    Al大模型机器人

    金航标kinghelm萨科微slkor总经理宋仕强介绍说,萨科微Al大模型机器人有哪些的优势?萨科微AI大模型机器人由清华大学毕业的天才少年N博士和王博士团队开发,与同行相比具有许多优势:语言
    发表于 07-05 08:52

    机器人高效导航定位背后SLAM专用芯片的崛起

    电子发烧友网报道(文/李宁远)对移动机器人来说,导航定位是最基本最核心的功能之一,机器人自主移动能力建立在出色的导航
    的头像 发表于 05-28 00:20 3373次阅读

    其利天下技术·搭载无刷电机的扫地机器人的前景如何?

    已经取得了显著的进步,但在技术层面仍存在一些壁垒需要突破。首先,机器人导航定位技术仍有提升空间,特别是在复杂家居环境中的精准导航和避障能力还需加强。其次,扫地
    发表于 05-05 15:03

    SLAMWARE ROS SDK的基础架构、部署方法和应用示例介绍

    ROS作为机器人行业应用最广泛的基础架构之一,是很多用户开发机器人应用的首选框架,如果要在基于ROS开发
    的头像 发表于 03-21 10:44 850次阅读
    <b class='flag-5'>SLAMWARE</b> <b class='flag-5'>ROS</b> <b class='flag-5'>SDK</b>的基础架构、部署方法和应用示例介绍

    移动机器人ROS操作系统原理与应用

    ROS1不同的是,ROS2诞生的目的就是为了让更多机器人使用,所以在设计上更加符合技术的发展方向,也运用了很多最近的技术框架。
    发表于 01-02 12:28 536次阅读
    移动<b class='flag-5'>机器人</b>与<b class='flag-5'>ROS</b>操作系统原理与应用

    工业机器人由哪些部分组成?

    工业机器人需要依靠各种传感器来获取周围环境的信息,以便进行正确的定位导航和避障等任务。
    发表于 12-29 10:55 1108次阅读
    工业<b class='flag-5'>机器人</b>由哪些部分组成?

    使用 NVIDIA Isaac 仿真并定位 Husky 机器人

    了 ZED 2 摄像头。驾驶 Husky 机器人使用的是 Isaac ROS 2 的最新版本,其中包括用于机器人定位(NVIDIA Isaac ROS VSLAM)、地图构建(NVID
    的头像 发表于 12-26 18:05 1258次阅读
    使用 NVIDIA Isaac 仿真并<b class='flag-5'>定位</b> Husky <b class='flag-5'>机器人</b>

    LabVIEW的六轴工业机器人运动控制系统

    环境中,对机器人进行了正逆运动学仿真测试。接着,对单轴和多轴伺服系统进行了控制测试,最终实现了机器人的轨迹规划实体控制。 在整个项目中,LabVIEW的功能被充分
    发表于 12-21 20:03

    ROS机器人如何使用Navigation导航包实现实时定位

    本篇文章主要分析,常规的ROS机器人是如何使用Navigation导航包实现实时定位的,定位精度的决定性因素等内容,结构上分为详细介绍、概括
    的头像 发表于 12-03 11:00 2723次阅读
    <b class='flag-5'>ROS</b><b class='flag-5'>机器人</b>如何使用Navigation<b class='flag-5'>导航</b>包实现实时<b class='flag-5'>定位</b>

    ROS机器人开发更便捷,基于RK3568J+Debian系统发布!

    ROS系统是什么 ROS(Robot Operating System)是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递
    的头像 发表于 11-30 16:29 497次阅读
    <b class='flag-5'>ROS</b>让<b class='flag-5'>机器人</b><b class='flag-5'>开发</b>更便捷,基于RK3568J+Debian系统发布!

    ROS机器人开发更便捷,基于RK3568J+Debian系统发布!

    领域的集大成者,主要应用于机器人控制领域,如AGV工业机器人控制器、智能机械臂控制器、机器人导航系统等。 ROS系统主要特点有哪些 (1)
    发表于 11-30 16:01

    机器人ROS模型建立

    这个系列主要介绍机器人ROS模型的建立方法,ROS系统带来的好处之一就是: 我们无需自己建立复杂的数学模型来描述自己的机器人几何尺寸、运动学和动力学等,只需要用它提供的模型描述方法即可
    的头像 发表于 11-28 14:19 574次阅读