# balloon_ros_rl **Repository Path**: ruimingluo/balloon_rl ## Basic Information - **Project Name**: balloon_ros_rl - **Description**: 气球上位机神经网络控制器(端侧部署) - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2022-10-02 - **Last Updated**: 2024-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # balloon_ros_rl #### 介紹 此仓为气球机器人神经网络控制器的部署代码, 跑在上位机(目前为Nvidia Jetson Xavier NX)上,通过ROS进行数据通信。它实际是一个ROS package,串口通信协议需要与MCU上的下位机代码对齐。 #### 架構 该ROS package有3个node: - serial_receive_node:接收MCU通过串口传来的传感器数据(observation),解包后发布在一个名为MCU_DATA_receive的话题中; - policy_inference_node:订阅MCU_DATA_receive话题,将observation输入到加载进来的神经网络模型(policy network)中,得到一个动作输出(action),并将其封装进一个名为MCU_DATA_send的话题中发布出去; - serial_send_node:订阅MCU_DATA_receive话题,将action数据装包后通过串口传回MCU;
#### 安裝教程 1. 将本仓作为一个package放置在ROS工作空间的src文件夹下(如~/catkin_ws/src/),重新编译(catkin_make)该包; 2. 安装rsl_rl(强化学习相关库) ``` cd rsl_rl && pip install -e . ``` 3. 通过roslaunch启动ROS节点,运行程序 ``` roslaunch balloon_rl balloon_rl.launch ``` #### 使用說明 1. 该package所处的ROS工作空间需要在初始化时指定python3解释器路径(catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3); 2. 该代码目前仅在Nvidia Jetson Xavier NX (Jetpack 4.6.1)上测试过;使用前记得通过USB线连接上位机和下位机,并检查端口是否可用; 3. MCU下位机代码需要拉取[balloon](https://gitee.com/opencann/balloon)仓的dev-laser-height分支,并确保通信协议与上位机保持一致;