原链接
GalileoSDK是由我们开发的机器人导航系统SDK。通过SDK用户能够方便的操控机器人。现在小强用户已经可以免费体验到SDK的功能了。SDK内部集成了物联网连接功能。设置完成后用户能够通过SDK跨局域网遥控和获取机器人状态。下面介绍物联网功能的配置方法。
首先获取自己机器人的ID
在机器人上执行
bwgetid
会有如下输出
这一长串字符串就是你的ID
然后向 发送post数据,内容为此ID。
比如利用curl
curl -H "Content-Type: application/json" -X POST -d '"8FB56D27D6C961E9036F62182ADE9544D71E23C31E5DF4C7DD692B9E4296A131434B1066D365"'
返回如下
{"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);
}
#endifvoid testIOTSetSpeed()
{connected = false;GalileoSDK::GalileoSDK sdk;
//通过物联网连接机器人,第一个参数是机器人id,第二个参数是连接超时时间,第三个为机器人密码由[system_monitor中的 IOT_PASSWORD](.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();
}
机器人会被这个程序遥控着进行前进后退等等。
本文发布于:2024-02-04 19:04:16,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170714316558615.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |