Skip to main content

烧录电机代码

获取代码

  1. 远程登录开发者套件,进入“/usr/local”目录运行脚本拉取代码。

    cd /usr/local
  2. 运行脚本拉取代码。

    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/SLAM/

    回显如下:

    Download E2E samples successfully!

    执行完成后,会在“/home/HwHiAiUser/E2Esamples”目录下生成“src/E2E-Sample/SLAM/”目录。

父主题: 运行环境准备

烧录电机代码

Arduino是一套便捷、灵活、容易上手的硬件开发平台,它包括多种型号的Arduino控制电路板和专用编程开发软件,能帮助用户快速的开发出智能硬件原型。

  1. 进入Arduino官网下载程序安装包“arduino-ide_version_Windows_64bit.exe”,并按照默认配置安装。

  2. 双击打开软件,修改语言为中文。

    1. 单击“File > Preferences”,如图1所示。

      图1 软件菜单

    2. 单击“Language”下拉菜单,选择“中文(简体)”,如图2所示。单击OK保存后工具会自动重启,重启后为中文界面。

      图2 修改语言

  3. 将开发者套件的第一个USB口(上方)与激光雷达使用USB连接线进行连接,将开发者套件的第二个USB口(下方)与Arduino Nano开发板使用USB连接线进行连接。

  4. 单击下载,获取代码仓并解压。

    获得src/SLAM/ROSArduinoBridge电机代码。

  5. 单击“文件”选择“打开”,选择打开4目录中的ROSArduinoBridge.ino文件。

    图3 打开文件

    图4 选择文件

  6. 进入代码页面后,选择“工具 > 开发板 > Arduino Uno” ,处理器选择ATmega328P(Old Bootloader) 。

    图5 选择开发板

    图6 选择处理器

  7. 单击界面左上角的上传按钮,等待右下角绿色进度条读条结束即上传成功。

    图7 上传代码

父主题: 运行环境准备

测试激光雷达

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

  2. 参考激光雷达模块的使用指导(购物时提供)在Ubuntu22.04环境下,下载好ROS2 Humble,并且按照要求配置好环境,输入如下指令。

    ros2 launch rplidar_ros view_rplidar_a2m12_launch.py serial_port:=/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 frame_id:=laser_frame angle_compensate:=true scan_mode:=Standard baud_rate:=115200

    :::note 说明 需将serial_port参数替换为实际的端口号。 :::

    当激光雷达成功运转且输入ros2 topic list有/scan话题显示时表示激光雷达模块测试成功。

父主题: 运行环境准备

建图功能

搭建行驶场地

在空旷的场地中,将小车放置在中间并在小车周围放置障碍物,例如:垃圾桶、纸箱等。需要保证两个障碍物之间有充足的空间,保证小车可以自由穿梭,示例环境如下所示。

图1 场地示意图

编译工作空间

  1. 进入导航车代码目录下。

    cd /home/HwHiAiUser/E2Esamples/SLAM/ascend_slam_ws/
  2. 在ascend_slam_ws目录下执行命令。

    colcon build

启动建图

  1. 在两个工作空间编译完成后,新开启一个终端,以root用户登录开发者套件,输入命令启动RVIZ界面。

    rviz2
  2. 再开启一个终端,以root用户登录开发者套件,执行以下命令。

    ros2 launch ascend_slam launch_robot.launch.py

    回显如下:

    图2 命令回显

    查看RVIZ2界面,可以看到小车出现。

    图3 RVIZ2界面

  3. 再开启一个终端,以root用户登录开发者套件,执行以下命令启动激光雷达。

    ros2 launch rplidar_ros view_rplidar_a2m12_launch.py serial_port:=/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 frame_id:=laser_frame angle_compensate:=true scan_mode:=Standard baud_rate:=115200

    回显如下:

    图4 命令回显

    此时查看RVIZ2可视化界面,则可查看点云数据。

    图5 RVIZ2界面

  4. 再开启一个终端,以root用户登录开发者套件,执行以下命令进行建图初始化。

    ros2 launch ascend_slam online_async_launch.py params_file:=/home/HwHiAiUser/E2Esamples/SLAM/ascend_slam_ws/install/ascend_slam/share/ascend_slam/config/mapper_params_online_async.yaml use_sim_time:=false

    回显如下:

    图6 命令回显

    再次查看RVIZ2窗口,可看到一张初始化的未完成构建的地图出现在小车周围。

    图7 RVIZ2界面

  5. 开始扫描建图。

    1. 执行如下命令,控制小车对当前区域进行建图。

      ros2 run teleop_twist_keyboard teleop_twist_keyboard

      根据以下指令,控制小车在地图中移动,完成建图。

      • i:前进
      • j:左转
      • l:右转
      • k:暂停

      控制小车在地图中障碍物附近移动,此时地图会逐渐完整。

      图8 移动小车扫描建图

      图9 移动小车扫描建图

      由上图可见,地图中间由两个黑色边框的椭圆和一个黑色边框的长方体。两椭圆对应两个垃圾桶的位置,而长方体则对应纸箱位置。当三个障碍物在地图中清晰可见后,即可完成建图。

    2. 单击左上角的Panels图标,单击“Add New Panel”按钮。

      图10 单击Add New Panel

    3. 在弹出的窗口中双击最下方的SlamToolboxPlugin,随后RVIZ2界面的左下方即会出现插件界面。

      图11 单击SlamToolboxPlugin

    4. 在“Save Map”右侧输入“ascend_map_save”,在“Serialize Map”右侧输入“ascend_map_serial”。

      图12 配置地图信息

    5. 分别单击“Save Map”按钮和“Serialize Map”按钮。

      可在“ascend_slam_ws”目录下看到4份地图文件。

      :::note 说明 因RVIZ2窗口在本机与DK进行通信,如地图文件没及时出现,可多点击几次。 :::

      若将这些地图文件下载至本地,可使用看图软件查看ascend_map_save.pgm,可对构建的地图进行进一步查看,示例地图如下。

      图13 查看地图

父主题: 快速体验

在线提单