目录
Autoware人机交互工具Runtime_Manager分析及使用
Autoware作为完全开源的自动驾驶项目,为我们提供了一个比较强大工具,runtime_manager,集成了很多功能。使用的过程中,感到需要了解具体每项配置的作用,以及出现bug时,要知道去哪里查看,调试等。
这篇文章依然是基于ROS1的Autoware.ai版本的。
启动runtime_manager
$ source install/setup.bash
$ roslaunch runtime_manager runtime_manager.launch
找到配置文件
在Autoware文件夹下面,执行find -name "runtime_manager"
,找到以下相关文件
./src/autoware/utilities/runtime_manager
./build/runtime_manager
./build/runtime_manager/devel/share/runtime_manager
./build/runtime_manager/catkin_generated/stamps/runtime_manager
./log/build_2020-07-24_17-38-43/runtime_manager
./install/runtime_manager
./install/runtime_manager/lib/runtime_manager
./install/runtime_manager/share/runtime_manager
./install/runtime_manager/share/colcon-core/packages/runtime_manager
不难发现主要的配置在./src/autoware/utilities/runtime_manager
目录下。
其中首先需要看的就是script/runtime_manager_dialog.py
文件。
runtime_manager_dialog.py
可以看到使用Python的wx library实现的GUI界面。
从代码里,不难找到各个tab页对应的配置文件。如map的tab页加载的是map.yaml
配置文件。
查看./src/autoware/utilities/runtime_manager/script/map.yaml
=>
map Tab页
可以看到第一个button下面的内容
buttons :
point_cloud :
run : roslaunch map_file points_map_loader.launch
param : points_map_loader
gui :
...
run
这里表示点击point_cloud 按钮时,运行的是map_file
下面的points_map_loader.launch
文件。
找到这个文件
又比如vector_map按钮
vector_map :
run : rosrun map_file vector_map_loader
param : vector_map_loader
gui :
stat_topic : [ vmap ]
panel : self.panel_vector_map
表示运行的是map_file
下面的vector_map_loader.cpp
文件。该文件的全路径为/Autoware/src/autoware/common/map_file/nodes/vector_map_loader/vector_map_loader.cpp
找到对应的文件即可进行进一步分析和理解。
Computing Tab页的Planning模块
由于比较关注planning模块,先就planning模块进行分析。
Computing Tab页的右边一侧,包括了Mission Planning和Motion Planning两大模块。
其中,Mission Planning的结构如下:
一级 | 二级 | 三级 |
---|---|---|
Mission Planning | laner_planner | lane_navi |
: | lane_rule | |
: | lane_stop | |
: | lane_select | |
freespace_planner | astar_navi | |
OpenPlanner - Global Planning | op_global_planner | |
Motion Planning | waypoint_maker | waypoint_loader |
: | waypoint_saver | |
: | waypoint_clilcker | |
: | waypoint_creator | |
: | waypoint_velocity_visualier | |
waypoint_planner | astar_void | |
: | velocity_set | |
waypoint_follower | pure_pursuit | |
: | mpc_follower | |
: | twist_filter | |
: | wf_simulator | |
OpenPlanner - Local planning | op_common_params | |
: | op_trajectory_generator | |
: | op_motion_predictor | |
: | op_trajectory_evaluator | |
: | op_behavior_selector | |
OpenPlanner - Utilities | op_pose2tf | |
: | op_bag_player | |
OpenPlanner - Simulator | op_perception_simulator | |
: | op_signs_simulator | |
: | op_car_simulator | |
lattice_planner | lattice_velocity_set | |
: | path_select | |
: | lattice_trajectory_gen | |
: | lattice_twist_convert |
Computing对应的配置文件是computing.yaml
,文件路径为/Autoware/src/autoware/utilities/runtime_manager/scripts/computing.yaml
在文件中搜索OpenPlanner
,容易发现:
- name : OpenPlanner - Global Planning
desc : Global planner for OpenPlanner
subs :
- name : op_global_planner
desc : global planner node from OpenPlanner
cmd : roslaunch op_global_planner op_global_planner.launch
param: op_global_planner
意味着OpenPlanner - Global Planning
模块下面的op_global_planner
, 它的description是"global planner node from OpenPlanner",选中这个模块,效果等同于在命令行中运行
$ roslaunch op_global_planner op_global_planner.launch
加载的是/Autoware/src/autoware/core_planning/op_global_planner/nodes/op_global_planner
关于Planning 模块的分析会在下一篇文章中具体写,这篇是针对Runtime_Manager工具的分析,暂时到这里。之后可能会有更新。
小Tip:清理log
在运行Runtime Manager的过程中经常产生很多log,有时会报错,log容量超过1GB,此时可以进入目录/home/autoware/.ros/log
,运行
$ rosclean purge
即可以清理所有log