# RM_Base
机器人上下位机通讯仓库
## 项目依赖
- [rmoss_core](https://github.com/robomaster-oss/rmoss_core):用于底层串口硬件驱动和通讯帧解包
- [rmoss_interfaces](https://github.com/robomaster-oss/rmoss_interfaces):云台和底盘控制ROS自定义消息类型
## 使用方法
- [ ] TODO: 加入使用方法文档
### 加入新的自定义上位机接收帧
- [ ] TODO: 接收demo
### 加入新的自定义上位机发送帧
- [ ] TODO: 发送demo
## [串口通讯协议](protocol.md)
通讯协议分为两个部分:上位机发送(Send)/上位机接收(Receive)
通讯帧结构使用 `rmoss_core` 中 \[[`rmoss_base`](https://github.com/robomaster-oss/rmoss_core/tree/humble/rmoss_base)\] 提供的 **64** 字节(Byte)定长数据包
64字节数据包数据布局:
| 数据头字节(0xff) | CMD_ID 数据标志位 | 数据字节 | CRC8 校验字节(bit1 - bit61) | 数据尾字节(0x0d) |
| :-------------: | :-------------: | :-----------: | :---------: | :----------------: |
| 0(1Byte) | 1 (1Byte) | 2-61 (60Byte) | 62(1Byte) | 63(1Byte) |
PS: 对CMD_ID的定义在文件`include/rm_base/protocol_types.hpp`中
**注意每个结构体都需要以1字节对齐**
1字节对齐方式
- 在GCC中加入 __attribute__((__packed__))编译指令
- 在STM32中加上 __packed 关键字
**具体的通讯协议定义参考:[protocol.md](protocol.md)**
### CRC校验计算方式
使用`include/rm_base/crc.hpp`头文件中的`Get_CRC8_Check_Sum`函数计算**数据字节段**的CRC8值
参考样例:
```cpp
// 引入头文件
#include <rm_base/crc.hpp>
#include <rmoss_base/fixed_packet.hpp>
rmoss_base::FixedPacket<64> packet; // 定义一个数据帧
/*
* 将待发送数据填入数据帧
* float yaw_position = 1.57;
* packet.load_data(yaw_position, 1);
*/
// 计算CRC校验位,注意数据段长度为 61 字节
packet.set_check_byte(Get_CRC8_Check_Sum(packet.buffer() + 1, 61, rm_base::CRC8_INIT));
```
## ROS2 topic list
### 发布topic
| topic name | msg_type |
| :-------------: | :-------------: |
| event_data | rm_interfaces/EventData |
| game_status | rm_interfaces/GameStatus |
| game_result | rm_interfaces/GameResult |
| game_robot_pose | rm_interfaces/GameRobotPose |
| game_robot_status| rm_interfaces/GameRobotStatus|
| game_robot_hp | rm_interfaces/GameRobotHp |
| robot_interactive_data | rm_interfaces/RobotInteractiveData |
### 订阅topic
| topic name | msg_type |
| :-------------: | :-------------: |
| chassis_cmd | rm_interfaces/ChassisCmd |
| gimbal_cmd | rm_interfaces/GimbalCmd |
| shoot_cmd | rm_interfaces/ShootCmd |
没有合适的资源?快使用搜索试试~ 我知道了~
机器人硬件驱动与通讯仓库,用于实现上下位机通讯设计和传感器驱动.zip
共65个文件
cpp:29个
msg:16个
hpp:6个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 185 浏览量
2024-01-26
16:22:32
上传
评论
收藏 69KB ZIP 举报
温馨提示
RM_HARDWARE_DRIVER 机器人硬件驱动与通讯仓库,用于上下位机通讯和硬件传感器的ROS驱动 项目依赖 rmoss_core:用于底层串口硬件驱动和通讯帧解包 rmoss_interfaces:云台和底盘控制ROS自定义消息
资源推荐
资源详情
资源评论
收起资源包目录
机器人硬件驱动与通讯仓库,用于实现上下位机通讯设计和传感器驱动.zip (65个子文件)
rm_hardware_driver-develop
deps.repos 370B
rm_interfaces
CMakeLists.txt 1000B
LICENSE 11KB
package.xml 703B
msg
GimbalCmd.msg 380B
ChassisCmd.msg 654B
referee
PowerHeatData.msg 500B
EventData.msg 931B
RobotInteractiveData.msg 515B
RobotBulletRemain.msg 225B
GameRobotPos.msg 218B
RobotBuff.msg 204B
RobotShootData.msg 320B
GameStatus.msg 780B
GameResult.msg 104B
GameRobotHp.msg 394B
GameRobotStatus.msg 2KB
RobotHurt.msg 721B
Gimbal.msg 58B
ShootCmd.msg 222B
README.md 0B
CONTRIBUTING.md 0B
rm_base
include
rm_base
protocol_types.hpp 1KB
robot_base_node.hpp 2KB
processor_interface.hpp 2KB
crc.hpp 4KB
register_macro.hpp 913B
buffer_processor_factory.hpp 3KB
CMakeLists.txt 2KB
src
robot_base_node.cpp 8KB
buffer_processor
robot_interactive_data_processor.cpp 3KB
robot_shoot_data_processor.cpp 2KB
game_robot_pos_processor.cpp 2KB
game_status_processor.cpp 2KB
robot_bullet_remain_processor.cpp 2KB
game_result_processor.cpp 2KB
event_data_processor.cpp 3KB
game_robot_hp_processor.cpp 3KB
robot_buff_processor.cpp 2KB
joint_state_processor.cpp 4KB
robot_hurt_processor.cpp 2KB
power_heat_data_processor.cpp 3KB
gimbal_imu_processor.cpp 4KB
buffer_processor_factory.cpp 2KB
LICENSE 11KB
package.xml 822B
launch
rm_base.launch.py 3KB
protocol.md 8KB
test
CMakeLists.txt 2KB
test_robot_interactive_data_processor.cpp 2KB
test_game_result_processor.cpp 2KB
test_robot_shoot_data_processor.cpp 2KB
test_event_data_processor.cpp 2KB
test_robot_hurt_processor.cpp 2KB
test_game_status_processor.cpp 2KB
test_robot_buff_processor.cpp 2KB
test_game_robot_hp_processor.cpp 2KB
test_processor_factory.cpp 2KB
test_game_robot_pos_processor.cpp 2KB
test_joint_state_processor.cpp 2KB
test_power_heat_data_processor.cpp 2KB
test_robot_bullet_remain_processor.cpp 2KB
test_gimbal_imu_processor.cpp 2KB
README.md 3KB
config
rm_base.yaml 222B
共 65 条
- 1
资源评论
博士僧小星
- 粉丝: 1931
- 资源: 5896
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功