自动驾驶与泊车
获取代码
获取代码
-
获取ESP32开发板代码。
获取链接,单击链接下载样例代码压缩包“ascend-devkit-master.zip”到PC并解压获得ESP32开发板的代码目录“ascend-devkit-master\src\E2E-Sample\Car\ESP32”。
-
获取小车项目代码。
-
远程登录开发者套件,进入“/usr/local”目录运行脚本拉取代码。
cd /usr/local -
运行脚本拉取代码。
bash E2E_samples_download_tool.sh -d download_destination_path -s source_repository -b branch target_path参数说明:
- -d:指定代码的下载路径。
- -s:指定开源仓库的clone url。
- -b:指定开源仓库分支名称及待下载的项目目录。
- -f:强制更新下载路径中的目录。当样例目录已删除,但重新下载时提示“Already up to date”时可使用此参数。
命令示例:
bash E2E_samples_download_tool.sh -d /home/HwHiAiUser/E2ESamples -s https://gitee.com/HUAWEI-ASCEND/ascend-devkit.git -b master src/E2E-Sample/Car/回显如下:
Download E2E samples successfully!执行完成后,会在“/home/HwHiAiUser/E2Esamples”目录下生成“src/E2E-Sample/Car/”目录。
-
配置功能库文件
将Car/ESP32/下的“ESP32_Servo.cpp”、“ESP32_Servo.h”、“RL_ESP32_Motor.cpp”、“RL_ESP32_Motor.h”四个文件复制到Arduino库文件路径下,例如:“C:\Users\10459\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\cores\esp32”。
烧录代码到ESP32开发板
-
在PC使用Arduino工具单击“文件>打开”按钮,选择“Car/ESP32/car_ctrl_esp32.ino”文件打开。
图1 打开脚本

-
在Arduino工具中单击
图2 烧录代码

图3 烧录回显

父主题: 运行环境准备
手动控制小车
-
将小车放置在运动场地。
-
以root用户远程登录小车的开发者套件。
-
进入获取代码中的样例代码目录下的“/python”文件夹路径,安装相关依赖后启动运行脚本。
cd /home/HwHiAiUser/E2ESamples/src/E2E-Sample/Car/pythonpip3 install -r requirements.txtpython3 main.py回显如下:
(base) root@davinci-mini:/home/HwHiAiUser/E2ESamples/src/E2E-Sample/Car/python# python main.py[EVENT] PROFILING(5821,python):2023-03-27-02:24:50.860.329 [msprof_callback_impl.cpp:236] >>> (tid:5821) Started to register profiling ctrl callback.2023-03-27 02:24:52 [MainProcess:5821][INFO]: start2023-03-27 02:24:52 [Process-2:5841][INFO]: update_controller_speed: True2023-03-27 02:24:52 [Process-2:5841][INFO]: self.speed: 02023-03-27 02:24:52 [Process-2:5841][INFO]: [0, 0, 0, 0, 90, 65, -12345]2023-03-27 02:24:52 [Process-2:5841][INFO]: action SetServo execute SUCC2023-03-27 02:24:52 [Process-2:5841][INFO]: Manual loop start:::note 说明 运行python3 main.py报错请参见运行智能车主入口程序main.py时出现‘ttyUSB0’或'ttyUSB1'相关错误导致程序无法启动解决。 :::
-
通过键盘输入键位手动控制小车移动,如表1所示。
表1 键位映射表
键位 动作 w 前进 a 左转 s 后退 d 右转 q 逆时针旋转 e 顺时针旋转 ↑ 加速(小车运动状态与静止状态均可以调整) ↓ 减速(小车运动状态与静止状态均可以调整) c 捕获当前摄像头的图片 space 暂时停车 :::note 说明 由于TT减速电机成本较低,若此处手动控制小车出现轮子转向相反,或四个轮子转速不同导致小车不走直线的情况。
- 参照FAQ中的E2E样例开发问题。
- 参考“/Car/src/actions/base_action.py”文件代码中的注释修改“/Car/src/actions/base_action.py”的'self.motor_rating'参数,四个参数依次对应图1中的1、2、3、4号电机,修改参数的比例大小即可修改对应电机的转速,添加负号即可使对应电机反转,进行微调即可使小车恢复正常。 :::
父主题: 快速体验
自动驾驶与泊车
-
将小车放置在运动场地。
-
以root用户远程登录小车的开发者套件。
-
进入获取代码中的样例代码目录,启动运行脚本。
cd /home/HwHiAiUser/E2ESamples/src/E2E-Sample/Car/pythonpython3 main.py --mode=easy回显如下:
(base) root@davinci-mini:/home/HwHiAiUser/E2ESamples/src/E2E-Sample/Car/python# python main.py --mode=easy[EVENT] PROFILING(5821,python):2023-03-27-02:24:50.860.329 [msprof_callback_impl.cpp:236] >>> (tid:5821) Started to register profiling ctrl callback.2023-03-27 02:24:52 [MainProcess:5821][INFO]: start2023-03-27 02:24:52 [Process-2:5841][INFO]: update_controller_speed: True2023-03-27 02:24:52 [Process-2:5841][INFO]: self.speed: 02023-03-27 02:24:52 [Process-2:5841][INFO]: [0, 0, 0, 0, 90, 65, -12345]2023-03-27 02:24:52 [Process-2:5841][INFO]: action SetServo execute SUCC2023-03-27 02:24:52 [Process-2:5841][INFO]: Manual loop start:::note 说明 运行python3 main.py报错请参见运行智能车主入口程序main.py时出现‘ttyUSB0’或'ttyUSB1'相关错误导致程序无法启动解决。 :::
-
在命令行中输入Helper,加载转弯及停车辅助模型。无需等待,继续在命令行中输入LF,加载直线矫正模型。
-
小车开始自动驾驶,待行驶至停车标识处会自动进行泊车。
父主题: 快速体验
目标跟踪
:::note 说明 运行场地尽量为夜间且照明充足的室内,避免由太阳光放射带来的曝光影响。 :::
-
将小车放置在运动场地,并将手动控制的另一辆小车放置在智能小车前方位于摄像头画面的中下方位置。
-
以root用户远程登录小车的开发者套件。
-
进入获取代码中的样例代码目录,启动运行脚本。
cd /home/HwHiAiUser/+Samples/src/E2E-Sample/Car/pythonpython3 main.py -mode=cmd回显如下:
(base) root@davinci-mini:/home/HwHiAiUser/E2ESamples/src/E2E-Sample/Car/python# python main.py -mode=cmd[EVENT] PROFILING(5821,python):2023-03-27-02:24:50.860.329 [msprof_callback_impl.cpp:236] >>> (tid:5821) Started to register profiling ctrl callback.2023-03-27 02:24:52 [MainProcess:5821][INFO]: start2023-03-27 02:24:52 [Process-2:5841][INFO]: update_controller_speed: True2023-03-27 02:24:52 [Process-2:5841][INFO]: self.speed: 02023-03-27 02:24:52 [Process-2:5841][INFO]: [0, 0, 0, 0, 90, 65, -12345]2023-03-27 02:24:52 [Process-2:5841][INFO]: action SetServo execute SUCC2023-03-27 02:24:52 [Process-2:5841][INFO]: Manual loop start:::note 说明 运行python3 main.py报错请参见运行智能车主入口程序main.py时出现‘ttyUSB0’或'ttyUSB1'相关错误导致程序无法启动解决。 :::
-
在命令行中输入Tracking,进入追踪模式。
-
开始控制前方小车移动,智能小车会追踪前方小车的移动轨迹和速度进行目标跟踪移动。
父主题: 快速体验
主要代码文件介绍
表1 文件介绍
| 文件(夹)名称 | 说明 |
|---|---|
| python/main.py | 小车demo运行入口文件。 |
| python/requirements.txt | 智能小车样例代码运行所需依赖。 |
| python/src/actions | 小车基础与复杂运动代码。 |
| python/src/utils | 工具类python文件包含OpenCV、acl工具等。 |
| python/src/scenes | 小车预设场景相关代码。 |
| python/src/model | 推理模型相关代码。 |
| python/src/weight | 模型权重文件。 |
父主题: 代码实现
在线提单