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

原链接

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();
}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值