底盘反馈
<p><center><strong>速度反馈</strong></center></p>
<p>简要描述:
机器人底盘速度反馈</p>
<p>话题:
发送指令:/get_speed_response</p>
<pre><code class="language-json">{
&quot;msg&quot;:{
&quot;v&quot;:0.1,
&quot;w&quot;:0.1
}
}</code></pre>
<table>
<thead>
<tr>
<th>参数名</th>
<th>必选</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>v</td>
<td>是</td>
<td>float</td>
<td>线速度</td>
</tr>
<tr>
<td>w</td>
<td>是</td>
<td>float</td>
<td>角速度</td>
</tr>
</tbody>
</table>
<hr />
<hr />
<hr />
<p><center><strong>IO反馈</strong></center></p>
<p><strong>返回示例</strong>
发布话题:/io_ctrl_response
返回消息:</p>
<pre><code class="language-json">{
&quot;msg&quot;:{
&quot;io&quot;:[
{
&quot;name&quot;:&quot;&quot;,//控制模块名称
&quot;value&quot;:0//值0-255,如果是开关状态,则用0表示关,1表示开
}
]
}
}</code></pre>
<p>返回参数说明</p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>是否必存</th>
<th>类型</th>
<th>内容</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>io</td>
<td>是</td>
<td>json[]</td>
<td>反馈IO对象</td>
<td>无</td>
</tr>
<tr>
<td>name</td>
<td>是</td>
<td>string</td>
<td>名称</td>
<td>参考IO说明</td>
</tr>
<tr>
<td>value</td>
<td>是</td>
<td>int</td>
<td>值</td>
<td>参考IO说明</td>
</tr>
</tbody>
</table>
<hr />
<hr />
<hr />
<p><center><strong>电压反馈</strong></center></p>
<p>简要描述:
机器人电压上报</p>
<p><strong>返回示例</strong>
发布话题:/get_voltage_response
返回消息:</p>
<pre><code class="language-json">{
&quot;msg&quot;:{
&quot;voltage&quot;:[80000,0],
&quot;current&quot;:[1000,0],
&quot;state&quot;: [0,0],
&quot;charging_state&quot;: 0
}
}</code></pre>
<p>返回参数说明</p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>是否必存</th>
<th>类型</th>
<th>内容</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>voltage</td>
<td>是</td>
<td>int[]</td>
<td>电池1电压,电池2电压</td>
<td>单位0.01v</td>
</tr>
<tr>
<td>current</td>
<td>是</td>
<td>int[]</td>
<td>电池1电流,电池2电流</td>
<td>单位0.1A</td>
</tr>
<tr>
<td>state</td>
<td>是</td>
<td>int[]</td>
<td>电池1状态,电池2状态</td>
<td>参考各电池状态说明表</td>
</tr>
<tr>
<td>charging_state</td>
<td>是</td>
<td>int</td>
<td>充电状态</td>
<td>0:未充电 1:充电</td>
</tr>
</tbody>
</table>
<hr />
<hr />
<hr />
<p><center><strong>超声波反馈</strong></center></p>
<p>简要描述:
机器人超声波上报</p>
<p><strong>返回示例</strong>
发布话题:/sonic_response
返回消息:</p>
<pre><code class="language-json">{
&quot;msg&quot;:{
&quot;sonic&quot;:[100,100,100,100,100,100]
}
}</code></pre>
<p>返回参数说明</p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>是否必存</th>
<th>类型</th>
<th>内容</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>sonic</td>
<td>是</td>
<td>in[]</td>
<td>超声数据</td>
<td>单位mm</td>
</tr>
</tbody>
</table>
<hr />
<hr />
<hr />
<p><center><strong>停止状态反馈</strong></center></p>
<p>简要描述:
机器人停止状态上报</p>
<p><strong>返回示例</strong>
发布话题:/stop_state_response
返回消息:</p>
<pre><code class="language-json">{
&quot;msg&quot;:{
&quot;button&quot;: 0,
&quot;collision&quot;: 0,
&quot;sonic&quot;: 0,
&quot;soft&quot;: 0
}
}</code></pre>
<p>返回参数说明</p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>是否必存</th>
<th>类型</th>
<th>内容</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>button</td>
<td>是</td>
<td>int</td>
<td>急停按钮急停</td>
<td>0:无触发 1:触发</td>
</tr>
<tr>
<td>collision</td>
<td>是</td>
<td>int</td>
<td>触边急停</td>
<td>二进制第0位 前触边 第1位后触边,0:无触发 1:触发</td>
</tr>
<tr>
<td>sonic</td>
<td>是</td>
<td>int</td>
<td>超声急停</td>
<td>二进制第x位 第X个超声, 0:无触发 1:触发</td>
</tr>
<tr>
<td>soft</td>
<td>是</td>
<td>int</td>
<td>软件急停</td>
<td>0:无触发 1:触发</td>
</tr>
</tbody>
</table>
<hr />
<hr />
<hr />
<p><center><strong>温度反馈</strong></center></p>
<p>简要描述:
机器人温度信息上报</p>
<p><strong>返回示例</strong>
发布话题:/temperature_response
返回消息:</p>
<pre><code class="language-json">{
&quot;msg&quot;:{
&quot;temperature&quot;:[
{
&quot;name&quot;:&quot;&quot;,//温度点名称
&quot;value&quot;:0//值
}
]
}
}</code></pre>
<p>返回参数说明</p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>是否必存</th>
<th>类型</th>
<th>内容</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>temperature</td>
<td>是</td>
<td>json[]</td>
<td>反馈temperature对象</td>
<td>无</td>
</tr>
<tr>
<td>name</td>
<td>是</td>
<td>string</td>
<td>名称</td>
<td>对应温度点名称</td>
</tr>
<tr>
<td>value</td>
<td>是</td>
<td>int</td>
<td>值</td>
<td>温度值,单位0.1℃</td>
</tr>
</tbody>
</table>
<hr />
<hr />
<hr />
<p><center><strong>电机信息反馈</strong></center></p>
<p>简要描述:
机器人电机信息上报</p>
<p><strong>返回示例</strong>
发布话题:/motor_info_response
返回消息:</p>
<pre><code class="language-json">{
&quot;msg&quot;:{
&quot;rpm&quot;:[0,0,0,0],
&quot;current&quot;:[0,0,0,0],
&quot;state&quot;:[0,0,0,0]
}
}</code></pre>
<p>返回参数说明</p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>是否必存</th>
<th>类型</th>
<th>内容</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>rpm</td>
<td>是</td>
<td>int[]</td>
<td>电机转速</td>
<td>无</td>
</tr>
<tr>
<td>current</td>
<td>是</td>
<td>int[]</td>
<td>电机电流</td>
<td>单位0.01A</td>
</tr>
<tr>
<td>state</td>
<td>是</td>
<td>int[]</td>
<td>电机状态</td>
<td>参考电机说明表</td>
</tr>
</tbody>
</table>
<hr />
<hr />
<hr />
<p><center><strong>加热系统控制反馈</strong></center></p>
<p>简要描述:
机器人加热系统控制反馈信息</p>
<p><strong>返回示例</strong>
发布话题:/heater_control_response
返回消息:</p>
<pre><code class="language-json">{
&quot;msg&quot;:{
&quot;control_1&quot;:0,
&quot;min_1&quot;:40,
&quot;max_1&quot;:65,
&quot;control_2&quot;:0,
&quot;min_2&quot;:40,
&quot;max_2&quot;:65
}
}</code></pre>
<table>
<thead>
<tr>
<th>参数名</th>
<th>必选</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>control_1</td>
<td>是</td>
<td>int</td>
<td>加热系统1状态 0:关闭 1:开启</td>
</tr>
<tr>
<td>min_1</td>
<td>是</td>
<td>int</td>
<td>加热系统1温度下限</td>
</tr>
<tr>
<td>max_1</td>
<td>是</td>
<td>int</td>
<td>加热系统1温度上限</td>
</tr>
<tr>
<td>control_2</td>
<td>是</td>
<td>int</td>
<td>加热系统2状态 0:关闭 1:开启</td>
</tr>
<tr>
<td>min_2</td>
<td>是</td>
<td>int</td>
<td>加热系统2温度下限</td>
</tr>
<tr>
<td>max_2</td>
<td>是</td>
<td>int</td>
<td>加热系统2温度上限</td>
</tr>
</tbody>
</table>
<hr />
<hr />
<hr />
<p><center><strong>硬件配置反馈</strong></center></p>
<p>简要描述:
读取单板硬件配置信息
方式:
发送指令到机器人
话题:
发送指令:/hardware_ctrl_response</p>
<pre><code class="language-json">{
&quot;msg&quot;:{
&quot;Mode&quot;: int(), // int8 操作模式 0:读取 1:写入
&quot;MaxRPM&quot;: int(), // uint16 电机最高转速 RPM
&quot;DriverType&quot;: int(), // uint8 控制指令:0x00:惠斯通 0x01:拓达 0x02:中菱
&quot;DriverNumber&quot;: int(), // uint8 电机数量
&quot;VoltageType&quot;: int(), // uint8 电压表类型 0x00:速遥电池 0x01:睿禹能电池 0x02:RS485电压模块
&quot;UltrasonicType&quot;: int(), // uint8 超声类型 104:KS104 136:KS136A
&quot;FrontNumber&quot;: int(), // uint8 前侧超声数量
&quot;BackNumber&quot;: int(), // uint8 后侧超声数量
&quot;SideNumber&quot;: int(), // uint8 左右侧超声数量
&quot;GearBoxDirection&quot;: int(), // uint8 减速器转向 0:反向 1:正向
&quot;PSC&quot;: int(), // uint16 PWM分频系数
&quot;PER&quot;: int(), // uint16 PWM自动重载值 T=(PSC-1)/(PER-1)/72000 ms
&quot;ControlMode&quot;: int(), // uint8 0:RS232 1:CAN
&quot;TemperatureNumber&quot;: int(), // uint8 温度传感器数量
&quot;version&quot;: &quot;0.0.0.0&quot;, // string 版本号4个字节组成x.x.x.x
&quot;Retain1&quot;: int(), // uint8 备用标志位1
&quot;Retain2&quot;: int(), // uint8 备用标志位2
&quot;Retain3&quot;: int(), // uint8 备用标志位3
&quot;Retain4&quot;: int(), // uint8 备用标志位4
}
}</code></pre>
<table>
<thead>
<tr>
<th>参数名</th>
<th>必选</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>Mode</td>
<td>是</td>
<td>int8</td>
<td>操作模式 0:读取 1:写入</td>
</tr>
<tr>
<td>MaxRPM</td>
<td>是</td>
<td>uint16</td>
<td>电机最高转速 RPM</td>
</tr>
<tr>
<td>DriverType</td>
<td>是</td>
<td>uint8</td>
<td>控制指令:0x00:惠斯通 0x01:拓达 0x02:中菱</td>
</tr>
<tr>
<td>DriverNumber</td>
<td>是</td>
<td>uint8</td>
<td>电机数量</td>
</tr>
<tr>
<td>VoltageType</td>
<td>是</td>
<td>uint8</td>
<td>电压表类型 0x00:速遥电池 0x01:睿禹能电池 0x02:RS485电压模块</td>
</tr>
<tr>
<td>UltrasonicType</td>
<td>是</td>
<td>uint8</td>
<td>超声类型 104:KS104 136:KS136A</td>
</tr>
<tr>
<td>FrontNumber</td>
<td>是</td>
<td>uint8</td>
<td>前侧超声数量</td>
</tr>
<tr>
<td>BackNumber</td>
<td>是</td>
<td>uint8</td>
<td>后侧超声数量</td>
</tr>
<tr>
<td>SideNumber</td>
<td>是</td>
<td>uint8</td>
<td>左右侧超声数量</td>
</tr>
<tr>
<td>GearBoxDirection</td>
<td>是</td>
<td>uint8</td>
<td>减速器转向 0:反向 1:正向</td>
</tr>
<tr>
<td>PSC</td>
<td>是</td>
<td>uint16</td>
<td>PWM分频系数</td>
</tr>
<tr>
<td>PER</td>
<td>是</td>
<td>uint16</td>
<td>PWM自动重载值 T=(PSC-1)/(PER-1)/72000 ms</td>
</tr>
<tr>
<td>ControlMode</td>
<td>是</td>
<td>uint8</td>
<td>0:RS232 1:CAN</td>
</tr>
<tr>
<td>TemperatureNumber</td>
<td>是</td>
<td>uint8</td>
<td>温度传感器数量</td>
</tr>
<tr>
<td>version</td>
<td>是</td>
<td>string</td>
<td>版本号4个字节组成x.x.x.x</td>
</tr>
<tr>
<td>Retain1</td>
<td>是</td>
<td>uint8</td>
<td>备用标志位1</td>
</tr>
<tr>
<td>Retain2</td>
<td>是</td>
<td>uint8</td>
<td>备用标志位2</td>
</tr>
<tr>
<td>Retain3</td>
<td>是</td>
<td>uint8</td>
<td>备用标志位3</td>
</tr>
<tr>
<td>Retain4</td>
<td>是</td>
<td>uint8</td>
<td>备用标志位4</td>
</tr>
</tbody>
</table>
<hr />
<hr />
<hr />
<p><center><strong>轮速反馈</strong></center></p>
<p>简要描述:
机器人四轮轮速信息上报</p>
<p><strong>返回示例</strong>
发布话题:/wheel_speed_response
返回消息:</p>
<pre><code class="language-json">{
&quot;msg&quot;:{
&quot;v&quot;:[1.001,-1.022,1.012,-1.002]
}
}</code></pre>
<p>返回参数说明</p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>是否必存</th>
<th>类型</th>
<th>内容</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>v</td>
<td>是</td>
<td>float[]</td>
<td>各车轮线速度,前进方向为正,精度0.001m/s</td>
<td>四电机顺序[左前,右前,左后,右后],两电机顺序[左,右,0,0]</td>
</tr>
</tbody>
</table>