Apollo2.5开发笔记(3)dev_start.sh源码阅读

非常菜,非常小白,仅以此纪录,毫无参考意义……

首先从每次都要运行的脚本开始吧

dev_start.sh

#!/usr/bin/env bash

这是在linux的脚本文件第一行,指定脚本解释器为bash,用/usr/bin/env的目的是为了在不同的系统使用时,都去用户PATH变量定义的目录里寻找bash来执行,如果路径写死可能会找不到脚本解释器。

 

整个文件里有几个函数:

function check_agreement()
function show_usage()
function stop_containers()

一堆shell程序

function local_volumes()
function main()

shell是Linux的核心程序kernel和用户之间的接口,这里的shell程序是Bourne Again Shell(bash的全称,Bourne为了纪念shell鼻祖Stephen Bourne,当代Unix Shell程序/bin/sh的创造者)。

APOLLO_ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../.." && pwd )"

$变量名,这里会被变量的值替代,${BASH_SOURCE[0]}是当前bash文件路径

dirname提取参数中的目录,即不包含当前bash文件名的路径

cd .. ..后退两级

pwd打印当前工作目录

运行这一句结果大概就是APOLLO_ROOT_DIR这个变量被赋值成apollo文件夹被放置的地方,然后这个值被打出来了……

if [ ! -e /apollo ]; then
    sudo ln -sf ${APOLLO_ROOT_DIR} /apollo
fi

-e是指如果文件存在则为真

-s:进行软链结(symboliclink)

-f:  链结时先将与dist同档名的档案删除

上面是说,如果/apollo不存在则生成软链接/apollo指向apollo文件夹被放置的地方,就很像生成快捷方式

if [ -e /proc/sys/kernel ]; then
    echo "/apollo/data/core/core_%e.%p" | sudo tee /proc/sys/kernel/core_pattern > /dev/null
fi

 如果/proc/sys/kernel存在,就echo,/proc/sys/kernel 为管理者以及用户提供查看和配置系统核心参数的窗口,core_pattern设置core文件保存位置或文件名,core文件其实就是内存的映像,当程序崩溃时,存储内存的相应信息,主用用于对程序进行调试。(所以/apollo/data/core下面都是程序崩溃时候存的信息,经常变得很大,导致工控机没内存了)

%e - 在文件名里插入命令名

%p - 在文件名里插入pid

|表示前面的输出丢给后面做输入

tee是把输出内容打印到屏幕的同时存成文件,存到/proc/sys/kernel/core_pattern里

>表示重定向,/dev/null是各空设备,重定向给它就是丢弃了,不输出到终端

同时用tee又重定向就是单纯存到文件里不打印到终端吧……

总的来所,这段话意思是,如果/proc/sys/kernel存在,就设定/apollo/data/core下存的文件名字格式是core_命令名.pid,内容是程序崩溃时候内存映像。

source ${APOLLO_ROOT_DIR}/scripts/apollo_base.sh

执行这个脚本文件里的命令

check_agreement

执行前面写的函数,检查用户是否同意许可协议

……看不下去了,我看这个脚本文件干嘛呢orz

 

root@in_dev_docker:/apollo# bash scripts/msf_create_lossless_map.sh /apollo/hdmap/pcd_apollo/ 50 /apollo/hdmap/ /apollo/bazel-bin WARNING: Logging before InitGoogleLogging() is written to STDERR E0715 22:08:35.399576 6436 lossless_map_creator.cc:162] num_trials = 1 Pcd folders are as follows: /apollo/hdmap/pcd_apollo/ Resolution: 0.125 Dataset: /apollo/hdmap/pcd_apollo Dataset: /apollo/hdmap/pcd_apollo/ Loaded the map configuration from: /apollo/hdmap//lossless_map/config.xml. Saved the map configuration to: /apollo/hdmap//lossless_map/config.xml. Saved the map configuration to: /apollo/hdmap//lossless_map/config.xml. E0715 22:08:35.767315 6436 lossless_map_creator.cc:264] ieout_poses = 1706 Failed to find match for field 'intensity'. Failed to find match for field 'timestamp'. E0715 22:08:35.769896 6436 velodyne_utility.cc:46] Un-organized-point-cloud E0715 22:08:35.781770 6436 lossless_map_creator.cc:275] Loaded 245443D Points at Trial: 0 Frame: 0. F0715 22:08:35.781791 6436 base_map_node_index.cc:101] Check failed: false *** Check failure stack trace: *** scripts/msf_create_lossless_map.sh: line 11: 6436 Aborted (core dumped) $APOLLO_BIN_PREFIX/modules/localization/msf/local_tool/map_creation/lossless_map_creator --use_plane_inliers_only true --pcd_folders $1 --pose_files $2 --map_folder $IN_FOLDER --zone_id $ZONE_ID --coordinate_type UTM --map_resolution_type single root@in_dev_docker:/apollo# bash scripts/msf_create_lossless_map.sh /apollo/hdmap/pcd_apollo/ 50 /apollo/hdmap/
最新发布
07-16
根据提供的信息,执行脚本 `scripts/msf_create_lossless_map.sh` 时出现了错误。具体的错误信息如: ``` E0715 22:08:35.399576 6436 lossless_map_creator.cc:162] num_trials = 1 Pcd folders are as follows: /apollo/hdmap/pcd_apollo/ Resolution: 0.125 Dataset: /apollo/hdmap/pcd_apollo Dataset: /apollo/hdmap/pcd_apollo/ Loaded the map configuration from: /apollo/hdmap//lossless_map/config.xml. Saved the map configuration to: /apollo/hdmap//lossless_map/config.xml. Saved the map configuration to: /apollo/hdmap//lossless_map/config.xml. E0715 22:08:35.767315 6436 lossless_map_creator.cc:264] ieout_poses = 1706 Failed to find match for field 'intensity'. Failed to find match for field 'timestamp'. E0715 22:08:35.769896 6436 velodyne_utility.cc:46] Un-organized-point-cloud E0715 22:08:35.781770 6436 lossless_map_creator.cc:275] Loaded 245443D Points at Trial: 0 Frame: 0. F0715 22:08:35.781791 6436 base_map_node_index.cc:101] Check failed: false *** Check failure stack trace: *** scripts/msf_create_lossless_map.sh: line 11: 6436 Aborted (core dumped) $APOLLO_BIN_PREFIX/modules/localization/msf/local_tool/map_creation/lossless_map_creator --use_plane_inliers_only true --pcd_folders $1 --pose_files $2 --map_folder $IN_FOLDER --zone_id $ZONE_ID --coordinate_type UTM --map_resolution_type single ``` 这段错误信息表明在执行脚本时发生了一个检查失败的情况。错误的具体位置在 `base_map_node_index.cc:101`。可能的原因包括: 1. 数据不匹配:脚本中使用的数据可能存在不匹配的情况,例如字段名或者数据格式不正确。 2. 数据文件缺失:脚本所需的某些数据文件可能不存在或者路径不正确。 3. 依赖问题:脚本所依赖的某些组件或库可能缺失或者版本不兼容。 请检查脚本 `scripts/msf_create_lossless_map.sh` 中的相关代码,确保数据文件和依赖项的正确性。如果问题仍然存在,您可以提供更多的上下文信息,以便我们能够更好地帮助您解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值