如何打印当前使用的lua参数

这里就是使用cartographer_print_configuration,它输出了当前cartographer使用的所有lua参数,虽然不如rosparam强大,但也是一种方法,本质就是读取加载的lua文件。

代码比较简单,不用太过研究,直接写launch

1
2
3
4
5
6
7
8
9
<launch>
<node name="print_mit_config" pkg="cartographer_ros"
type="cartographer_print_configuration" args="
-configuration_directories $(find cartographer_ros)/configuration_files
-configuration_basename mit_stata_odom.lua
-subdictionary map_builder"
output="screen">
</node>
</launch>

运行后会报错,找不到cartographer_print_configuration,这是因为可执行文件在bin路径: /home/user/carto_ws/install_isolated/bin/cartographer_print_configuration,roslaunch找的是/home/user/carto_ws/install_isolated/lib/cartographer_ros路径下的文件,复制到这里就好了。

运行launch就会输出所有lua参数,自己设置的参数也会覆盖默认的。 另外还有个subdictionary参数,输出的是子参数,这里用map_builder。但是只能输出第一级的子参数,如果自参数太底层就会报错,比如submaps做子参数就会运行错误。