![通过 ssh 使用字符设备](https://linux22.com/image/127427/%E9%80%9A%E8%BF%87%20ssh%20%E4%BD%BF%E7%94%A8%E5%AD%97%E7%AC%A6%E8%AE%BE%E5%A4%87.png)
一段时间以来,我一直在寻找这个问题的好答案。
我正在尝试使用 Xbox 控制器远程控制机器人。挑战在于控制器要连接到控制站,而不是机器人的车载计算机。车载计算机运行Ubuntu和ROS(机器人操作系统),需要像直接连接一样访问字符设备。
我正在寻找一种方法来 ssh 进入车载计算机并从控制台转发字符设备事件。需要实时更新。最好的方法是什么?有可能吗?
答案1
看一下 CUSE(用户空间中的字符设备)。
将设备事件转发到 UDP 端口/从 UDP 端口转发,让 ssh 转发 UDP 流。
对于稍微小的“实时”值来说,这只是“实时”,因为您的要求中固有的延迟相当大。
答案2
如果您使用的是 SystemOnAChip(例如RPi、BananaPi、OrangePi、ODroid...)并运行一些操作系统(在本例中为 Ubuntu),即使它是一个RT任何发行版的(实时)风格,“需要实时更新”都是不可能的。请记住,操作系统距离实时还很遥远,他们有吨在后台运行的服务。这并不意味着你想要做的事情是不可能的,只是它不会在RT真的。
但这可能是您想要做的,只需购买(如果车载计算机没有附带)一个 WiFi USB 适配器,连接到车载计算机,将其连接到您拥有的同一网络中控制站,安装openssh-server
在板载计算机中,一旦两块板位于同一网络中,请尝试通过SSH。
如果您允许,我可以向您推荐我刚刚使用的另一个平台:ESP32,它是一个集成了 Wi-Fi 和蓝牙的微控制器,如果你从 AliExpress 购买它只需花费大约 3 美元,你就可以使用 Arduino IDE 对其进行编程。
顺便说一句,你的项目很有趣!