版权声明:转载请标明出处,谢谢! https://blog.csdn.net/SimileciWH/article/details/81560758
所有内容都是基于link:http://wiki.ros.org/kobuki/Tutorials
1 安装kobuki的烧录工具stm32flash(刷机工具)
ROS提供的下载链接打不开,可以从这下载:https://sourceforge.net/projects/stm32flash/files/
选择stm32flash-0.5.tar.gz (这是linux版本的)
1.1 安装stm32flash
解压进入目录,执行
make
提示如下:
$ make
cc -Wall -g -c -o dev_table.o dev_table.c
cc -Wall -g -c -o i2c.o i2c.c
cc -Wall -g -c -o init.o init.c
cc -Wall -g -c -o main.o main.c
cc -Wall -g -c -o port.o port.c
cc -Wall -g -c -o serial_common.o serial_common.c
cc -Wall -g -c -o serial_platform.o serial_platform.c
cc -Wall -g -c -o stm32.o stm32.c
stm32.c: In function ‘stm32_mass_erase’:
stm32.c:758:2: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
if (port->flags & PORT_STRETCH_W
^~
stm32.c:761:3: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
return STM32_ERR_UNKNOWN;
^~~~~~
cc -Wall -g -c -o utils.o utils.c
cd parsers && make parsers.a
make[1]: Entering directory '/home/simileciwh/Downloads/kobuki-Download-Firmware/stm32flash-v0.5/parsers'
cc -Wall -g -c -o binary.o binary.c
cc -Wall -g -c -o hex.o hex.c
ar rc parsers.a binary.o hex.o
make[1]: Leaving directory '/home/simileciwh/Downloads/kobuki-Download-Firmware/stm32flash-v0.5/parsers'
cc -o stm32flash dev_table.o i2c.o init.o main.o port.o serial_common.o serial_platform.o stm32.o utils.o parsers/parsers.a
这个warnning导致构建失败,查看原因是因为,if语句的花括号缺少导致的,通过提示,定位到函数stm32.c的758行,改为:
if (s_err != STM32_ERR_OK) {
fprintf(stderr, "Mass erase failed. Try specifying the number of pages to be erased.\n");
}
if (port->flags & PORT_STRETCH_W && stm->cmd->er != STM32_CMD_EE_NS){
stm32_warn_stretching("mass erase");
return STM32_ERR_UNKNOWN;
}
重新构建
$ make
cc -Wall -g -c -o stm32.o stm32.c
cd parsers && make parsers.a
make[1]: Entering directory '/home/simileciwh/Downloads/kobuki-Download-Firmware/stm32flash-v0.5/parsers'
make[1]: 'parsers.a' is up to date.
make[1]: Leaving directory '/home/simileciwh/Downloads/kobuki-Download-Firmware/stm32flash-v0.5/parsers'
cc -o stm32flash dev_table.o i2c.o init.o main.o port.o serial_common.o serial_platform.o stm32.o utils.o parsers/parsers.a
接着进行安装
$ sudo make install
[sudo] password for simileciwh:
cd parsers && make parsers.a
make[1]: Entering directory '/home/simileciwh/Downloads/kobuki-Download-Firmware/stm32flash-v0.5/parsers'
make[1]: 'parsers.a' is up to date.
make[1]: Leaving directory '/home/simileciwh/Downloads/kobuki-Download-Firmware/stm32flash-v0.5/parsers'
install -d /usr/local/bin
install -m 755 stm32flash /usr/local/bin
install -d /usr/local/share/man/man1
install -m 644 stm32flash.1 /usr/local/share/man/man1
成功。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2018-08-22更新....
2 距离上次第一次和kobuki链接调试大约2周的时间,这次再次连接kobuki调试时,提示如下错误信息:
[ERROR] [1534922261.832456467]: Kobuki : malformed sub-payload detected. [140][170][8C AA 55 4D 01 0F 38 4B 00 00 00 ]
[ERROR] [1534922263.291631232]: Kobuki : malformed sub-payload detected. [48][170][30 AA 55 4D 01 0F EC 50 00 00 ]
[ERROR] [1534922268.388104501]: Kobuki : malformed sub-payload detected. [60][170][3C AA 55 4D 01 0F D8 64 ]
[ERROR] [1534922269.127826450]: Kobuki : malformed sub-payload detected. [18][170][12 AA 55 4D 01 0F ]
[ERROR] [1534922271.446582618]: Kobuki : malformed sub-payload detected. [28][170][1C AA 55 4D 01 0F CC 70 00 00 ]
这很可能是电池电量很低导致的,充满电后,
如果仍然没有解决,
查阅过kobuki的使用资料后,发现这个错误是在一定条件下会出现的bug,但是不会影响kobuki的调试演示情况,资料链接如下:
link:https://download.csdn.net/download/simileciwh/10619974
在第9节中有具体的解释。