承接上篇,上篇讲到,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的灵活使用,将可以更好的对机器人进行监测与控制。
那么,你准备好去探索了吗?
我国成功研制100G硅光收发芯片,推动我国自主硅光芯片技术快速发展
在层次化设计中必须要使用的ETM时序模型文件
5G将视频通信领域推到了风口浪尖
当手机拍照遇到人工智能
5G将会怎样影响银行
如何利用SLAMWARE ROS SDK进行机器人导航定位开发
云米发力“AI+5G+开放”,重新定义家电行业商业价值
1纳米晶体管诞生 摩尔定律有救?
不同规格芯片封装在一个芯片上的技术如何使半导体芯片发展走上新方向
蓝牙耳机设计简约大气,可以满足不同的场合使用
全石墨烯光通信链路为数据通信提供强大功能
考勤门禁系统分类构成及近几年行业产值规模情况分析
关于CRC硬件并行化运算的实现方法的探讨
车载音响12v接线图解
美国财政部长:支持美联储发行数字美元
应用于酒店的智能魔镜,将提供舒适的出行体验
哪些外界因素的干扰会影响到传感器信号的传输
威刚发布XPG龙耀高频内存,已突破5GHz
蓝牙模块安全指南:保护你的设备和数据
不可见光订单需求满载,亿光将进行扩充产能