Autoware不同版本的学习及标定工具的使用

目录

Autoware不同版本介绍

Autoware.auto的安装及编译

参考

源码安装及编译

安装依赖

安装源码

编译

安装标定工具

Autoware.core/univer的安装及编译

参考

源码安装及编译

安装标定工具

标定工具的使用

数据要求

示例数据集

官方可下载数据集

autoware传感模型及车辆模型内容

Autoware坐标系

传感器模型

calibrtion_tools的尝试及失败分析

标定工具官方使用教程

外参校准

激光雷达和相机校准

Autoware.ai中calibration_tools的使用

参考

工具安装

数据准备

特征提取

计算旋转和平移

视觉验证

示例数据集

来自 AutoCore 的数据集

自定义您自己的数据集


Autoware不同版本介绍

Autoware官方说明文档:https://autowarefoundation.github.io/autoware-documentation/main

Autoware.AI

第一个基于 ROS 1 发布的 Autoware 发行版,该存储库包含各种软件包,涵盖自动驾驶技术的不同方面 - 传感、驱动、定位、映射、感知和规划。由于多种原因,很难提高 Autoware.AI 的功能,已于2022年底停止维护。想要使用autoware.ai的功能,建议切换到Autoware.core/universe。 autoware.1.10版本后,标定工具箱需要另外安装。现已推出轻量级标定工具,不依赖于autoware环境,即不需要下载安装编译整个autoware环境,可独立运行。

主要支持ubuntu14.04-indigo、Ubuntu16.04-kinetic、ubuntu18.04-melodic。

Autoware.Auto

基于 ROS 2 发布的第二个 Autoware 发行版。从 Autoware.AI 开发中吸取的经验教训,Autoware.Auto 采用了不同的开发过程来开发 ROS 2 版本的 Autoware,避免了简单地将 Autoware.AI 从 ROS 1 移植到 ROS 2。取而代之的是,用适当的工程实践将代码库从头开始重写的。 auto版本对新工程师的门槛太高,且进行大规模的架构更改非常困难。 暂时没有找到属于auto版本的标定模块。

主要支持ubuntu18.04-dashing、ubuntu20.04-foxy、galactic。

Autoware.core/universe

基于ROS2,Autoware Core 继承了 Autoware.Auto 的原始策略,包含基本的运行时和技术组件,可满足自动驾驶系统所需的传感、计算和驱动等基本功能和能力。Universe 模块是 Core 模块的扩展,可由技术开发人员提供,以增强传感、计算和驱动的功能和能力。 需要另外安装Calibrtion Tools标定工具,且使用标定工具时,需要编译整个autoware环境。

 主要支持ubuntu20.04-galactic、ubuntu22.04-humble。

Autoware.auto的安装及编译

参考

autoware官网:https://autowarefoundation.gitlab.io/autoware.auto/AutowareAuto/

https://autowarefoundation.gitlab.io/autoware.auto/AutowareAuto/installation-no-ade.html

https://autowarefoundation.gitlab.io/autoware.auto/AutowareAuto/building.html

ROS放弃指南8:Autoware.auto的安装和使用-CSDN博客

Autoware.auto常见问题及解决方案_cc1plus: error: bad value (‘nativ\x0d’) for ‘-marc-CSDN博客

源码安装及编译

环境:ubuntu20.04 + ros2 foxy

ros2已经提前安装好了,只需要安装autoware依赖即可。

安装依赖

要从源代码编译 Autoware.auto项目,必须在系统中安装以下工具。

sudo apt install -y git cmake python3-pip
pip3 install -U colcon-common-extensions vcstool

除了核心组件外,还需要一些 ROS 2 软件包

source /opt/ros/$ROS_DISTRO/setup.bash
sudo apt update
sudo apt install -y python3-rosdep
sudo rosdep init
rosdep update 

为了编译时不跳过某些ros版本,可以使用以下命令
 

rosdep update --include-eol-distros

为了避免发生一些与软件包相关的错误

sudo apt purge -y ros-foxy-autoware-auto-msgs

sudo apt purge -y ros-foxy-acado-vendor
sudo apt install -y ros-foxy-acado-vendor

安装源码

git源码,vcstools从repos里读取各模块存储库后安装src目录下(在rosdep之前一定要记得先source ros环境!!!)

注意:最新版本的autoware.auto是只支持ROS2的foxy版本的,如果要使用其他版本,git之后一定要记得切换版本。git checkout tags/1.0.0 -b release-1.0.0。

git clone https://gitlab.com/autowarefoundation/autoware.auto/AutowareAuto.git
cd AutowareAuto
vcs import < autoware.auto.$ROS_DISTRO.repos
export ROS_VERSION=2
source /opt/ros/$ROS_DISTRO/setup.bash  # 避免忘记,最好在rosdep前source一下
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO

报错及解决方法

1:the following packages/stacks could not have their rosdep keys resolved to system dependencies:

解决方案:

sudo apt-get install ros-ROS版本-缺少的东西

如果之后还是报错的话,https://github.com/ros/rosdistro可以找到ros各个版本的distribution.yaml文件,在文件中直接搜索缺少的库,然后去相应的路径下载,放进AutowareAuto/src路径下:

(这里放入了osrf_testing_tools_cpp和oroccos_kdl)

安装成功后,输出如下

编译

colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

报错及解决方法

1:no matching function for call to 'vesc_ackermann::AckermannToVesc::declare_parameter<double>(const char [19])'

speed_to_erpm_gain = declare_parameter<double>("speed_to_erpm_gain");

解决方案:

修改文件autoware/src/external/vesc/目录下vesc_to_odom.cpp和ackermann_to_vesc.cpp文件:

2:— stderr: mpc_controller /home/xxxxx/AutowareAuto/build/mpc_controller/single_track_dynamics/acado_integrator.c:23:27: error: unknown type name ‘real_t’

解决方案:

sudo apt purge -y ros-foxy-acado-vendor
sudo apt install -y ros-foxy-acado-vendor

安装标定工具

没有找到calibration_tools对应的auto版本!!!

Autoware.core/universe的安装及编译

参考

源安装 - Autoware 文档 (autowarefoundation.github.io)

Autoware.universe部署01:Ubuntu20.04安装Autoware.universe并与Awsim联调_autoware universe-CSDN博客

在Ubuntu20.04下安装Autoware.universe和Carla并进行联合仿真_error: platform linux is not a valid platform to b-CSDN博客

源码安装及编译

环境:ubuntu20.04 + ros2 galactic

需要提前安装好ros2 galactic,自行安装,或使用鱼香ros工具

主要参考Autoware.universe部署01:Ubuntu20.04安装Autoware.universe并与Awsim联调_autoware universe-CSDN博客

安装好环境后,与auto一样

git clone https://github.com/autowarefoundation/autoware.git -b galactic
cd autoware
mkdir src
vcs import src < autoware.repos
source /opt/ros/galactic/setup.bash
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO

colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

安装标定工具

注意:calibrtion_tools版本一定要正确!!!

cd Autoware
wget 
https://raw.githubusercontent.com/tier4/CalibrationTools/blob/galactic/calibration_tools.repos
vcs import src < calibration_tools.repos
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO

colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

报错

1:rosdep install安装时apriltag_ros包无法成功构建:could not checkout ref ' ': fatal: 引用不是一个树

原因分析:

最开始以为是分支时间的bug,后面git show-ref 发现calibration_tools.repos中引用的apriltag_ros的of5e分支已经弃用。

解决方案:

换个分支后不再报错。

2:成功构建calibration工具包后,但是编译失败报错:sensor_calibration_tools: Cannot locate rosdep definition for [extrinsic_map_based_calibrator].

原因分析:

发现extrinsic_map_based_calibrator是calibration_tools/sensor目录下自定义的功能包,会报错是因为版本不对应。 calibration_tools.repos里galactic分支里CalibrationTools的引用并没有随着后续新版本的发布而更新,默认tier4/universe,导致最后安装的Tools为最新的humble版本。

解决方案:

校正calibration_tools.repos中的引用版本。重新构建及编译后不再报错。

自此,编译成功。

标定工具的使用

数据要求

必须是ros2bag数据。

示例数据集

leo-drive数据集

官方示例教程里的数据集是leo-drive/autoware.tutorial_vehicle,包含1个Camera,2个Lidar,1  个GNSS/INS。autoware有tutorial_vehicle模型的官方分支,但是适配最新的 ubuntu22.04+ros2 humble。

如果你使用的ros2版本正好是humble,那么可以完全跟着官方教程走,但若不是humble,比如我使用的是ubuntu 20.04+ ros2 galactic,就算安装依赖时没问题,但在编译calibrtion_tools时会出现模型xxx未定义的问题,这是由于tutorial_vehicle模型数据对应的存储库使用的方法全部默认适配最新的humble版本,对应的一些模型autoware-galactic版本没有。

官方可下载数据集

Bus-ODD 数据集

包含3个Camera,3个Lidar,1个GNSS/INS。

并且由于Applanix 原始消息包含在某些消息中,所以想要播放Bus-ODD数据,你需要构建包并在包里运行播放:

# Create a workspace and clone the repository
mkdir -p ~/applanix_ws/src && cd "$_"
git clone https://github.com/autowarefoundation/applanix.git
cd ..

# Build the workspace
colcon build --symlink-install --packages-select applanix_msgs

# Source the workspace
source ~/applanix_ws/install/setup.bash

# Now you can play back the messages

数据下载:

# Install awscli
$ sudo apt update && sudo apt install awscli -y

# This will download the entire dataset to the current directory.
# (About 10.9GB of data)
$ aws s3 sync s3://autoware-files/collected_data/2022-08-22_leo_drive_isuzu_bags/ ./2022-08-22_leo_drive_isuzu_bags  --no-sign-request

# Optionally,
# If you instead want to download a single bag file, you can get a list of the available files with following:
$ aws s3 ls s3://autoware-files/collected_data/2022-08-22_leo_drive_isuzu_bags/ --no-sign-request
   PRE all-sensors-bag1_compressed/
   PRE all-sensors-bag2_compressed/
   PRE all-sensors-bag3_compressed/
   PRE all-sensors-bag4_compressed/
   PRE all-sensors-bag5_compressed/
   PRE all-sensors-bag6_compressed/
   PRE driving_20_kmh_2022_06_10-16_01_55_compressed/
   PRE driving_30_kmh_2022_06_10-15_47_42_compressed/

# Then you can download a single bag file with the following:
aws s3 sync s3://autoware-files/collected_data/2022-08-22_leo_drive_isuzu_bags/all-sensors-bag1_compressed/ ./all-sensors-bag1_compressed  --no-sign-request

下载后的数据格式为.deb3.zstd格式,解压后再进行数据查看:

zstd -d xxx.db3.zstd -o xxx.db3
ros2 bag info xxx.db3

但是官方可以下载的数据集和示例数据集完全不一样,要使用的话,需要按照教程一点点修改参数,并且需要知道数据集中使用的传感器类型的各类确切参数。

下面复盘一下我的实验过程。

autoware传感模型及车辆模型内容

官方教程中有说明根据传感器数据去修改模型,主要是三个部分:

Creating sensor model

检测启动文件、其管道组织和传感器描述。

主要修改sensor_kit_description中对应传感器参数(传感器帧 ID, 所有传感器的校准参数,以及它们与URDF文件的链接),因为后续calibration_tools/sensor/extrinsic_calibration_manager/launch文件中要用到sensor_kit_description内参数。

若需要连接传感器,修改sensor_kit_launch/launch文件。

Creating individual param

“individual_params”为校准传感器套件的结果,并覆盖 VEHICLE-ID_sensor_kit_description/config/ 目录。

“individual_params”  可以为不同的车辆定义定制的传感器校准(多套方案可以指定id进行切换)。

Creating vehicle model

车辆发布文件 主要用于仿真模块。

修改模型前,我们先来了解一下autoware的坐标系。

Autoware坐标系

base_link:车身坐标系(基座)。车辆上安装传感器的物理位置——车辆后轴在地面上的投影点。

sensor_kit_base_link:传感器套件坐标系——每辆车可以拥有一个或多个传感器套件。

知道坐标系如何划分之后,可以更好地理解传感器模型里的一些参数。

传感器模型

sensor_kit包主要描述传感器帧 ID, 所有传感器的校准参数,以及它们与URDF文件的链接。

<YOUR-OWN-AUTOWARE-DIR>/
  └─ src/
       └─ sensor_kit/
            └─ <YOUR-VEHICLE-NAME>_sensor_kit_launch/
                 ├─ common_sensor_launch/
                 ├─ <YOUR-VEHICLE-NAME>_sensor_kit_description/
                 └─ <YOUR-VEHICLE-NAME>_sensor_kit_launch/

<YOUR-VEHICLE-NAME>_sensor_kit_description/
   ├─ config/
   │     ├─ sensor_kit_calibration.yaml
   │     └─ sensors_calibration.yaml
   └─ urdf/
         ├─ sensor_kit.xacro
         └─ sensors.xacro

  

 sensor_kit_calibration.yaml:各传感器与传感器套件坐标系(sensor_kit_base_link)的位置关系。

sensors_calibration.yaml:传感器套件与车身坐标系(base_link)的位置关系。

(注意:必须以 euler 格式创建这两个文件,如 [x, y, z, roll, pitch, yaw]。 此外,初始值设置为“0”,标定完成后,文件会覆盖。)

sensor_kit.xacro:主要链接了sensor_component内各传感器配置文件。

sensors.xacro:主要链接了sensor_kit_calibration.yaml,sensors_calibration.yaml等传感器位置参数,和sensor_kit.xacro文件等传感器配置。

使用标定工具时,需要修改extrinsic_calibration_manager/launch里的manual.launch.xml manual_sensor_kit.launch.xml manual_sensors.launch.xml文件,这三个文件与sensor_kit的关系如下(放大可以看清):

因为链接着sensor_component,所以就算修改了其他文件,这个文件里没有配套的传感器描述,那么也不能编译成功。

(因为我没有官方数据集的对应传感器配置文件,所以果然失败了)

calibrtion_tools的尝试及失败分析

方法一:autoware更新以下存储库为对应leo-drive--tutorial_vehicle

sample_sensor_kit、sample_vehicle_launch、autoware_individual_params、autoware_launch ---> tutorial_vehicle_sensor_kit_launch、tutorial_vehicle_launch、tutorial_vehicle_individual_params、autoware_launch.tutorial_vehicle

报错:

1:安装ros2依赖时,common_sensor_launch: Cannot locate rosdep definition for [nebula_sensor_driver]

解决方案:

查到nebula为建立在Ros galactic & humble上的传感器驱动平台。添加了nebula对应存储库后,使用vsctools构建,又报错nebula_sensor_driver: Cannot locate rosdep definition for [boost_udp_driver],继续添加存储库,问题解决。

这里需要注意的是,如何找到boost_udp_driver:

2:编译出现模型xxx未定义

原因:

tutorial_vehicle模型数据对应的存储库使用的方法全部默认适配最新的humble版本,对应的一些模型autoware-galactic版本没有。

方法二:直接使用autoware的tutorial_vehicle分支

将tutorial_vehicle分支的所有humble分支改为galactic分支,构建src正常,安装ros依赖正常,编译报错。

报错

1:已安装有ros-galactic-tlsf,但heaphook编译时 tlsf was not found,尝试在cmake里指定了路径,但仍然失败

方法三:在autoware-galactic中只修改sensor_kit中传感器的参数,而不改变各项引用

需要修改/calibration_tools/sensor/extrinsic_calibration_manager/launch/sample_sensor_kit内launch.xml文件,因为sensor_componen文件中传感器配置文件的原因,启动标定模块失败。

标定工具官方使用教程

以相机-激光雷达外参标定为例,首先需要校准初始外参,得到初始外参后再进一步校准相机和激光雷达。

初始外参校准

修改好对应的manual.launch.xml manual_sensor_kit.launch.xml manual_sensors.launch.xml文件后,编译,启动extrinsic_calibration_manager包,同时播放ros2bag。

colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-select extrinsic_calibration_manager
ros2 launch extrinsic_calibration_manager calibration.launch.xml mode:=manual sensor_model:=<OWN-SENSOR-KIT> vehicle_model:=<OWN-VEHICLE-MODEL> vehicle_id:=<VEHICLE-ID>
# tutorial_vehicle 示例
ros2 launch extrinsic_calibration_manager calibration.launch.xml mode:=manual sensor_model:=tutorial_vehicle_sensor_kit vehicle_model:=tutorial_vehicle vehicle_id:=tutorial_vehicle
# 如果时直接使用sample数据的话
ros2 launch extrinsic_calibration_manager calibration.launch.xml mode:=manual sensor_model:=sample_sensor_kit vehicle_model:=sample_vehicle vehicle_id:=sample_vehicle

ros2 bag play <rosbag_path> --clock -l -r 0.2 \
--remap /tf:=/null/tf /tf_static:=/null/tf_static # if tf is recorded

标定的具体过程如下,这里演示了lidar_to_lidar, lidar_to_camera:

手动校准初始外参

激光雷达和相机校准
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-select extrinsic_calibration_manager
ros2 launch extrinsic_calibration_manager calibration.launch.xml mode:=interactive sensor_model:=<OWN-SENSOR-KIT> vehicle_model:=<OWN-VEHICLE-MODEL> vehicle_id:=<VEHICLE-ID> camera_name:=<CALIBRATION-CAMERA>
ros2 launch extrinsic_calibration_manager calibration.launch.xml mode:=interactive sensor_model:=tutorial_vehicle_sensor_kit vehicle_model:=tutorial_vehicle vehicle_id:=tutorial_vehicle

ros2 bag play <rosbag_path> --clock -l -r 0.2 \
--remap /tf:=/null/tf /tf_static:=/null/tf_static # if tf is recorded

标定的具体过程如下:

autoware激光雷达相机校准官方演示

其中红色点表示选定的激光雷达点,绿色点表示选定的图像点。 您必须匹配至少 6 个点才能执行校准。 如果您有错误的匹配项,只需单击它们即可删除此匹配项。 在图像和激光雷达上选择点后,您就可以进行校准了。 如果所选点数大于 6,则将启用“校准外部”按钮。 单击此按钮并更改 tf 源以查看校准结果。

激光雷达点云的反射强度受到多种因素的影响: 距离、反射率、形状和材质等等。所以上述视频中在选择对应点对时,参考了激光雷达的反射强度和距离,特别是标定板上的点对选择,利用了棋盘格和Ar空心板(ArUco)的特征。

  

Autoware.ai中calibration_tools的使用

参考

https://github.com/autocore-ai/calibration_tools/tree/main/lidar-cam-calib-related

(可以直接看这个链接,下面内容只是把官方教程复制过来方便看罢了)

Lidar-Camera-Calib (AutoCore)

概述 LC-Calib原属于autoware.ai的calibration_tools,是一款轻量级自动工具包,用于离线 3D LiDAR 到相机校准。

主要思想

从图像和点云中提取棋盘的角/边缘

使用 PNP 大致计算转换矩阵

使用基于多个数据对的批量优化来获得更准确的结果

目视检查以验证结果

数据要求

可以直接读取图像和点云

同时也提供了读取rosbag的工具,但仅限ros2

配置环境

ROS1(melodic) -noetic也可以

PCL( PCL 1.8.1 )-及其以上都可

Eigen( Eigen 3.3.4 )

OpenCV(OpenCV 3.2.0 )-使用opencv4需要更新某些函数的书写

Ceres( Ceres 2.0.0 )

yaml-cpp( yaml-cpp 0.5.0 ) -0.5会报错,改成0.6版本

其中,yaml_cpp的报错为:

ERRO: In function `YAML::detail::node& YAML::detail::node_data::get<std::string>(std::string const&, std::shared_ptr<YAML::detail::memory_holder>)':

环境:ubuntu20.04 + ros1 noetic + pcl1.11 + opencv 4.5.1 + Ceres 2.0.0 +  yaml-cpp 0.6

使用opencv4的话,需要做以下更改:

将CV_RGB2GRAY、CV_CALIB_CB_ADAPTIVE_THRESH、CV_CALIB_CB_NORMALIZE_IMAGE、CV_CALIB_CB_FILTER_QUADS、CV_CALIB_CB_FAST_CHECK

修改为 cv::COLOR_RGB2GRAY、cv::CALIB_CB_ADAPTIVE_THRESH 、 cv::CALIB_CB_NORMALIZE_IMAGE 、cv::CALIB_CB_FILTER_QUADS 、cv::CALIB_CB_FAST_CHECK

更多关于opencv2/3升级到opencv4函数的修改,可以参考:

OpenCV4新特性_cv_termcrit_iter头文件-CSDN博客

VINS编译, opencv多版本的原因导致的问题_‘cv_gray2rgb’ was not declared in this scop-CSDN博客

工具安装

cd lidar-cam-calibrelated
catkin_make

数据准备

校准工具直接读取图像和点云。如果通过rosbag记录传感器数据,AutoCore也提供了一个工具来提取此项目中的数据(.png / .pcd)(仅限ros2版本),有关详细信息,请参阅文件夹“lidar_cam_reader”。将棋盘的图像和点云保存在“data_pairs”文件夹中。

AutoCore 提供了 4 个数据对,其中 3 个用于计算转换矩阵,最后一个用于验证。

特征提取

首先启动“feature_extract.launch”文件以生成功能yaml文件。每次只能读取一对数据。换句话说,如果你有 10 组图像和点云,你就应该运行 10 次。以下参数应配置为:

此外,用户需要在 “config/calib.yaml” 中配置摄像头的内在参数。

cd lidar-cam-calibrelated
source devel/setup.bash
roslaunch autocore_camera_lidar_calib feature_extract.launch

然后,您可以看到以红色和绿色标记的图像角:

红色标记点的大小表示旋转。

点击键盘,点云中的棋盘也会被标记出来:

然后,您可以看到保存在“结果”文件夹中的feature_file,该文件夹存储了拐角的坐标。

重复此步骤,从整个数据对中获取所有角。记得每次都增加参数“pair_num_c”,否则前一个角将被替换。

计算旋转和平移

启动“calculate_r_t.launch”文件以生成校准yaml文件。此启动文件将所有角的坐标作为输入,在运行此文件之前,请确保从“pari1”到“pairN”(其中 N 表示下面的 pairnum)存在。以下参数应配置为:

此外,用户需要在 “config/calib.yaml” 中配置摄像头的内在参数。

cd lidar-cam-calibrelated
source devel/setup.bash
roslaunch autocore_camera_lidar_calib calculate_r_t.launch

然后你可以看到角相互匹配,如下图所示:

校准文件保存在上述定义的路径下。旋转矢量和平移矢量表示从激光雷达到相机的关系

视觉验证

启动“visual_validate.launch”文件,检查验证数据集中的点云是否可以准确地投影到图像上。以下参数应配置为:

黑点表示图像上拿着棋盘的人的投影。大多数点在正确的区域内匹配,通过目视检查的透视偏差约为几个像素。

示例数据集

来自 AutoCore 的数据集

用于评估此校准工具的数据集位于“data_pairs”文件夹中,包括 4 张图像和相应的点云。或者你可以在这里下载它。

自定义您自己的数据集

由于该工具直接将图像和 .pcd 文件作为输入,因此除了 ROS 之外,还有其他选择来记录数据。要收集有效的数据对,以下提示可能会有所帮助:

  • 确保两个传感器完全检测到棋盘
  • 有效数据对越多,批量优化性能越好(5~10对)
  • 记住棋盘相对于传感器的大致位置,调整参数“filter_x”/“filter_y”

  • 30
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Authware古诗教程是一款专门为学习和欣赏古诗而设计的软件。它提供了丰富的古诗资源和相关的学习功能,帮助用户更好地理解和感受古代文化。 首先,Authware古诗教程拥有庞大的古诗库,涵盖了各个朝代的经典古诗。用户可以通过浏览功能,随时查阅自己喜欢的古诗,了解作者背景和作品的内涵。 其次,Authware古诗教程提供了详细的古诗解析和注释。对于初学者来说,读懂古诗可能会有一些难度,但通过软件提供的解析和注释,用户可以更好地理解古人的用词和意境,进一步欣赏古诗之美。 此外,Authware古诗教程还提供了古诗背景介绍和相关阅读材料。了解古代社会背景和文化氛围,能够更加全面地把握古诗的内涵和艺术价值。通过相关阅读材料的学习,用户可以拓展自己的知识面,提升古诗欣赏的层次。 最后,Authware古诗教程还提供了互动学习和分享社区。用户可以与其他热爱古诗的人交流学习,分享自己的感悟和见解。这种互动交流可以激发更多的灵感和思考,使学习和欣赏古诗变得更加有趣和有意义。 总之,Authware古诗教程是一款功能丰富、易于操作的软件,它可以帮助用户更好地学习和欣赏古诗,了解古代文化,并与其他人分享自己的想法。无论是初学者还是资深爱好者,都可以在这个平台上找到自己需要的资源和交流机会。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值