AscendBot是一款面向人工智能及機(jī)器人愛好者的開源智能機(jī)器人小車,同時(shí)也是一個(gè)開放的人工智能及機(jī)器人開發(fā)平臺(tái),它具備如下特性:
高性能:基于華為Atlas 200 DK,提供8TOPS@FP16的算力智能小車被手機(jī)APK遙控,實(shí)現(xiàn)物體跟隨、車軌道循線、防跌落功能。
部署此Sample前,需要準(zhǔn)備好以下環(huán)境:
獲取源碼包。
可以使用以下兩種方式下載,請(qǐng)選擇其中一種進(jìn)行源碼準(zhǔn)備。
命令行方式下載(下載時(shí)間較長,但步驟簡單)。
開發(fā)環(huán)境,非root用戶命令行中執(zhí)行以下命令下載源碼倉。
cd $HOME
git clone https://gitee.com/ascend/samples.git
壓縮包方式下載(下載時(shí)間較短,但步驟稍微復(fù)雜)。
cd $HOME
unzip ascend-samples-master.zip
獲取此應(yīng)用中所需要的原始網(wǎng)絡(luò)模型。
參考下表獲取此應(yīng)用中所用到的原始網(wǎng)絡(luò)模型及其對(duì)應(yīng)的權(quán)重文件,并將其存放到開發(fā)環(huán)境普通用戶下目錄:$HOME/samples/cplusplus/contrib/Ascbot。
模型名稱 | 模型說明 | 模型下載路徑 |
---|---|---|
collision_avoidance_model | 檢測小車前方是否有跌落危險(xiǎn) | 請(qǐng)參考https://gitee.com/ascend /ModelZooTensorFlow/tree/master /TensorFlow/contrib/cv/ascbot /ATC_CollisionAntiDrop_caffe_AE/ 目錄中README.md下載原始模型章節(jié)下載模型和權(quán)重文件。 |
road_following_model | 檢測車道線,實(shí)現(xiàn)循道行駛 | 請(qǐng)參考https://gitee.com/ascend /ModelZooTensorFlow/tree/master /TensorFlow/contrib/cv/ascbot /ATC_LaneDetection_caffe_AE/ 目錄中README.md下載原始模型章節(jié)下載模型和權(quán)重文件。 |
road_object_detection_deploy | 檢測小車前方物體 | 請(qǐng)參考https://gitee.com/ascend /ModelZooTensorFlow/tree/master /TensorFlow/contrib/cv/ascbot /ATC_Object_detection_caffe_AE/ 目錄中README.md下載原始模型章節(jié)下載模型和權(quán)重文件。 |
說明:
modelzoo中提供了轉(zhuǎn)換好的om模型,但此模型不匹配當(dāng)前樣例,所以需要下載原始模型和權(quán)重文件后重新進(jìn)行模型轉(zhuǎn)換。
將原始模型轉(zhuǎn)換為Davinci模型。
注:請(qǐng)確認(rèn)環(huán)境變量已經(jīng)在環(huán)境準(zhǔn)備和依賴安裝中配置完成
設(shè)置LD_LIBRARY_PATH環(huán)境變量。
由于LD_LIBRARY_PATH環(huán)境變量在轉(zhuǎn)使用atc工具和運(yùn)行樣例時(shí)會(huì)產(chǎn)生沖突,所以需要在命令行單獨(dú)設(shè)置此環(huán)境變量,方便修改。
export install_path=$HOME/Ascend/ascend-toolkit/latest
export LD_LIBRARY_PATH=\\${install_path}/atc/lib64
2. 執(zhí)行以下命令下載aipp配置文件并使用atc命令進(jìn)行模型轉(zhuǎn)換。
wget https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/car/collision/insert_op_collision_avoidance.cfg
atc --model="collision_avoidance_model.prototxt" --weight="collision_avoidance_model.caffemodel" --soc_version=Ascend310 --framework=0 --output="collision_avoidance_model" --insert_op_conf=insert_op_collision_avoidance.cfg
wget https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/car/following/insert_op_road_following.cfg
atc --model="road_following_model.prototxt" --weight="road_following_model.caffemodel" --soc_version=Ascend310 --framework=0 --output="road_following_model" --insert_op_conf=insert_op_road_following.cfg
wget https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/car/object_detection/insert_op_road_object_detection_deploy.cfg
atc --model="road_object_detection_deploy.prototxt" --weight="road_object_detection_deploy.caffemodel" --soc_version=Ascend310 --framework=0 --output="road_object_detection_deploy" --insert_op_conf=insert_op_road_object_detection_deploy.cfg
export DDK_PATH=$HOME/Ascend/ascend-toolkit/latest/arm64-linux
export NPU_HOST_LIB=$DDK_PATH/acllib/lib64/stub
 **說明:**
> - 如果是3.0.0版本,此處 **DDK_PATH** 環(huán)境變量中的 **arm64-liunx** 應(yīng)修改為 **arm64-linux_gcc7.3.0**。
> - 可以在命令行中執(zhí)行 **uname -a**,查看開發(fā)環(huán)境和運(yùn)行環(huán)境的cpu架構(gòu)。如果回顯為x86_64,則為x86架構(gòu)。如果回顯為arm64,則為Arm架構(gòu)。
cd $HOME/samples/cplusplus/contrib/Ascbot
mkdir -p build/intermediates/host
cd build/intermediates/host
make clean
cmake ../../../src -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -DCMAKE_SKIP_RPATH=TRUE**
執(zhí)行make命令,生成的可執(zhí)行文件main在 ascbot_c75/out 目錄下。
make
scp -r $HOME/samples/cplusplus/contrib/Ascbot HwHiAiUser@xxx.xxx.xxx.xxx:/home/HwHiAiUser
ssh HwHiAiUser@xxx.xxx.xxx.xxx
 **說明:**
> - **xxx.xxx.xxx.xxx**為運(yùn)行環(huán)境ip,200DK在USB連接時(shí)一般為192.168.1.2。
設(shè)置環(huán)境
進(jìn)入/etc/rc.local。
vim /etc/rc.local
添加以下指令
echo 504 >/sys/class/gpio/export
echo 444 >/sys/class/gpio/export
chown -R HwHiAiUser /sys/class/gpio/gpio444
chown -R HwHiAiUser /sys/class/gpio/gpio504
chown -R HwHiAiUser /sys/class/gpio/gpio444/direction
chown -R HwHiAiUser /sys/class/gpio/gpio504/direction
chown -R HwHiAiUser /sys/class/gpio/gpio444/value
chown -R HwHiAiUser /sys/class/gpio/gpio504/value
chown -R HwHiAiUser /dev/i2c-1
chown -R HwHiAiUser /dev/i2c-2
chown -R HwHiAiUser /dev/ttyAMA0
usermod -aG HwHiAiUser HwHiAiUser
如果是開發(fā)環(huán)境與運(yùn)行環(huán)境分離部署,執(zhí)行以下命令切換目錄。
cd $HOME/samples/cplusplus/contrib/Ascbot/out
切換目錄后,執(zhí)行以下命令運(yùn)行樣例。
./main
運(yùn)行完成后,可下載手機(jī)端應(yīng)用控制小車運(yùn)行。 手機(jī)端下載地址