使用Galileo SDK跨局域网遥控机器人

2023-05-16

原链接

GalileoSDK是由我们开发的机器人导航系统SDK。通过SDK用户能够方便的操控机器人。现在小强用户已经可以免费体验到SDK的功能了。SDK内部集成了物联网连接功能。设置完成后用户能够通过SDK跨局域网遥控和获取机器人状态。下面介绍物联网功能的配置方法。

首先获取自己机器人的ID
在机器人上执行

bwgetid

会有如下输出

在这里插入图片描述

这一长串字符串就是你的ID

然后向 http://iot.bwbot.org/api/device发送post数据,内容为此ID。

比如利用curl

curl -H "Content-Type: application/json" -X POST -d '"8FB56D27D6C961E9036F62182ADE9544D71E23C31E5DF4C7DD692B9E4296A131434B1066D365"' http://iot.bwbot.org/api/device

返回如下

{"status":"OK","description":"q2x9TeimxvuQh3UYpy1jD4729ac3QldX"}

description中的这一长串字符串就是你的物联网客户端密码,我们需要将其复制到system_monitor的IOT_SECRET中。然后在startup/launch/startup.launch中添加iot节点。默认startup中是没有iot节点的。

<node pkg="system_monitor" type="iot_client.py" name="iot_client" respawn="true" respawn_delay="10"/>

这样机器人端已经设置完成。剩下的就是写一个物联网连接程序了。下面是一个c++的例子

#include "GalileoSDK.h"
#include "galileo_serial_server/GalileoStatus.h"

#ifndef _WIN32
void Sleep(uint64_t miliseconds)
{
    usleep(miliseconds * 1000);
}
#endif

void testIOTSetSpeed()
{
    connected = false;
    GalileoSDK::GalileoSDK sdk;
//通过物联网连接机器人,第一个参数是机器人id,第二个参数是连接超时时间,第三个为机器人密码由[system_monitor中的 IOT_PASSWORD](https://github.com/BluewhaleRobot/system_monitor/blob/kinetic_service_bot/utils/config.py#L49)指定,最后是连接回调函数和离线回调函数。
    if (sdk.Connect("8FB56D27D6C961E9036F62182ADE9544D71E23C31E5DF4C7DD692B9E4296A131434B1066D365", 10000, "xiaoqiang", NULL, NULL) != GalileoSDK::GALILEO_RETURN_CODE::OK)
    {
        std::cout << "Connect to server failed" << std::endl;
    }
    while (true)
    {
        galileo_serial_server::GalileoStatus status;
        sdk.GetCurrentStatus(&status);
        std::cout << "currentSpeedX: " << status.currentSpeedX << std::endl;
        std::cout << "currentSpeedTheta: " << status.currentSpeedTheta << std::endl;
        sdk.SetSpeed(0.1, 0);
        Sleep(5 * 1000);
        sdk.GetCurrentStatus(&status);
        std::cout << "currentSpeedX: " << status.currentSpeedX << std::endl;
        std::cout << "currentSpeedTheta: " << status.currentSpeedTheta << std::endl;
        sdk.SetSpeed(0, 1);
        Sleep(5 * 1000);
        sdk.GetCurrentStatus(&status);
        std::cout << "currentSpeedX: " << status.currentSpeedX << std::endl;
        std::cout << "currentSpeedTheta: " << status.currentSpeedTheta << std::endl;
        sdk.SetSpeed(-0.1, 0);
        Sleep(5 * 1000);
        sdk.GetCurrentStatus(&status);
        std::cout << "currentSpeedX: " << status.currentSpeedX << std::endl;
        std::cout << "currentSpeedTheta: " << status.currentSpeedTheta << std::endl;
        sdk.SetSpeed(0, -1);
        Sleep(5 * 1000);
        sdk.GetCurrentStatus(&status);
        std::cout << "currentSpeedX: " << status.currentSpeedX << std::endl;
        std::cout << "currentSpeedTheta: " << status.currentSpeedTheta << std::endl;
        sdk.SetSpeed(0, 0);
        Sleep(5 * 1000);
        sdk.GetCurrentStatus(&status);
        std::cout << "currentSpeedX: " << status.currentSpeedX << std::endl;
        std::cout << "currentSpeedTheta: " << status.currentSpeedTheta << std::endl;
    }
}

int main()
{
	testIOTSetSpeed();
}

机器人会被这个程序遥控着进行前进后退等等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Galileo SDK跨局域网遥控机器人 的相关文章

  • 更改 API 级别 Android Studio

    我想将 Android Studio 中的最低 SDK 版本从 API 12 更改为 API 14 我尝试在清单文件中更改它 即
  • 通过 Android SDK 管理器下载 SDK 速度慢

    当我运行Android SDK管理器下载SDK平台时 下载速度为8 KiB s 像Android 2 2 API 8这样的平台下载需要2个多小时 通过浏览器下载东西是没有问题的 有谁知道如何解决这个问题 我没有遇到过这个问题 强制或取消强制
  • eclipse appcompat->res->drawable-xxxhdpi 错误

    我刚刚将我的日食更新为SDK 21 我知道每次我创建项目时 Eclipse 也会创建名为appcompat v7 但是appcompat v7显示错误在res drawable xxxhdpi文件夹 这也使我的项目出错 并在控制台显示此警报
  • Android Marshmallow 6.0.1 蓝牙扫描未返回结果

    根据 Kitkat 4 4 4 的 update appCompat 使用以下代码和权限 6 01 中的蓝牙似乎无法按预期工作 没有返回任何结果 并且我附近有几个可发现的设备 有人对为什么有任何见解吗 我在 Nexus 5 上运行
  • Java SDK for REST API 服务的错​​误处理

    我们正在构建一个 Java SDK 以简化对提供 REST API 的服务之一的访问 该SDK供第三方开发者使用 我正在努力寻找在 SDK 中实现错误处理的最佳模式 以更适合 Java 语言 假设我们有其余端点 GET photos pho
  • 使用 facebook android SDK 的 FQL

    我正在尝试使用 facebook android SDK 创建一个 android 应用程序 http github com facebook facebook android sdk http github com facebook fa
  • Android sdk内容加载器错误[重复]

    这个问题在这里已经有答案了 我在用日食朱诺win 7 32位平台上的版本 一切都很顺利 直到今天当我启动 Eclipse 时 Android sdk 内容加载器不能超过 0 我尝试重新启动 Eclipse 我结束了 adb 进程并再次重新启
  • 如何为 eclipse 和 android studio 提供单一的 android SDK 和 AVD

    我是 Eclipse 用户 并在其上轻松开发了 Android 应用程序 但最近 当我看到 android studio 出现并由 android 网站提供时 我想尝试一下 因为它看起来非常有前途 我已经在我的 D 盘中下载了 androi
  • 未收到从 MFMailComposer 发送的附件

    我正在尝试在 iPad 上发送一封带有 csv 附件的电子邮件 我根据下面显示的许多示例使用 MFMailComposer 发送电子邮件时 我可以在 MFMailComposer 窗口中看到正确的文件附件 但是当我收到电子邮件时 没有附加任
  • Apple Push - didReceiveIncomingPushWithPayload 未调用 - 相反错误:无法向客户端发送消息

    我有一个使用pushkit voip推送 的应用程序 大多数时候 推动都会通过 但当流量很大时 推送不会到达应用程序 我处于一种可以以某种方式重现错误的状态 我使用了这里的扩展日志记录 https developer apple com l
  • iphone SDK:将图像从iphone上传到php服务器发送空文件?(内部示例代码链接)

    我尝试通过 PHP 将照片和 GPS 位置发送到服务器 这是 PHP 部分 从这里复制 http www w3schools com PHP php file upload asp保存上传的文件 上面的示例在服务器上的 PHP 临时文件夹中
  • 安全移动 Microsoft SDK 文件夹

    我的硬盘上有一个文件夹 C Program Files Microsoft SDKs 我想知道将其移动到外部驱动器是否安全 Visual Studio 或任何其他工具是否依赖于此特定文件夹 注册表中有相当多的条目 至少在我的注册表中 指向该
  • React Native SDK 与 expo SDK 不兼容

    当我使用 expo 运行 React Native 项目时 出现此错误 此项目使用 SDK 38 0 0 但此版本的 Expo Go 仅支持以下 SDK 43 00 42 0 0 41 0 0 40 0 0 加载项目 必须更新到受支持的 S
  • 无法解析“adb version”的输出

    我使用 Ubuntu 11 10 和 Eclipse 进行 Android 开发 我已经创建了一个新项目 但它包含错误 Failed to parse the output of adb version 如果有人知道我该如何解决这个问题 我
  • 使用 SDK 的 iPhone 应用程序上的 reCaptcha

    有人在 iPhone 应用程序上使用过 reCaptcha 吗 我正在尝试弄清楚如何将其嵌入到我的应用程序中 在 iPhone 应用程序中使用 reCaptcha 的唯一方法是在应用程序中渲染 WebView reCaptcha 有一个很好
  • 用于色彩空间转换的 IMTransform 视频处理器的设置

    我正在尝试使用视频处理器 MFT 进行一些基本的色彩空间转换 我的相机本身支持 NV12 我需要 RGB24 来编写一些着色器 以提供类似卡通的效果 下面是用于执行 MF 的 Media 类的定义 class Media public IM
  • 什么是 winapifamily.h?

    在 Windows SDK 和 DDK 中找不到它 但我们现有的一些代码包含它 我通过谷歌找到的唯一有意义的链接是 http msdn microsoft com en us library windows hardware hh45083
  • 注册不起作用 - 服务器返回 404 错误代码

    MongoDB Stitch iOS SDK 注册问题 我试过这个 let stitchClient StitchClient appId
  • 通过 Facebook iOS SDK 获取我的所有活动

    在我的 iOS 应用程序中 我使用以下代码获取访问令牌 self facebook authorize NSArray arrayWithObjects user events friends events nil 然后我使用以下代码请求我
  • 自定义 MKAnnotationView - 如何捕获触摸而不忽略标注?

    我有一个自定义 MKAnnotationView 子类 它完全按照我想要的方式显示视图 在那个视图中 我有一个按钮 我想捕获按钮上的事件来执行操作 这很好用 但是 我不希望标注被忽略或消失 基本上 触摸标注中的按钮将开始播放声音 但我想保留

随机推荐

  • 大疆Livox_mid 40雷达初体验

    为了解决无人车上镭神雷达FOV小而导致的车前3m内无法看到锥形桶问题 东家给公司邮寄了一台大疆的mid40雷达 不得不说 颜值真的高 光看颜值 就甩镭神几条街 昨天重新配置镭神的激光雷达 官方给的配置软件 真的是 用的我心碎啊 算了 不提了
  • 地铁供电系统的构成

    地铁供电系统一般划分为以下几部分 xff1a 外部电源 xff1b 主变电所 xff1b 牵引供电系统 xff1b 动力照明系统和杂散电流腐蚀防护系统 xff1b 电力监控系统 外部电源地铁供电系统的外部电源就是地铁供电系统主变电所供电的外
  • C++ Vector常用函数

    C 43 43 Vector常用函数 begin 函数 原型 xff1a iterator begin const iterator begin 功能 xff1a 返回一个当前vector容器中起始元素的迭代器 end 函数 原型 xff1
  • STM32使用ADC获取内部温度传感器数据输出(直接读取/DMA两种方式实现)

    STM32使用ADC获取内部温度传感器数据输出 xff08 直接读取 DMA两种方式实现 xff09 前言一 内部温度传感器的使用 xff1f 二 代码操作讲解1 直接读取2 DMA处理 总结 前言 STM32F1系列 xff08 本代码基
  • fp32/fp64精度,4/8字节16进制转float/double十进制

    1 IEEE 754 32位单精度浮点数 xff08 4字节 xff09 1 1 32位单精度浮点数 其中 xff0c 32位16进制数包括1位符号位 SIGN xff0c 8位指数位 EXPONENT 和 23位尾数位 MANTISSA
  • SVG绘制圆环进度条

    在我们的大屏可视化项目中 xff0c 经常会用到各种各样的图表 与传统的表格展示 枯燥的文字阐述相比 xff0c 图表展示则使用户看起来更加直观 数据的展示则更加一目了然 本文基于svg绘图技术结合前端技术栈vue xff0c 以工作中常用
  • Canvas绘制地图

    在我们的大屏可视化项目中 xff0c 地图数据可视化是最常见功能 地图数据可视化目前的实现方案有很多 xff0c 其中最具有代表性的莫过于使用echarts xff0c 引入一个js文件 xff0c 再加上一些简单的配置 xff0c 这样一
  • 滚动动画(跑马灯动画)的几种实现方式

    在大屏可视化应用中 xff0c 滚动动效 xff08 跑马灯效果 xff09 也是常见的一种数据展现方式 xff0c 本章节针对字幕滚动和列表滚动效果做一个小小的总结 xff0c 结合vue框架 xff0c 具体展示效果如下 xff0c 从
  • 如何在Ubuntu上安装CUDA

    原链接 在Ubuntu上安装CUDA一直是比较麻烦的事情 由于不同版本的CUDA对显卡驱动有着不同的需求 而在有些电脑上安装最新的Nvidia闭源显卡驱动会导致无法进入图形界面 CUDA中也自带了Nvidia的显卡驱动 xff0c 但是如果
  • 加载loading动画

    提起加载 xff08 loading xff09 效果 xff0c 想必大家都不会陌生 xff0c 在目前的移动端 PC端 各类app均广泛使用 xff0c 使用loading动画能显著提升用户的交互体检 xff0c 尤其是在页面加载速度比
  • CSS锥形渐变实现环形进度条

    10月份因为疫情原因 又开启了居家办公模式 xff0c 空闲之余 xff0c 与其选择 躺平 xff0c 不如去做一些有意义的事情 xff0c 内心的想法驱使着我去做些什么 xff0c 但是又没有合适的素材 xff0c 直到接手了最近的一个
  • CSS实现个性化水球图

    在可视化应用中 xff0c 水球图也是一种常见的数据展示形式 xff0c 关于使用CSS实现个性化水球 xff0c 在相当长的一段时间并没有找到比较简洁的实现方式 xff0c 因此在以往的可视化作品中 xff0c 大多采用echarts插件
  • CSS实现3D球面字符云

    在大屏可视化应用中 xff0c 使用3D的场景有很多 xff0c 复杂的交互动画通常是使用Three js或echarts gl来实现 xff0c 但是在一些简单的3D场景中 xff0c CSS也可以实现一些不错的展示效果 本文使用CSS相
  • CSS实现渐变仪表盘的简单尝试

    在 CSS锥形渐变实现环形进度条 一章中 xff0c 讲解了实现渐变进度条的一点思路 xff0c 基于此思路 xff0c 本章节尝试性的使用CSS实现一个简单的渐变仪表盘 xff0c 给大家提供一些借鉴 实现角向渐变 xff0c 不得不提一
  • 【opencv】OpenCV开发环境配置(C++)

    软件版本 opencv 4 7 0 windowsvisual studio 2022 环境配置 1 创建项目 打开VS 2022 xff0c 点击创建新项目 点击项目 gt 点击属性 2 添加包含目录 点击VC 43 43 目录 gt 点
  • 1、什么是网络前缀

    基础知识 xff1a 1 已知一个IP地址 xff0c 如何区分它是A类地址还是B类或者C类地址呢 A类地址 1 0 0 0 到126 0 0 0 0 0 0 0 和127 0 0 0保留 B 类地址 128 1 0 0到191 254 0
  • ZYNQ petalinux设置固定IP地址

    背景 xff1a zynq petalinux在开机自启动以后ifconfig设置ip xff0c 然后运行应用程序 xff1b 如果设备没有串口且程序在启动过程中用Wireshark抓取不到信息 xff0c 这时 xff0c 就要使用固定
  • 10、IEEE802.3和Ethernet II帧的区别, 0x0806 ARP协议分析

    一 IEEE802 3和Ethernet II帧的区别 概念 xff1a 1 以太网上使用两种标准帧格式 第一种是上世纪80年代提出的DIX v2格式 xff0c 即Ethernet II格式 第二种是1983年提出的IEEE 802 3格
  • W10: Warning: Changing a readonly file使用vi/vim报错问题解决(使用管理员也不能修改)

    使用vi vim编辑文件的时候出现W10 Warning Changing a readonly file报错 解决方法 xff1a 一 强制保存退出 xff1a wq 二 ll 查询文件属主 xff0c 使用属主赋予权限 chmod u
  • 使用Galileo SDK跨局域网遥控机器人

    原链接 GalileoSDK是由我们开发的机器人导航系统SDK 通过SDK用户能够方便的操控机器人 现在小强用户已经可以免费体验到SDK的功能了 SDK内部集成了物联网连接功能 设置完成后用户能够通过SDK跨局域网遥控和获取机器人状态 下面