首页 > 解决方案 > 如何将用户操作从服务器中继到外部设备

问题描述

我有一个网络界面,允许用户向 1 或 2 个机器人发送远程命令。目前,任务保存在数据库中(也用于日志记录),并且机器人每 125 毫秒使用 GET 请求轮询 django 后端,这提供了可接受的响应时间,而不会过度强调后端。简而言之:

Action(User) -> [Remote Control UI] -> Django -> DB (based on user input)

为了获得动作,机器人然后向 Django 发出 GET 请求,如下所示:

while(ros::ok())
{
    response = requests.get(task_url, timeout=5)
    // input task(s) to state machine
    // execute task if possible
    rate.sleep();
} 
      
      

我的问题是:有没有更好的方法?当机器人离开 Wi-Fi 时,遥控器有时会被禁用,因此该解决方案需要一定程度的灵活性来重新连接、IP 更改和连接错误。我虽然关于可能的替代方案,但不确定它们是否可行:

任何反馈表示赞赏

标签: pythondjangorestrosdjango-channels

解决方案


搜索 ROS 多机将有助于解决这种情况。

http://wiki.ros.org/ROS/Tutorials/MultipleMachines

总之,你在本地设备/etc/hosts这个文件中设置其他设备的IP,就可以互相分配正确的IP了

对所有设备执行此操作。

然后在一台机器上运行 roscore

在这个 roscore 中,您将有一个 rosip 看到从 roscore 发出的消息,通常是您的核心 IP 地址 + 11311

然后在第二台机器上,将 ROS_MASTER_URI 设置为您找到的 ros IP + 端口。

然后两台机器可以共享主题和服务。

附言。如果您在按照本教程尝试 ssh 时遇到端口 22 问题。重新安装 open-ssh-server 和 open-ssh-client


推荐阅读