From 77146dd811cc6058d0a17d121b47949f05204047 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=98=8E?= Date: Fri, 28 Jun 2024 14:12:33 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=87=8D=E6=9E=84=E5=BA=95=E7=9B=98?= =?UTF-8?q?=E5=92=8C=E5=A5=97=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chassis/chassis-m2.md | 145 +++++++++++ chassis/custom-autocan.md | 225 ++++++++++++++++++ chassis/imgs/1.png | Bin 0 -> 188192 bytes {car => chassis}/imgs/2.png | Bin chassis/imgs/Comtools.png | Bin 0 -> 230474 bytes chassis/imgs/NoDataPackage.png | Bin 0 -> 50730 bytes chassis/imgs/WithDataPackage.png | Bin 0 -> 66009 bytes chassis/imgs/crc8-maxim.png | Bin 0 -> 79154 bytes chassis/intro.md | 107 +++++++++ chassis/overview.md | 58 +++++ chassis/use.md | 114 +++++++++ chassis/video-lib.md | 27 +++ conf.json | 44 +++- {car => navigationKit}/assemble.md | 0 {car => navigationKit}/delivery.md | 0 car/use.md => navigationKit/handle.md | 0 navigationKit/imgs/2.png | Bin 0 -> 377781 bytes {car => navigationKit}/imgs/slamSet-label.png | Bin .../imgs/software/image-20240627100358442.png | Bin .../imgs/software/image-20240627103707291.png | Bin .../imgs/software/image-20240627104617412.png | Bin {car => navigationKit}/parameter.md | 0 {car => navigationKit}/software.md | 0 23 files changed, 713 insertions(+), 7 deletions(-) create mode 100644 chassis/chassis-m2.md create mode 100644 chassis/custom-autocan.md create mode 100644 chassis/imgs/1.png rename {car => chassis}/imgs/2.png (100%) create mode 100644 chassis/imgs/Comtools.png create mode 100644 chassis/imgs/NoDataPackage.png create mode 100644 chassis/imgs/WithDataPackage.png create mode 100644 chassis/imgs/crc8-maxim.png create mode 100644 chassis/intro.md create mode 100644 chassis/overview.md create mode 100644 chassis/use.md create mode 100644 chassis/video-lib.md rename {car => navigationKit}/assemble.md (100%) rename {car => navigationKit}/delivery.md (100%) rename car/use.md => navigationKit/handle.md (100%) create mode 100644 navigationKit/imgs/2.png rename {car => navigationKit}/imgs/slamSet-label.png (100%) rename {car => navigationKit}/imgs/software/image-20240627100358442.png (100%) rename {car => navigationKit}/imgs/software/image-20240627103707291.png (100%) rename {car => navigationKit}/imgs/software/image-20240627104617412.png (100%) rename {car => navigationKit}/parameter.md (100%) rename {car => navigationKit}/software.md (100%) diff --git a/chassis/chassis-m2.md b/chassis/chassis-m2.md new file mode 100644 index 0000000..1ff7994 --- /dev/null +++ b/chassis/chassis-m2.md @@ -0,0 +1,145 @@ +# Autolabor ROS 驱动模块 + +## 1. 介绍 + +Autolabor ROS驱动模块包括**CANBus驱动**和**Autolabor CAN系列(PM1/M2) 底盘驱动** +,主要用于实现与Autolabor_CANbus模块的通信,并通过线速度和角速度来控制Autolabor +CAN系列底盘的行驶。该模块提供了全面的底盘控制策略和状态反馈机制,使得底盘的操作既直观又高效。 + +### 特性 + +- **CANBus数据获取和控制**: 直接从CANBus网络获取数据并通过CAN指令控制车辆。能够获取动力轮和转向轮编码器的原始数值,并独立控制动力轮的转速及转向轮的绝对转向角度。 +- **高级速度控制**: 通过线速度和角速度直接控制移动底盘,无需单独控制后轮转向。这一特性简化了驱动操作并增强了操作的直观性。 +- **实时位置信息**: 提供实时的机器人底盘位置信息,便于进行闭环控制,确保导航和定位的精确性。 +- **电子差速控制**: 采用双动力轮电子差速控制,保证机器人在行驶过程中始终满足阿克曼原理,从而提高行驶稳定性和精度。 +- **运动优化**: 根据后轮转向动态优化车辆的运动速度,确保在维持行驶精度的前提下,提升车辆行驶的流畅性。 +- **驻车和急停控制**: 驱动包括了高级的驻车和急停特性,能够在紧急情况下快速响应,立即停车,保障操作安全。 +- **电量反馈和状态监控**: 驱动能够实时监控底盘的电量状态,并反馈至ROS系统,同时持续监控底盘各部件的状态,及时报告任何异常情况,确保系统的可靠运行。 + +## 2. 编译与安装 + +### 2.1 引入ROS环境变量 + +在启动ROS相关程序前,确保ROS环境变量已经正确配置。在终端执行以下命令以导入环境变量: + +```bash +source /opt/ros/noetic/setup.bash +``` + +### 2.2 添加串口权限或配置udev规则 + +为确保程序可以正常访问底盘的串口,需要给予相应的权限。可以通过以下命令临时赋予权限: + +```bash +sudo chmod 666 /dev/ttyUSB0 +``` + +或者设置udev规则,为串口设定固定的设备名称,详情参见[Autolabor官方文档](http://www.autolabor.com.cn/usedoc/navigationKit2/common/q_a/doc1#1)。 + +### 2.3 修改launch文件 + +在启动底盘前,需要在launch文件中指定正确的串口地址。编辑`m2keyboard.launch`文件,确保`port_name`的值反映了当前设备的串口地址: + +```xml + + +``` + +### 2.4 启动launch + +编译并加载ROS工作环境后,使用以下命令启动底盘: + +```bash +roslaunch autolabor_canbus_driver m2keyboard.launch +``` + +确保在图形界面的终端运行以避免X11Server相关的错误。 + +## 3. 节点使用详细信息 + +### 3.1 启动launch + +完成配置后,通过`roslaunch`命令启动底盘控制程序。这将激活包括底盘驱动、键盘控制以及其他必要节点。确保在图形用户界面的终端中运行此命令,以避免遇到X11Server相关的错误。 + +### 3.2 控制运动 + +#### a. 键盘控制 + +运行键盘控制节点后,使用键盘上的指令控制底盘前进、后退、左转和右转。观察RViz中的`base_link`是否根据指令正确移动。此外,监测各轮的运动是否平滑且响应及时。 + +#### b. cmd_vel vs ackerman_vel + +- **`cmd_vel`(标准速度控制)**: + 使用`geometry_msgs/Twist`消息类型发送线速度和角速度指令,控制底盘的整体移动方向和速度。 + +- **`ackerman_vel`(阿克曼转向速度控制)**: + 除了标准的线速度和角速度外,额外控制前轮的转角,适用于需要精确转向控制的场景。 + +### 3.3 使用rqt_gui工具发送指令和服务 + +#### a. 发送控制指令 + +通过`rqt_gui`发送以下指令: + +- **紧急停车** (`/m2_driver/emergency_stop`): 立即停止底盘运动。 +- **刹车** (`/m2_driver/brake_set`): 控制底盘的刹车系统。 +- **里程计清零** (`/m2_driver/reset_odom`): 重置底盘的里程计数据。 +- **转向中心对齐** (`/m2_driver/steer_center_bias`): 调整转向轮的中心位置。 + +#### b. 调用服务节点 + +- **查询底盘参数** (`/m2_driver/chassis_parameter`): 获取或设置底盘的配置参数,如轮间距、轮直径等。 + +#### c. 绘图监听 + +使用rqt的绘图功能来实时监控和分析以下数据: + +- **前轮转角** (`/m2_driver/wheel_angle`): 显示实时转向角度。 +- **左右轮速度** (`/m2_driver/left_wheel_vel`, `/m2_driver/right_wheel_vel`): 监控各动力轮的速度。 + +#### d. 话题查看 + +关注以下话题以获取底盘状态和电量信息: + +- **车辆状态** (`/m2_driver/chassis_info`): 提供底盘的详细状态,如电量、温度等。 +- **电量信息** (`/m2_driver/chassis_monitor`): 监测底盘的电池电量和健康状态。 + +### 3.4 参数说明 + +在底盘驱动的配置中,可以通过设置以下参数来定制驱动的行为和性能: + +- **`odom_frame`**: 用于发布里程计信息的坐标系名称,默认为`"odom"`。这是底盘位置信息的参考坐标系。 +- **`base_frame`**: 底盘的基础坐标系名称,默认为`"base_link"`。这是底盘上各个组件和传感器的相对参考点。 +- **`poller_rate_hz`**: 设置查询CAN总线信息的频率,单位是赫兹(Hz),默认为1Hz。这影响电量及状态数据更新的实时性。 +- **`publish_tf`**: 是否发布TF变换数据,布尔值,用于控制是否在ROS网络中发布从`odom`到`base_link`的转换,默认关闭。 + +### 3.5 话题订阅与发布 + +#### 订阅话题 + +底盘驱动节点订阅以下话题,以接收外部控制命令和系统指令: + +- **`/m2_driver/cmd_vel`** (`geometry_msgs/Twist`): 接收标凈的速度指令,控制底盘的线速度和角速度。 +- **`/m2_driver/ackerman_vel`** (`geometry_msgs/Twist`): 接收针对阿克曼转向系统的速度和转向角度指令。 +- **`/m2_driver/steer_center_bias`** (`std_msgs/Float64`): 接收用于调整转向中心的偏置值,用于微调转向准确性。 +- **`/m2_driver/brake_set`** (`std_msgs/Bool`): 接收制动指令,用于控制底盘的停止和启动。 +- **`/m2_driver/reset_odom`** (`std_msgs/Empty`): 接收里程计重置指令,用于归零里程计数据。 +- **`/m2_driver/emergency_stop`** (`std_msgs/Bool`): 接收紧急停车指令,用于立即停止所有底盘运动。 + +#### 发布话题 + +底盘驱动节点发布以下话题,提供底盘的状态信息和运动反馈: + +- **`/odom`** (`nav_msgs/Odometry`): 发布底盘的里程计信息,包括位置和速度。 +- **`/m2_driver/chassis_info`** (`autolabor_canbus_driver/ChassisStatusInfo`): 发布底盘的状态信息,如电量、温度等。 +- **`/m2_driver/chassis_monitor`** (`autolabor_canbus_driver/ChassisMonitorInfo`): 发布底盘的监控信息,提供实时的健康状况和性能数据。 +- **`/m2_driver/wheel_angle`** (`std_msgs/Float64`): 发布当前前轮的转角,单位为弧度。 +- **`/m2_driver/left_wheel_vel`** (`std_msgs/Float64`): 发布左轮的速度,单位为米/秒。 +- **`/m2_driver/right_wheel_vel`** (`std_msgs/Float64`): 发布右轮的速度,单位为米/秒。 + +### 3.6 服务节点 + +底盘驱动提供以下ROS服务以支持参数查询和配置: + +- **`/m2_driver/chassis_parameter`** (`autolabor_canbus_driver/ChassisParameterServer`): + 这个服务端点用于查询或设置底盘的参数。如果参数已经设置,则返回当前参数;如果未设置,则返回失败。这使得用户可以动态地调整底盘配置,以适应不同的工作条件和需求。 \ No newline at end of file diff --git a/chassis/custom-autocan.md b/chassis/custom-autocan.md new file mode 100644 index 0000000..21b34d2 --- /dev/null +++ b/chassis/custom-autocan.md @@ -0,0 +1,225 @@ +# AutolaborM2串口通讯协议 + +AutolaborM2采用串口通讯,通讯波特率为***115200***。通讯消息分为无数据域和有数据域两种类型。其中无数据域类型主要用于查询指令。 + +串口连接成功后,能收到机器人上报的里程计消息和车辆速度、转角消息,可依此作为机器人连接的判断。当前车辆上报得到左轮轮速和右轮轮速是直接从编码器给出的 +***角速度*** +,单位为rad。如果需要知道车轮线速度,则需要查询车辆轮半径,根据轮半径计算出车轮线速度。比如,角速度10rad/s,车轮半径0.15m,则线速度v = +10 * 0.15 = 1.5m/s + +机器人有三种急停方式:硬件开关急停、手柄远程急停、软件消息急停。三种急停均可使得车辆立即停止。其中***硬件急停优先级最高*** +,直接切断电机供电。在发送急停消息后,可根据查询机器人状态信息来判断是否成功进入急停。如果发现机器人进入急停状态,可根据查询消息,判定急停触发的来源。 + +M2底盘为阿卡曼转向结构,机器人的运动控制采用***两轮自行车模型***,控制量为***前轮转角和后轮转速***。其中转速为 +***相对速度***,需要用户根据查询到的车辆最大速度,计算出相对速度大小。比如,查询到车辆最大速度为2m/s,想要让车辆按照1m/s的速度运行,则需要发送 +v = 1/2 = 0.5。 + +机器人速度控制时,会检查TCU,左电机ECU,右电机ECU状态,如果状态异常,则不会执行控制指令。此时,会向上位机报告异常状态,异常状态中包括急停、编码器数据异常、电流保护和机械刹车。 + +## 1、两种数据消息 + +* 无数据域消息 + * 长度:6个字节(1个字节帧头FE + 4字节消息类型 + CRC8校验) + +![NoDataPackage.png](./imgs/NoDataPackage.png) + +* 有数据域消息 + * 长度:14个字节(1个字节帧头FE + 4字节消息类型 + 8字节数据(小端模式) + CRC8校验) + +![WithDataPackage.png](./imgs/WithDataPackage.png) + +## 2、查询指令 + +* 查询指令:无数据域包 +* 反馈指令:有数据域包 + +| 消息ID | 内容 | 反馈数据(8字节) | 数据含义 | +|-------------|---------|--------------------------|--------------------------------------------| +| 0D 00 80 00 | 状态 | [0]运行状态[1]-[7]保留 | 10:正常运行 ff:急停状态 | +| 0D 00 11 00 | 剩余容量百分比 | [0] uint8 [1]-[7]保留 | [0 100]% (采样频率=1Hz) | +| 0D 00 12 00 | 剩余可用时间 | [0]-[3] uint32 [4]-[7]保留 | [0 360000]s (采样频率=1Hz) | +| 0D 00 13 00 | 剩余容量 | [0]-[3] uint32 [4]-[7]保留 | [0 5000000]mAh (采样频率=1Hz) | +| 0D 00 14 00 | 电池电压 | [0][1] uint16 [2]-[7]保留 | [0 500000]mV (采样频率=1Hz) | +| 0D 00 15 00 | 电池电流 | [0]-[3] uint32 [4]-[7]保留 | [-750000 750000]mA 正:电池充电,负:电池放电(采样频率=1Hz) | +| 0D 00 17 00 | 急停开关 | [0]bool[1]-[7]保留 | 0:正常 1:急停 | +| 0D 00 18 00 | 查询软急停 | [0]bool[1]-[7]保留 | 0:正常 1:急停 | +| 0D 00 19 00 | 查询手柄急停 | [0]bool[1]-[7]保留 | 0:正常 1:急停 | +| 0D 00 1a 00 | 查询最大线速度 | [0]-[3]float [4]-[7]保留 | 根据车轮大小计算出的最大线速度(m/s) | +| 0D 00 1b 00 | 查询最大转角 | [0]-[3]float [4]-[7]保留 | 根据机械结构得到的最大转角(rad) | +| 0D 00 1c 00 | 查询车辆宽度 | [0]-[3]float [4]-[7]保留 | 根据机械结构得到的车宽(m) | +| 0D 00 1d 00 | 查询车辆长度 | [0]-[3]float [4]-[7]保留 | 根据机械结构得到的车长(m) | +| 0D 00 1e 00 | 查询轮半径 | [0]-[3]float [4]-[7]保留 | 根据机械结构得到的车轮半径(m) | + +***查询范例*** + +| 指令 | 单位 | 写字节流 | +|---------|------|---------------------| +| 状态查询 | | `FE 0D 00 08 00 B2` | +| 剩余容量百分比 | | `FE 0D 00 11 00 B5` | +| 剩余可用时间 | 秒 | `FE 0D 00 12 00 E0` | +| 剩余容量 | mAh | `FE 0D 00 13 00 2A` | +| 电池电压 | 10mV | `FE 0D 00 14 00 4A` | +| 电池电流 | 1mA | `FE 0D 00 15 00 8E` | +| 急停开关 | | `FE 0D 00 17 00 1F` | +| 查询软急停 | | `FE 0D 00 18 00 07` | +| 查询手柄急停 | | `FE 0D 00 19 00 C3` | +| 查询最大线速度 | m/s | `FE 0D 00 1A 00 96` | +| 查询最大转角 | rad | `FE 0D 00 1B 00 52` | +| 查询车辆宽度 | m | `FE 0D 00 1C 00 3C` | +| 查询车辆长度 | m | `FE 0D 00 1D 00 F8` | +| 查询轮半径 | m | `FE 0D 00 1E 00 AD` | + +***查询结果:*** + +| 指令 | 反馈字节流 | 含义 | +|---------|---------------------------------------------|---------------| +| 状态查询 | `FE 2D 00 80 00 10 00 00 00 00 00 00 00 09` | 状态正常 | +| 剩余容量百分比 | `FE 2D 00 11 00 64 00 00 00 00 00 00 00 79` | 容量100% | +| 剩余可用时间 | `FE 2D 00 12 00 50 C3 00 00 00 00 00 00 CC` | 剩余50000s | +| 剩余容量 | `FE 2D 00 13 00 50 C3 00 00 00 00 00 00 02` | 剩余50000mAh | +| 电池电压 | `FE 2D 00 14 00 7D 00 00 00 00 00 00 00 99` | 1.25V | +| 电池电流 | `FE 2D 00 15 00 4D 08 00 00 00 00 00 00 5A` | 2.125A | +| 急停开关 | `FE 2D 00 17 00 01 00 00 00 00 00 00 00 58` | 急停开关按下 | +| 查询软急停 | `FE 2D 00 18 00 01 00 00 00 00 00 00 00 26` | 软急停触发 | +| 查询手柄急停 | `FE 2D 00 19 00 01 00 00 00 00 00 00 00 E8` | 手柄急停按下 | +| 查询最大线速度 | `FE 2D 00 1A 00 00 00 C0 3F 00 00 00 00 94` | 最大线速度1.5m/s | +| 查询最大转角 | `FE 2D 00 1B 00 92 0A 06 3F 00 00 00 00 BC` | 最大转角:0.523Rad | +| 查询车辆宽度 | `FE 2D 00 1C 00 00 00 00 3F 00 00 00 00 9D` | 0.5m | +| 查询车辆长度 | `FE 2D 00 1D 00 66 66 26 3F 00 00 00 00 83` | 0.65m | +| 查询轮半径 | `FE 2D 00 1E 00 9A 99 19 3E 00 00 00 00 D2` | 0.15m | + +## 3、控制指令(有数据域消息类型) + +* 运动控制(v theta) + * 运动控制具有超时机制,需要在200ms内发送一帧数据,否则会认为数据超时,车辆停止运动。 + * v: 车辆最大速度的百分比,取值范围[-1 -1],对应从倒退最大速度到前进最大速度。 + * theta: 前轮转角,单位rad,弧度制。车辆向左转为正。 + * 4字节消息类型:`2D 00 01 00` + * 8字节数据:前4字节表示v,后4字节表示theta + * 数据类型:float + * 范例:`FE 2D 00 01 00 CD CC CC 3D CD CC 4C 3E 82` + * 指令含义:v:0.1相对速度,theta:0.2rad + +* 重置里程计 + * 4字节消息类型:`0D 00 02 00` + * 范例:`FE 0D 00 02 00 0C` + +* 驻车控制 + * 发送机械刹车指令 + * 4字节消息类型: `2D 00 03 00` + * 8字节数据:第一个字节表示是否刹车,1为刹车,0为释放 + * 刹车指令:`FE 2D 00 03 00 01 00 00 00 00 00 00 00 07` + * 释放刹车:`FE 2D 00 03 00 00 00 00 00 00 00 00 00 44` + +* 调整零位 + * 4字节消息类型: `2D 00 04 00` + * 8字节数据:前4个字节表示float,偏移量 + * 逆时针偏移1度: `FE 2D 00 04 00 00 00 80 BF 00 00 00 00 D6` + * 顺时针偏移1度: `FE 2D 00 04 00 00 00 80 3F 00 00 00 00 1D` + +* 紧急停止指令(Emergency) + * 4字节消息类型:`2F FF FF 00` + * 8字节数据:第1个字节表示急停类型,FF表示急停,10表示解除急停 + * 急停触发:`FE 2F FF FF 00 FF 00 00 00 00 00 00 00 DA` + * 急停解除:`FE 2F FF FF 00 10 00 00 00 00 00 00 00 53` + * 该消息可以直接关停底盘的电机输出。 + +## 4、反馈消息 + +反馈消息将持续发送,40ms间隔。可以使用反馈消息作为车辆连接的依据。 + +* 整车速度和转角 + * 4字节消息类型:`2D 00 20 00` + * 8字节数据内容:前4字节为车辆速度v,单位m/s。后4字节为前轮转角,单位rad。 + * 数据类型:float + +* 里程计xy坐标 + * 车辆上电后的位置,为里程计原点,车头方向为x,车左侧为y。 + * 4字节消息类型:`2D 00 21 00` + * 8字节数据内容:前4个字节为x坐标,单位m。后4字节为y坐标,单位m。 + * 数据类型为float + * 范例:`FE 2D 00 21 00 CD CC CC 3D CD CC 4C 3E 1A` + * 说明:x:0.1m y:0.2m + +* 里程计朝向 + * 车辆上电后的朝向为0度,逆时针为正。 + * 4字节消息类型:`2D 00 22 00` + * 8字节数据内容:前4个字节为朝向角,单位为rad。 + * 数据类型为float + * 范例:`FE 2D 00 22 00 9A 99 99 3E 00 00 00 00 D9` + * 说明:0.3rad + +* 左电机速度 + * 4字节消息类型:`2D 11 11 00` + * 8字节数据内容:前4个字节为速度,单位rad/s + * 数据类型:float + * 范例:`FE 2D 11 11 00 CD CC CC 3D 00 00 00 00 C5` + * 含义:0.1rad/s,如果要转换为m/s,需要乘以车轮半径 + +* 右电机速度: + * 4字节消息类型:`2D 10 11 00` + * 8字节数据内容:前4个字节为速度,单位rad/s + * 数据类型:float + * 范例:`FE 2D 10 11 00 CD CC 4C 3E 00 00 00 00 B4` + * 含义:0.2rad/s,如果要转换为m/s,需要乘以车轮半径 + +* 转向角度: + * 4字节消息类型:`2D 20 11 00` + * 8字节数据内容:前4个字节为角度,单位rad + * 数据类型:float + 范例:`FE 2D 20 11 00 CD CC CC 3D 00 00 00 00 26` + * 含义:0.1rad,正方向为向左转 + +* 异常状态报告: + * 4字节消息:`2D 00 23 00` + * 8字节数据内容:[0]:TCU状态;[1]:左轮ECU状态 [2]:右轮ECU状态。每个字节0位为急停,1位为数据超时,2位为电流超限,3位为刹车状态 + * 范例:`FE 2D 00 23 00 01 02 05 00 00 00 00 00 0E` + * 含义:TCU节点急停状态,左轮ECU编码器数据超时,右轮ECU急停状态且电流超限。 + +## 5、CRC8校验 + +* 使用CRC-8/MAXIM方式计算 + +* 示例:在线计算crc8(http://www.ip33.com/crc.html) + +![img](./imgs/crc8-maxim.png) + + + +* 查表法计算crc8 + +``` +const uint8_t CRC8Table[]={ + 0 94 188 226 97 63 221 131 194 156 126 32 163 253 31 65 + 157 195 33 127 252 162 64 30 95 1 227 189 62 96 130 220 + 35 125 159 193 66 28 254 160 225 191 93 3 128 222 60 98 + 190 224 2 92 223 129 99 61 124 34 192 158 29 67 161 255 + 70 24 250 164 39 121 155 197 132 218 56 102 229 187 89 7 + 219 133 103 57 186 228 6 88 25 71 165 251 120 38 196 154 + 101 59 217 135 4 90 184 230 167 249 27 69 198 152 122 36 + 248 166 68 26 153 199 37 123 58 100 134 216 91 5 231 185 + 140 210 48 110 237 179 81 15 78 16 242 172 47 113 147 205 + 17 79 173 243 112 46 204 146 211 141 111 49 178 236 14 80 + 175 241 19 77 206 144 114 44 109 51 209 143 12 82 176 238 + 50 108 142 208 83 13 239 177 240 174 76 18 145 207 45 115 + 202 148 118 40 171 245 23 73 8 86 180 234 105 55 213 139 + 87 9 235 181 54 104 138 212 149 203 41 119 244 170 72 22 + 233 183 85 11 136 214 52 106 43 117 151 201 74 20 246 168 + 116 42 200 150 21 75 169 247 182 232 10 84 215 137 107 53 }; + +uint8_t can_crc8_calculate(uint8_t *p uint8_t counter) +{ + uint8_t crc8 = 0; + for( ; counter > 0; counter--){ + crc8 = CRC8Table[crc8^*p]; + p++; + } + return(crc8); +} +``` + +## 6 跨平台串口工具 + +推荐一款跨平台的串口工具Comtools: (https://github.com/Neutree/COMTool) + +![Comtools.png](./imgs/Comtools.png) diff --git a/chassis/imgs/1.png b/chassis/imgs/1.png new file mode 100644 index 0000000000000000000000000000000000000000..88722171d9c7017efa6975a492ed11bd8a2800bf GIT binary patch literal 188192 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