Skip to main content

jupyter notebook推理样例运行缓慢或跑不起来

智能车手动控制时车轮转向错误或四个轮子转速差异较大

现象描述

进入到智能车的手动控制环节后,启动智能车的控制主入口,按照应用开发指南中的键盘操作智能车,智能车车轮反向运转或将智能车放到运动场地后,运行路线不走直线。

可能原因

考虑到智能车成本问题,TT减速电机会偶发出场默认旋转方向相反的情况,这导致了车轮反向运转;另外也由于电机在相同电压电平下产生扭矩也有差异,这将导致四个轮子转速有差异,运行路线不是直线。

解决方案

针对车轮反转的情况,需要进入到开发者套件上的样例代码目录中,修改控制电机转向的参数。

cd /home/Car/python/src/actions
vim base_action.py

并找到“self.motor_rating”参数,四个参数分别对应下发到电机的速度比例,从左到右依次对应智能车应用开发指南中的[直流电机及其控制](https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/23.0.RC1/Application Cases/ivadg/ivadg_0007.html)章节的1、2、3、4号电机,将反转的电机对应的速度参数前添加一个负号即可改变电机转向。

图1 “self.motor_rating”参数界面图

针对四个轮子转速有差异的情况,需要修改图1中的同一参数比率大小。若在前进时智能车向左偏移,说明小车右侧车轮速度相对左侧车轮速度快了,针对性调整参数的大小即可。

父主题: 智能车应用运行问题

运行智能车主入口程序main.py时出现‘ttyUSB0’或'ttyUSB1'相关错误导致程序无法启动

现象描述

运行智能车主入口程序main.py时出现‘ttyUSB0’或'ttyUSB1'相关错误导致程序无法启动。

可能原因

USB扩展坞和ESP32控制模块都以USB连接到开发者套件上,接口接反导致程序无法启动。

解决方案

将USB扩展坞和ESP32控制模块在开发者套件上的接口调换一下,重新运行程序即可。

父主题: 智能车应用运行问题

jupyter notebook推理样例运行缓慢或跑不起来

现象描述

运行开箱推理样例时,推理执行缓慢或跑不起来。

可能原因

同时打开了多个推理样例notebook,占用了过多系统内存。

解决方案

关掉不需要用到的notebook,可以在侧边栏通过shutdown操作清理notebook,如图1图2所示:

图1 界面图

图2 界面图

父主题: 样例运行

创建交换分区

现象描述

为解决开发者套件上,使用ATC工具转换模型时会出现转换过程很慢或卡住不动的问题。该问题可能由于内存不足,导致进程卡死。用户可通过创建交换分区的方式以分担开发者套件的内存压力,当前镜像已提前为用户创建,若用户需要关闭或关闭后重新开启可参见此章节进行操作。

解决方案

创建交换分区

  1. root用户远程登录开发者套件。

  2. 创建一个大小为8G的swap分区。

    fallocate --length 8G /swapfile
  3. 修改文件权限。

    chmod 600 /swapfile
  4. 创建swap分区。

    mkswap /swapfile

    回显如下:

    Setting up swapspace version 1, size = 8 GiB (8589934592 bytes)
    no label, UUID=2b9e68ec-e6f5-46df-bd10-8f2955026de7
  5. 挂载swap分区。

    swapon /swapfile
  6. 执行命令查看分区是否创建成功。

    free -h

    -h,--human:以计算机硬盘存储容量的常用字节显示存储大小。

    回显如下:

    total used free shared buff/cache available
    Mem: 3.4Gi 795Mi 1。9Gi 33Mi 759Mi 2.4Gi
    Swap: 8.0Gi 0B 8.0Gi

关闭交换分区

  1. 执行命令临时禁用交换分区。

    swapoff -a
  2. 执行命令打开文件,注释部分代码。

    vi /vat/expan.sh

    按下i键进入编辑模式,将此行内容注释。

    swap_flag=$(free -h | grep Swap | cut -d' ' -f14 | cut -d'B' -f1)
    if [ "$swap_flag" == "0" ]; then
    mkswap /swapfile
    swapon /swapfile
    fi
  3. 执行命令打开文件,注释部分代码。

    vi /etc/fstab

    按下i键进入编辑模式,将此行内容注释。

    /swapfile

    注释后,开发者套件启动时将不会自动挂载交换分区。

  4. 执行命令重启开发者套件,生效配置。

    reboot

开启交换分区

  1. 执行命令打开文件,消除部分代码注释。

    vi /etc/fstab

    按下i键进入编辑模式,将此行内容注释。

    /swapfile

    注释后,开发者套件启动时将不会自动挂载交换分区。

  2. 执行命令重启开发者套件,生效配置。

    reboot

父主题: 样例运行

配置进程内存限制(OOM Killer)

现象描述

开发者套件的内存资源有限,如果某个进程占用的内存超出系统限制,可能出现系统异常,无法响应命令的现象,届时需要重新上下电才能恢复正常。因此,需要限制进程的内存占用量。

解决方案

关闭内存限制

  1. 执行以下命令关闭OOM Killer服务。

    systemctl disable oom_killer
  2. 分别将/root/.bashrc与/home/HwHiAiUser/.bashrc文件中代码注释。

    • 打开/root/.bashrc文件。

      vi /root/.bashrc
    • 打开/home/HwHiAiUser/.bashrc

      vi /home/HwHiAiUser/.bashrc

    注释以下代码:

    echo $$ > /sys/fs/cgroup/memory/usermemory/tasks
  3. 执行命令重启开发者套件。

    reboot

开启内存限制

:::note 说明 当前一键制卡工具提供的在线镜像中,root用户和HwHiAiUser用户已完成了以上操作,打开了该内存控制机制。 :::

  1. 执行以下命令开启OOM Killer服务。

    systemctl enable oom_killer
  2. 取消/root/.bashrc与/home/HwHiAiUser/.bashrc文件中代码注释。

    • 打开/root/.bashrc文件。

      vi /root/.bashrc
    • 打开/home/HwHiAiUser/.bashrc

      vi /home/HwHiAiUser/.bashrc

    取消以下代码注释:

    echo $$ > /sys/fs/cgroup/memory/usermemory.tasks
  3. 执行命令重启开发者套件。

    reboot

父主题: 样例运行

jupyter notebook运行多个推理样例后提示Kernel Restarting

现象描述

启动jupyter notebook运行多个推理样例后提示Kernel Restarting。

图1 错误提示

可能原因

同时打开了多个推理样例notebook,占用了过多系统内存。

解决方案

关掉不需要用到的notebook,可以在侧边栏通过shutdown操作清理notebook,如图1图2所示:

图2 界面图

图3 界面图

父主题: 样例运行

在线提单