导航

    蓝鲸ROS机器人论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 热门
    ROS交流群
    ROS Group
    产品服务
    Product Service
    开源代码库
    Github
    官网
    Official website
    技术交流
    Technological exchanges
    激光雷达
    LIDAR
    ROS教程
    ROS Tourials
    深度学习
    Deep Learning
    机器视觉
    Computer Vision

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

    技术交流
    1
    1
    980
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • weijiz
      weijiz 最后由 weijiz 编辑

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

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

      bwgetid
      

      会有如下输出

      1105355d-9a4e-4ef7-bcd3-0f90f9756c1d-image.png

      这一长串字符串就是你的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();
      }
      

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

      1 条回复 最后回复 回复 引用 0
      • 1 / 1
      • First post
        Last post
      Copyright © 2015-2023 BlueWhale community