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

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

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

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

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

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

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

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

响应的新闻参数如下:

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

在行使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,发布的新闻类型是自界说类型,点击可查察类型构造信息。

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

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

(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. 1 肛门湿疹用什么药膏(肛门湿疹用什么药膏最有效还最便宜)

    大家好,小豪今天来为大家解答肛门湿疹用什么药膏以下问题,肛门湿疹用什么药膏最有效还最便宜很多人还不知道,现在让我们一起来看看吧!1、

  2. 2 期货是什么交易模式(期货交易是啥意思)

    大家好,小豪今天来为大家解答期货是什么交易模式以下问题,期货交易是啥意思很多人还不知道,现在让我们一起来看看吧!1、是的。

    2、一、什

  3. 3 员工过节费要交个税吗(员工过节费要交个税吗)

    大家好,小伟今天来为大家解答员工过节费要交个税吗以下问题,员工过节费要交个税吗很多人还不知道,现在让我们一起来看看吧!1、法律分析:

  4. 4 单位净值和年化收益率(单位净值和年化收益率换算)

    大家好,小美今天来为大家解答单位净值和年化收益率以下问题,单位净值和年化收益率换算很多人还不知道,现在让我们一起来看看吧!1、购买财

  5. 5 股权转让协议印花税纳税时间(股权转让协议印花税优惠政策50)

    大家好,小乐今天来为大家解答股权转让协议印花税纳税时间以下问题,股权转让协议印花税优惠政策50很多人还不知道,现在让我们一起来看看吧!

  6. 6 甲状腺疾病(甲状腺疾病都有哪些种类)

    大家好,小伟今天来为大家解答甲状腺疾病以下问题,甲状腺疾病都有哪些种类很多人还不知道,现在让我们一起来看看吧!1、甲状的全称是甲状腺

  7. 7 我本将心向明月全诗译文(《我本将心向明月》)

    大家好,小豪今天来为大家解答我本将心向明月全诗译文以下问题,《我本将心向明月》很多人还不知道,现在让我们一起来看看吧!1、我本将心向

  8. 8 坚持就是胜利的名言(坚持就是胜利的名言句子)

    大家好,小娟今天来为大家解答坚持就是胜利的名言以下问题,坚持就是胜利的名言句子很多人还不知道,现在让我们一起来看看吧!1、人生恰恰像

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