KOBUKI 调试记录

版权声明:转载请标明出处,谢谢! 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节中有具体的解释。

猜你喜欢

转载自blog.csdn.net/SimileciWH/article/details/81560758