AscendBot是一款面向人工智能及機器人愛好者的開源智能機器人小車,同時也是一個開放的人工智能及機器人開發平臺,它具備如下特性:
高性能:基于華為Atlas 200 DK,提供8TOPS@FP16的算力智能小車被手機APK遙控,實現物體跟隨、車軌道循線、防跌落功能。
部署此Sample前,需要準備好以下環境:
獲取源碼包。
可以使用以下兩種方式下載,請選擇其中一種進行源碼準備。
命令行方式下載(下載時間較長,但步驟簡單)。
開發環境,非root用戶命令行中執行以下命令下載源碼倉。
cd $HOME
git clone https://gitee.com/ascend/samples.git
壓縮包方式下載(下載時間較短,但步驟稍微復雜)。
cd $HOME
unzip ascend-samples-master.zip
獲取此應用中所需要的原始網絡模型。
參考下表獲取此應用中所用到的原始網絡模型及其對應的權重文件,并將其存放到開發環境普通用戶下目錄:$HOME/samples/cplusplus/contrib/Ascbot。
模型名稱 | 模型說明 | 模型下載路徑 |
---|---|---|
collision_avoidance_model | 檢測小車前方是否有跌落危險 | 請參考https://gitee.com/ascend /ModelZooTensorFlow/tree/master /TensorFlow/contrib/cv/ascbot /ATC_CollisionAntiDrop_caffe_AE/ 目錄中README.md下載原始模型章節下載模型和權重文件。 |
road_following_model | 檢測車道線,實現循道行駛 | 請參考https://gitee.com/ascend /ModelZooTensorFlow/tree/master /TensorFlow/contrib/cv/ascbot /ATC_LaneDetection_caffe_AE/ 目錄中README.md下載原始模型章節下載模型和權重文件。 |
road_object_detection_deploy | 檢測小車前方物體 | 請參考https://gitee.com/ascend /ModelZooTensorFlow/tree/master /TensorFlow/contrib/cv/ascbot /ATC_Object_detection_caffe_AE/ 目錄中README.md下載原始模型章節下載模型和權重文件。 |
說明:
modelzoo中提供了轉換好的om模型,但此模型不匹配當前樣例,所以需要下載原始模型和權重文件后重新進行模型轉換。
將原始模型轉換為Davinci模型。
注:請確認環境變量已經在環境準備和依賴安裝中配置完成
設置LD_LIBRARY_PATH環境變量。
由于LD_LIBRARY_PATH環境變量在轉使用atc工具和運行樣例時會產生沖突,所以需要在命令行單獨設置此環境變量,方便修改。
export install_path=$HOME/Ascend/ascend-toolkit/latest
export LD_LIBRARY_PATH=\\${install_path}/atc/lib64
2. 執行以下命令下載aipp配置文件并使用atc命令進行模型轉換。
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** 環境變量中的 **arm64-liunx** 應修改為 **arm64-linux_gcc7.3.0**。
> - 可以在命令行中執行 **uname -a**,查看開發環境和運行環境的cpu架構。如果回顯為x86_64,則為x86架構。如果回顯為arm64,則為Arm架構。
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**
執行make命令,生成的可執行文件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**為運行環境ip,200DK在USB連接時一般為192.168.1.2。
設置環境
進入/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
如果是開發環境與運行環境分離部署,執行以下命令切換目錄。
cd $HOME/samples/cplusplus/contrib/Ascbot/out
切換目錄后,執行以下命令運行樣例。
./main
運行完成后,可下載手機端應用控制小車運行。 手機端下載地址