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

SLAMTEC思岚科技 SLAMTEC思岚科技

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

今天,小岚就来践行上篇的承诺,带人人体验一下若何行使SLAMWARE ROS SDK进行买卖斥地。

我们先从机械人的移动起头说起。一、键盘掌握 (前后摆布移动)

然则,用户拿到我们基于SLAMWARE的机械人或许建图雷达产物,一起头在RViz中显露的只是一张地图信息,想要用键盘掌握机械人移动偏向,发现并不奏效?

这时候,参阅SLAMWARE ROS SDK斥地文档能够发现, slamware_ros_sdk_server_node订阅了【偏向移动】的尺度类型topic,也就是说,想要实现行使键盘掌握“机械人”,我们只需编一个节点领受键盘信息,当收到键盘信息后往该topic发对应的指令新闻即可。

响应的新闻参数如下:

在行使sdk进行键盘掌握的时候,斥地的首要重点有以下几个,小岚已经帮人人枚举好了:

1、界说键盘按钮

moveBindings = {

'w':(1.0, 0.0),

's':(-1.0, 0.0),

'a':(0.0, 1.0),

'd':(0.0, -1.0)

}

2、界说pub,制订新闻topic及新闻类型

pub = rospy.Publisher('/cmd_vel', Twist, queue_size = 1)

3、初始化节点

rospy.init_node('teleop_twist_keyboard')

这些都把持完成之后,当按下的按键在之前界说的案件keys中时,将对应的值赋给linearX,angularZ。

key = getKey()

if key in moveBindings.keys():

linearX = moveBindings[key][0]

angularZ = moveBindings[key]

else:

linearX = 0.0

angularZ = 0.0

if (key == '\x03'):

break

4、凭据topic所需类型组装发布新闻

twist = Twist()

twist.linear.x = linearX

twist.angular.z = angularZ

pub.publish(twist)

至此,行使键盘掌握机械人的布置已经完成,完成这一步的小伙伴能够离别启动slamware_ros_sdk_server_node与teleop_twist_keyboard节点试一下【前后摆布】移动 。

下面,我们进一步深入认识导航定位这个问题。人人都知道,思岚有一款可扩展的机械人治理与斥地软件 —— RoboStudio,里面集成了机械人活动及掌握斥地各项功能,能够对移念头器人发送指令,实现对机械人的可视化监控。

那,若何让ROS实现Robostudio同样的功能呢?二、导航定位

1、导航定位

SLAMWARE ROS SDK的发布,使得所有基于SLAMWARE的机械人的定位和地图信息都能够在RViz中显露。有了地图之后,我们能够点击随意位置,机械人会主动规整齐条最佳路线移动到目的地。具体的演示如下:

2、虚拟墙/虚拟轨道

对于思岚来说,除了自立定位导航手艺之外,还有一大特点功能就是基于纯软件设置的虚拟墙/虚拟轨道,不需任何实物铺设,天真掌握机械人运动局限。这个在实际应用场景中有很大的意义。

下面,我们就起头上手实验吧~

首先,先找到文档中的【virtual_walls】这个topic,发布的新闻类型是自界说类型,点击可查察类型构造信息。

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

(1)初始化节点、界说publisher与subscriber对象

ros::init(argc, argv, "display_virtual_lines");

ros::NodeHandle n;

ros::Publisher pub = n.advertise

("visualization_marker", 10);

ros::Subscriber sub = n.subscribe

("/slamware_ros_sdk_server_node/virtual_walls", 30, virtualWallCallback);

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

visualization_msgs::Marker lines;

(3)领受到slamware_ros_sdk_server_node节点发来的虚拟墙新闻后,留存到lines中

void virtualWallCallback(const slamware_ros_sdk::Line2DFlt32Array::ConstPtr & msg)

{

lines.points.clear();

size_t cnt = msg->lines.size();

for (size_t i = 0; i

lines.size(); ++i)

{

geometry_msgs::Point p1;

p1.x = msg->lines[i].start.x;

p1.y = msg->lines[i].start.y;

p1.z = 0.2;

geometry_msgs::Point p2;

SLAMTEC思岚科技微信号:暂无扫描二维码关注公众号
爱八卦,爱爆料。
小编推荐
  1. NO.1 搞笑GIF: 小孩裤子都掉了 还在坚持锻炼运动!

    单身久了竟然被一个孩子撩到了 狗狗:谁来救救我 美女,你笑得好邪恶啊 小伙裤子都掉了,还在坚持锻炼运动

  2. NO.2 铲屎官让二哈帮忙带下孩子,结果回家一看,气得想卖狗

    虽然我们总说哈士奇又蠢又二,但其实人家也有暖心的一面啦,比如说国外这位博主家的哈,就是个贴心的小保姆嘞~ 宝宝回家第一天,就好奇的不得

  3. NO.3 搞笑GIF开心一刻:刚打算出门,一小孩在我车前蹦来蹦去

    为了吃饼干不把口红吃掉,妹子也是拼了! 孩子:爸爸,我不喜欢这双鞋! 鹦鹉:小样,来学学这个 小伙子,我觉得你要挨打了 从此不再是一个人

  4. NO.4 十条段子:和你谈恋爱是因为你丑,让我有安全感!

    1老爸疼我姐,给她买了好多零食,而我这做儿子的只能干瞪眼!其实我也渴望关心,让他别忽略我,于是对他说:爸,其实你还有一个儿子的!老爸

  5. NO.5 搞笑GIF:上语文课老师提问:“小明,请你说说‘有备

    老虎哥你赶紧跑啊!没听过扮猪吃老虎吗? 纸箱原来是这么做出来的,两个人操作一个机器,这个是不是有点浪费人力啊 精选内涵段子 1.上语文课老

  6. NO.6 爸爸姓胡,妈妈姓罗,老师点完儿子的姓名,全班笑个不停

    现在有很多孩子的名字很奇葩,让不少人觉得奇怪。以前大家的名字还挺正常的,家长会为了给孩子起个好名字绞尽脑汁。现在许多家长都受过高等

  7. NO.7 搞笑GIF:同事儿子来单位玩,几个二货就开始问:“你

    孩子干嘛一副高潮满足的样子啊? 千万别带孩子结婚,容易吐奶! 一秒植发! 精选内涵段子 1.同事儿子来单位玩,几个二货就开始问:“你爸爸晚

  8. NO.8 男朋友中了彩票, 跟我发消息说:我们分了吧

    男朋友中了五百万 跟我发消息说:我们分了吧! 我开心的点了点头 过了好几天我才知道他说的不是分钱。 这么多年被人说脸大已经习惯了,可刚才

Copyright 2019 看看网,让大家及时掌握各行各业第一手资讯新闻!