# remote_control **Repository Path**: giao2199/remote_control ## Basic Information - **Project Name**: remote_control - **Description**: 这是一个用于ROS2的遥控包,可以由此做一个遥控器。 - **Primary Language**: C++ - **License**: CC-BY-4.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-06 - **Last Updated**: 2026-01-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # remote_control #### 介绍 这是一个用于ROS2的遥控包,可以由此做一个遥控器。 全机采用串口通信,排除了需要写ADC驱动的部分。其中主摇杆是Flysky的数组霍尔摇杆,旋钮和副摇杆使用M5Stack Chain系列,包括ChainAngle和ChainJoystick。 Flysky的数字霍尔摇杆使用一个UART,ChainAngle和ChainJoystick共用另一个UART。 Flysky的数字霍尔摇杆作为4个主要通道数据输入,ChainAngle和ChainJoystick作为3个辅助通道数据输入。在非控制状态下,ChainJoystick还可以作为鼠标使用。 注意,本项目正在编写,并未形成稳定版本。 #### 软件架构 大概呢,思路是这样的,首先flysky的摇杆和chain摇杆分别通过ros-humble-serial-driver打开2个串口接收数据,分别解析,提取数据。然后50Hz定时器里整理发送的通道数据,全部映射到-1和1,再发行。 这个50Hz回调函数啊,不仅发行-1到1的控制数据,还发摇杆的原数据,给校准用的,之后再提。同时呢,写了个模式,让小摇杆没事的时候客串一下鼠标,毕竟搓屏幕还是不准确的。 还写了个校准的cpp,可以监听原数据,再做校准动作就能把摇杆的ADC数据和-1到1的映射对应起来,把数据保存到.yaml里去。 其中flysky的摇杆协议解析啊,很好写,主动发的,数据定长。chain设备啊,就不好写,数据不定长,不同类型和节点数据不一样,还得分情况。 程序大部分都是AI生成的,很不好,一下子就给你一步到位了,中间也没个循序渐进的过程,一旦问多了这个话题就污染了,得重新开话题问,中间要增加什么功能也会把之前的东西连带下来,幻觉很重。总之还在和AI搏斗中。 #### 安装教程 1. 首先安装依赖 humble版本: sudo apt install ros-humble-asio-cmake-module ros-humble-serial-driver jazzy版本: sudo apt install ros-jazzy-asio-cmake-module ros-jazzy-serial-driver 还有xdotool,这是用来操作界面上的鼠标的,我忘记怎么装的了,网上查一查吧。 2. 到你的工作空间src目录下,git clone https://gitee.com/giao2199/remote_control.git 3. 根据工作空间目录,修改node_joy.cpp和其他.cpp文件内的配置文件路径,主要是.yaml的文件路径。 4. 根据实际串口,修改串口号,比如我这边配置的是S3和S4分别作为flysky和chain设备的端口。 5. 修改你的~/.bashrc,在最后加这么一句: export DISPLAY=:0 这样无论是ssh下也好,后台也好,就能在你的屏幕上操作鼠标了。 #### 使用说明 1. 2. 3.