python实现CS机器人30001端口数据解析
1.简介
30001 端口可🥡用于获【yòng yú huò】取机器【qǔ jī qì】人🌊的各种状态及数据,CS机器人【jī qì rén】🌊会以 10HZ 的频率向【xiàng】 30001 端口 发送机【fā sòng jī】器人🌊的状态【de zhuàng tài】数据,本文解析🤒”机器人【jī qì rén】🌊是否上电🚎“和【hé】🐕“机器人【jī qì rén】🌊当前实❗际关节角度【jiǎo dù】✌”为例说【wéi lì shuō】明如何🛅解析🤒30001端口返回的数据。
2.操作流程
为了更【wéi le gèng】容易理解【jiě】,以下先通过🏙网络调试助手,手动解【shǒu dòng jiě】析说明后再通过🏙python实现自♋动解析【dòng jiě xī】,详细报文请参【wén qǐng cān】🏥考【kǎo】🌳”机器人状态报🥊文表【wén biǎo】🏘“(“机器人状态报🥊文表【wén biǎo】🏘“联系漫蛙技术💦人员获取【qǔ】🏖)
2.1 通过调试软件手动解析
1.通过网🕍络调试💳助手连接CS机器人🚽30001端口后,机器人🚽会以【huì yǐ】 10HZ 的频率向【xiàng】 30001 端口 发送数据【jù】🗑,如图🍷2-1-1所示【suǒ shì】:为机器人🚽FB1网口【wǎng kǒu】IP,以【yǐ】16进制格【jìn zhì gé】💼式接收🏼。

图2-1-1
2.1.1 整个机器人状态报文截取
1.通过【tōng guò】”机器人状态报文表【wén biǎo】”得知机器人状态数据💷总共有【zǒng gòng yǒu】🚹1157位字节【wèi zì jiē】♏(5+53+347+101+445+88+10+37+43+28=1157),其中报🐑文头:前面4位字节【wèi zì jiē】♏为报文🎖长度,第5位字节【wèi zì jiē】♏为报文🎖类型=16。

图2-1-2
2.首先我【shǒu xiān wǒ】们需要找到报🔵文头【wén tóu】🌨,因为调🛅试助手【shì zhù shǒu】是以十六进【shí liù jìn】制接收机器人【jī qì rén】🔆返回的数【shù】🕜据,”机器人【jī qì rén】🔆状态报【zhuàng tài bào】🐿文表🈚”中的报文的长度和报文类型🔺(16)数【shù】据为十进制【shí jìn zhì】⚫,所以首先把整个报文🔰长度(1157)和报文类型🔺=(16)转换为16进制【jìn zhì】,方便寻【fāng biàn xún】找报文🍘头【tóu】🌨,十进制【shí jìn zhì】⚫1157转换成📱十六进【shí liù jìn】制为【zhì wéi】🔃 ”485“ 又因为报文头【wén tóu】🌨在数据【zài shù jù】中占四【zhōng zhàn sì】🛂个字节所以整个报文🔰头【tóu】🌨长度为【zhǎng dù wéi】”00 00 04 85“,十进制【shí jìn zhì】⚫16转换成📱十六进【shí liù jìn】制为【zhì wéi】🔃“10”,如图🐌2-1-3:


图2-1-3
3.通过上面的报文【wén】头【tóu】🕢数据转换后我【huàn hòu wǒ】们在机【men zài jī】器人返回的数据🤮中找到【zhōng zhǎo dào】整个报文【wén】头【tóu】🕢长度为👧”00 00 04 85“和报文【hé bào wén】类型【lèi xíng】🚫”10“,从报文【wén】🍌头【tóu】🕢”00 00 04 85 10“的第1位往后截取到🚜1157位就是📷整个机【zhěng gè jī】😹器人状态的报文【wén】,如图2-1-4所示【suǒ shì】:
机器人返回的数据:# RECV HEX
00 00 00 0B C8 00 00 00 00 00 00 00 00 00 04 85 10 00 00 00 35 00 00 00 00 00 0B 76 45 E1 01 01 00 00 00 00 00 03 00 3F F0 00 00 00 00 00 00 3F F0 00 00 00 00 00 00 3F F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 5B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EF 00 00 00 00 BF F9 21 FB 54 52 45 50 BF F9 21 FB 54 52 45 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EF 00 00 00 00 BF F9 21 FB 54 52 45 50 BF F9 21 FB 54 52 45 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EF 00 00 00 00 3F F9 21 FB 54 52 45 50 3F F9 21 FB 54 52 45 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ......到1157位字节为整个机器人【jī qì rén】🐞状态的【zhuàng tài de】报文🥉
图2-1-4
2.1.2 机器人模式解析
1.当我们【dāng wǒ men】需要解☔析机器🏞人的某一种状态时,首先需【shǒu xiān xū】🍉要找到这个状【zhè gè zhuàng】🛐态的子报文【zǐ bào wén】😅头即可🛒,例如通过”机器人【jī qì rén】状态报【zhuàng tài bào】文表”得知⛓”机器人【jī qì rén】模式📳”子报文【zǐ bào wén】😅长度为53且占4个字节如图【rú tú】2-1-5所示😿,所以转换成十【huàn chéng shí】六进制为“00 00 00 35”。

图2-1-5
2. 首先需♍要找到机器人【jī qì rén】✝模式子报文长🕳度【dù】“00 00 00 35”和子报【hé zǐ bào】🕎文类型【wén lèi xíng】”00“,然后从报文头【bào wén tóu】“00 00 00 35 00“第1位字节截取到【jié qǔ dào】💋53位字节为机器人【jī qì rén】✝模式数据的报文如🌜图【tú】2-1-6所示🗂(红到紫):
机器人返回的数据:# RECV HEX
00 00 00 0B C8 00 00 00 00 00 00 00 00 00 04 85 10 00 00 00 35 00 00 00 00 00 0B 76 45 E1 01 01 01 00 00 00 00 03 00 3F F0 00 00 00 00 00 00 3F F0 00 00 00 00 00 00 3F F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 5B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EF 00 00 00 00 BF F9 21 FB 54 52 45 50 BF F9 21 FB 54 52 45 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EF 00 00 00 00 BF F9 21 FB 54 52 45 50 BF F9 21 FB 54 52 45 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EF 00 00 00 00 3F F9 21 FB 54 52 45 50 3F F9 21 FB 54 52 45 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
图2-1-6
3. 比如想知道机器人【jī qì rén】🍴是否上电【diàn】,通过【tōng guò】”机器人【jī qì rén】🍴状态报【zhuàng tài bào】文表”得知【dé zhī】”机器人【jī qì rén】🍴是否上电【diàn】”在机器😧人模式🏴数据报❓文中的【wén zhōng de】第✴16位字节【wèi zì jiē】占一个【zhàn yī gè】字节如图🧘2-1-7所示【suǒ shì】,所以“机器人【jī qì rén】🍴模式报【mó shì bào】文”中的第✴16位为🧛1时机器🛁人上电【rén shàng diàn】,为0时机器🛁人下电【diàn】🤾,如图🧘2-1-8所示【suǒ shì】“机器人【jī qì rén】🍴模式报【mó shì bào】文”中的第✴16位为🧛01机器人【jī qì rén】🍴已经上电【diàn】。

图2-1-7
机器人返回的数据:# RECV HEX
00 00 00 0B C8 00 00 00 00 00 00 00 00 00 04 85 10 00 00 00 35 00 00 00 00 00 0B 76 45 E1 01 01 01 00 00 00 00 03 00 3F F0 00 00 00 00 00 00 3F F0 00 00 00 00 00 00 3F F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 5B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EF 00 00 00 00 BF F9 21 FB 54 52 45 50 BF F9 21 FB 54 52 45 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EF 00 00 00 00 BF F9 21 FB 54 52 45 50 BF F9 21 FB 54 52 45 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EF 00 00 00 00 3F F9 21 FB 54 52 45 50 3F F9 21 FB 54 52 45 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
图2-1-8
2.1.3 关节数据解析
1.当需要【dāng xū yào】🈴解析机【jiě xī jī】器人实🔹际关节⛎角度时🈵,一样的方法首【fāng fǎ shǒu】先需要找到关【zhǎo dào guān】节数据【jù】的子报🐏文头,通过【tōng guò】”机器人状态报文表👫”得知【dé zhī】”关节数【guān jiē shù】据【jù】”子报文📵长度为【zhǎng dù wéi】347字节且占前面4个字节🏑,子报文📵类型为1占第🕔4个字节🏑,如图2-1-9所示,所以转🤤换成十【huàn chéng shí】六进制【liù jìn zhì】分别为“00 00 01 5B”,”01“。

图2-1-9
2.首先需【shǒu xiān xū】🕝要找到⏺关节数❎据子报【jù zǐ bào】文长度“00 00 01 5B”和子报文类型【wén lèi xíng】”01“,然后从👬报文头“00 00 01 5B 01“第1位字节【wèi zì jiē】🥕截取到347位字节【wèi zì jiē】🥕为机器【wéi jī qì】人模式数据的【shù jù de】报文如图2-1-10所示(红到紫😣)
机器人返回的数据:# RECV HEX
00 3F F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 5B 01 BF B7 91 B4 46 08 38 A1 BF B7 91 B4 46 08 38 A1 BE B9 A1 C1 77 44 F2 AF FF FF B0 37 FF FF B0 37 00 00 00 00 00 00 00 00 00 00 00 00 41 F0 00 00 00 00 00 00 FD 00 00 00 00 BF F9 21 FB 54 52 45 50 BF F9 21 FB 54 52 45 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 F0 00 00 00 00 00 00 FD 00 00 00 00BF F9 0E 79 07 CC 04 57 BF F9 0E 79 07 CC 04 57 00 00 00 00 00 00 00 00 00 04 6C CE 00 04 6C CE 00 00 00 00 00 00 00 00 00 00 00 00 41 F0 00 00 80 00 00 00 FD 00 00 00 00 BF F9 21 FB 54 52 45 50 BF F9 21 FB 54 52 45 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 F0 00 00 00 00 00 00 FD 00 00 00 00 3F F9 21 FB 54 52 45 50 3F F9 21 FB 54 52 45 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 F0 00 00 00 00 00 00 FD 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 F0 00 00 00 00 00 00 FD 00 00 00 00 00 00 00 65 04 3F DE 32 18 79 45 90 86 BF C8 89 3E F4 BA 52 96 3F DF F
图2-1-10
3.由图【yóu tú】2-1-9可知关【kě zhī guān】节【jiē】🥋数据【shù jù】👻中的347字节【jiē】中前面五🍙个字节【jiē】为子报文头【bào wén tóu】,报文头【bào wén tóu】后面分别为六个关节【guān jiē】🍅的数据【de shù jù】🍊每个关🔧节【jiē】数据【shù jù】🐍有57个字节【jiē】:子报文头【bào wén tóu】(5)+关节【guān jiē】🥋1数据【shù jù】👻(57)+关节【guān jiē】🥋2数据【shù jù】👻(57)+关节【guān jiē】🥋3数据【shù jù】👻(57)+关节【guān jiē】🥋4数据【shù jù】👻(57)+关节【guān jiē】🥋5数据【shù jù】👻(57)+关节【guān jiē】🥋6数据【shù jù】👻=关节【guān jiē】🥋数据【shù jù】👻(347),为了便【wéi le biàn】于解析每个关🔧节的数【jiē de shù】据🍊以颜色【yǐ yán sè】区分如【qū fèn rú】图📘2-1-11所示🤺:
机器人返回的数据:# RECV HEX
00 3F F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 5B 01 关节【guān jiē】🆕1数据【shù jù】😬: BF B7 91 B4 46 08 38 A1 BF B7 91 B4 46 08 38 A1 BE B9 A1 C1 77 44 F2 AF FF FF B0 37 FF FF B0 37 00 00 00 00 00 00 00 00 00 00 00 00 41 F0 00 00 00 00 00 00 FD 00 00 00 00 关节【guān jiē】🆕2数据【shù jù】😬: BF F9 21 FB 54 52 45 50 BF F9 21 FB 54 52 45 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 F0 00 00 00 00 00 00 FD 00 00 00 00 关节【guān jiē】🆕3数据【shù jù】😬: BF F9 0E 79 07 CC 04 57 BF F9 0E 79 07 CC 04 57 00 00 00 00 00 00 00 00 00 04 6C CE 00 04 6C CE 00 00 00 00 00 00 00 00 00 00 00 00 41 F0 00 00 80 00 00 00 FD 00 00 00 00 关节【guān jiē】🆕4数据【shù jù】😬: BF F9 21 FB 54 52 45 50 BF F9 21 FB 54 52 45 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 F0 00 00 00 00 00 00 FD 00 00 00 00 关节【guān jiē】🆕5数据【shù jù】😬: 3F F9 21 FB 54 52 45 50 3F F9 21 FB 54 52 45 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 F0 00 00 00 00 00 00 FD 00 00 00 00 关节【guān jiē】🆕6数据【shù jù】😬: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 F0 00 00 00 00 00 00 FD 00 00 00 00 00 00 00 65 04 3F DE 32 18 79 45 90 86 BF
图2-1-11
4.通过📕”机器人【jī qì rén】状态报【zhuàng tài bào】文表”得知,如图2-1-12得知每个关节【guān jiē】👟的实际【de shí jì】💆关节角【guān jiē jiǎo】🌁度数据【dù shù jù】在每个【zài měi gè】关节【guān jiē】👟数据的前【qián】🔝8个字节🛤,所以💱:关节【guān jiē】👟1的实际【de shí jì】💆关节角【guān jiē jiǎo】🌁度为🚈:”BF B7 91 B4 46 08 38 A1“,关节【guān jiē】👟2的实际【de shí jì】💆关节角【guān jiē jiǎo】🌁度为🚈:”BF F9 21 FB 54 52 45 50“,关节【guān jiē】👟3的实际【de shí jì】💆关节角【guān jiē jiǎo】🌁度为🚈:”BF F9 0E 79 07 CC 04 57“,关节【guān jiē】👟4的实际【de shí jì】💆关节角【guān jiē jiǎo】🌁度为🚈:"BF F9 21 FB 54 52 45 50",关节【guān jiē】👟5的实际【de shí jì】💆关节角【guān jiē jiǎo】🌁度为🚈:”3F F9 21 FB 54 52 45 50“,关节【guān jiē】👟6的实际【de shí jì】💆关节角【guān jiē jiǎo】🌁度为🚈:”00 00 00 00 00 00 00 00“,

图2-1-12
5.由于网【yóu yú wǎng】🚞络调试助手是🛍以16进制接🚶收机器【shōu jī qì】人返回【rén fǎn huí】的数【de shù】🚐据,所以需要把🈂16进制转【jìn zhì zhuǎn】换成浮点数【shù】🚐(8个字节【jiē】💸为双精【wéi shuāng jīng】度浮点🎏数【shù】🚐),可以在【kě yǐ zài】网上下【wǎng shàng xià】🍼载【zǎi】”浮点数【shù】🚐十六进【shí liù jìn】制转换器“对数【shù】据进🥐行转换🔛,下面以关节【jiē】👖1的实际📕关节【jiē】👖角度:”BF B7 91 B4 46 08 38 A1“为例对数【shù】据进🥐行转换🔛,得到的【dé dào de】数【shù】🚐据正确,说明解【shuō míng jiě】析关节【jiē】🔻1实际关节【jiē】👖角度正【jiǎo dù zhèng】确,如图2-1-13所示🧗:

图2-1-13
6. 通过”浮点数【fú diǎn shù】十六进制转换【zhì zhuǎn huàn】器【qì】🌳“对每个关节实【guān jiē shí】💷际角度👐数据依次进行🥈转换得:
关节【guān jiē】1实际关节【guān jiē】角度🛄:BF B7 91 B4 46 08 38 A1 = -0.0920670195557
关节2实际关节角度【jiē jiǎo dù】🦓:BF F9 21 FB 54 52 45 50 = -1.5707963270000
关节3实际关🖍节角度【jiē jiǎo dù】:BF F9 0E 79 07 CC 04 57 = -1.5660333923882
关节4实际关【shí jì guān】节角度😠:BF F9 21 FB 54 52 45 50 = -1.5707963270000
关节5实际关🈺节角度【jiē jiǎo dù】:3F F9 21 FB 54 52 45 50 = 1.5707963270146
关节【jiē】🕕6实际关【shí jì guān】节【jiē】🕕角度:00 00 00 00 00 00 00 00 = 0.00
四舍五【sì shě wǔ】🍦入保留📫两位小🤜数后与【shù hòu yǔ】机器人示教器【shì jiāo qì】上显示的数据一样说🍐明解析【míng jiě xī】🈵正确【zhèng què】,如图2-1-14,单位(弧度)。

图2-1-14
2.2 通过python自动解析
通过【guò】以上手动解析的方法对😔机器人【jī qì rén】📢状态报文以及【wén yǐ jí】数据格式基本🌘了解后下面通🎫过【guò】python对30001端口数【duān kǒu shù】据进行【jù jìn háng】解析,还是以💶”机器人【jī qì rén】📢是否上📓电🙊“和【hé】🛐“机器人【jī qì rén】📢当前实际关节🌰角度【jiǎo dù】”为例说明【míng】。
2.2.1 程序思路
1.把机器人模式📱子报文【bào wén】🎤长度”53“和关节【hé guān jiē】数据子【shù jù zǐ】报文【bào wén】🎤长度”347“按照大【àn zhào dà】端字节序打包成👏4个字节【gè zì jiē】📓的形制🌿存放相【cún fàng xiàng】应的变量中(CS机器人数据协🌇议采用【yì cǎi yòng】🐴大端模【dà duān mó】🦎式,子报文【bào wén】🎤长度占4个字节【gè zì jiē】📓,机器人以字节【yǐ zì jiē】流的格【liú de gé】式返回,把子报🔕文长度【wén zhǎng dù】🚯转换成🍋字节流的格【liú de gé】式方便程🍠序中使【xù zhōng shǐ】用🐴);
2.连接机器人【qì rén】🎍30001端口后循环接🍝收机器人【qì rén】🎍返回的数据🆙,判断接收的数【shōu de shù】💷据中是否有机器人【qì rén】🎍模式子【mó shì zǐ】报【bào】🏭文头和关节数【guān jiē shù】🚞据子报【bào】文头;
3.解析【jiě xī】⛵”机器人【jī qì rén】是【shì】c)“后再次去掉🌦”子报文类型(1个字节🗄)“还剩🖼48个字节🗄=数据C,通过【tōng guò】”机器人【jī qì rén】状态报【zhuàng tài bào】🥥文表🕢”得知”机器人【jī qì rén】是否上【shì fǒu shàng】电【diàn】🐗“位💀于”机器人【jī qì rén】模式”报文中【bào wén zhōng】🔭的第16位💀,由于数据C中已经【zhōng yǐ jīng】🛃去掉🌦子报文头【tóu】(“子报文长度【zhǎng dù】4个字节🗄”和子报【hé zǐ bào】文类型1个字节🗄),因此机器人【jī qì rén】是否上【shì fǒu shàng】电【diàn】🐗“位💀于数据C中的第11位💀,所以需【suǒ yǐ xū】🧓要把🐡C[10:11]换成成整数后判断是【shì】否为【wéi】👤1,为【wéi】🥄1时机器【shí jī qì】🌝人已上【rén yǐ shàng】电【diàn】🐗,为【wéi】🥄0时机器【shí jī qì】🌝人已下【rén yǐ xià】电【diàn】🐗;
4.解析【jiě xī】“关节【guān jiē】🔩实际角度【jiǎo dù】🎁”时【shí】:一样的方法以关节【guān jiē】🔩数据【shù jù】📿报文【bào wén】😧头分割【tóu fèn gē】,数据分【shù jù fèn】💤割后得【gē hòu dé】到数据【dào shù jù】📿为😗[A,B],先判断数据【shù jù】📿B的长度【dù】🗓是否大📡于✈343(判断关🤥节【jiē】数据【shù jù】🐋是否完【shì fǒu wán】🔽整),因为关节【guān jiē】⛱数据【shù jù】📿子报文【zǐ bào wén】😀头占4个字节【gè zì jiē】🏹,把关节【guān jiē】🔩子报文【zǐ bào wén】😀头分割【tóu fèn gē】还剩💒343个字节【gè zì jiē】🏹,如果数【rú guǒ shù】🏬据✂B的长度【dù】🗓大343时【shí】,那么可以截取【yǐ jié qǔ】🔏数据【shù jù】📿B的前🥔343位字节【wèi zì jiē】做为关节【guān jiē】⛱数据【shù jù】📿报文【bào wén】😧C数据【shù jù】📿,如:C=B[1:343](再次去【qù】🍻掉前面一个字节【gè zì jiē】🏹:子报文【zǐ bào wén】😀类型),因为分👁割掉子“报文【bào wén】😧长度【dù】🎁(4个字节【gè zì jiē】🏹)“后再次🔬去【qù】掉🤠”子报文【zǐ bào wén】😀类型(1个字节【gè zì jiē】🏹)“还剩💒342个字节【gè zì jiē】🏹=数据【shù jù】📿C,通过”机器人🍻状态报文【bào wén】😧表【biǎo】”得知数【dé zhī shù】据📿C前57位是关【wèi shì guān】💾节【jiē】1的数据【shù jù】📿,关节【guān jiē】🔩1数据后【shù jù hòu】📈57位是关【wèi shì guān】💾节【jiē】2数据【shù jù】📿,关节【guān jiē】🔩2数c据✂后57位是关【wèi shì guān】💾节【jiē】3数据【shù jù】📿,依此类【yī cǐ lèi】推到关【tuī dào guān】节【jiē】🔩6数据【shù jù】📿,每个关🥓节【jiē】的前🥔8个字节【gè zì jiē】🏹是相应🚬的实际关节【guān jiē】🔩角度【jiǎo dù】🎁,因此解析【jiě xī】数据【shù jù】📿C的前🥔8位字节【wèi zì jiē】为关节【guān jiē】⛱1的实际关节【guān jiē】🔩角度后【jiǎo dù hòu】去【qù】📼掉关节【diào guān jiē】🔩1的所有数据后【shù jù hòu】📈得数据【dé shù jù】🏾D,解析【jiě xī】数据【shù jù】📿D的前🥔8位字节【wèi zì jiē】为关节【guān jiē】⛱2的实际关节【guān jiē】🔩角度后【jiǎo dù hòu】去【qù】📼掉关节【diào guān jiē】🔩2的所有数据后【shù jù hòu】📈得数据【dé shù jù】🏾F,依此类【yī cǐ lèi】推到关【tuī dào guān】节【jiē】🔩6,如:关节【guān jiē】🔩1=C[0:8],D=C[57:],关🐢2=D[0:8],F=[57:],依此类【yī cǐ lèi】推得到六个关节【guān jiē】🔩的数据【shù jù】📿,最后将【zuì hòu jiāng】😂截取的数据【shù jù】转🍨换成双【huàn chéng shuāng】精度【dù】🎁浮点数【fú diǎn shù】📓;
2.2.2 程序代码
python解析📍30001端口机器人模【qì rén mó】式及关节位置🏴案例【àn lì】.py
3.常见问题解答
1.需要连接🖱CS机器人【jī qì rén】🚘FB1网口🤟,机器人【jī qì rén】🚘切换远【qiē huàn yuǎn】程模式【chéng mó shì】;
2.机器人🍿数据协♓议采用大端模【dà duān mó】。(例如【lì rú】: 00 00 08,小端模🔁式【shì】:08 00 00 ,大端模【dà duān mó】式【shì】:00 00 08);
3.机器人〽返回的【fǎn huí de】位置数据以米和弧度【hé hú dù】🍣为单位;
4.端口🍒连接不上时【shàng shí】,检查一🏺下网络是不是没有连【méi yǒu lián】接上🌾,可以在🐕示教器【shì jiāo qì】网络设置页面查看,或者使🌷用电脑【yòng diàn nǎo】💄ping一下看看能否ping通【tōng】🍔,网口【wǎng kǒu】🍒是否正常连接【cháng lián jiē】的FB1口🍒,机器人【jī qì rén】🤐否是远程模式。