第十章Actor-Critic算法
虽然采用时序差分法来指导网络学习,但是此算法仍是在一个episode结束后才进行网络更新
第九章策略梯度算法
理论讲解部分过于简单,可参考强化学习教程相关章节
AEDE参数解读
1. localPlanner中的参数 pathFolder 存放离线待选路径的位置 vehicleLength,/vehicleWidth 车辆尺寸,用于近距离旋转碰撞检测 sensorOffsetX / sensorOffsetY 传感器转换到车辆参考点 twoWayDrive 能否倒车行驶 laserVoxelSize / terrainVoxelSize 激光雷达点云/地形点云的降采样体素网格大小。较大值会更强下采样,减少点云量,提高速度但丢细节;较小值保留更多点但计算量增大。 useTerrainAnalysis 是否启用地形分析,决定了是使用原始激光雷达点云还是预处理后的地形点云进行障碍物检测和路径决策 checkObstacle 是否启用障碍物检测 checkRotObstacle 是否检测车辆旋转时车身与障碍物的碰撞风险 adjacentRange 路径规划时考虑障碍物的最大范围和路径搜索范围 obstacleHeightThre 障碍物高度阈值,当点云的intensity即地形高度超过该阈值时,视为障碍物 groundHeightThre 地面高度阈值...
TARE代码解读
本代码主只是用来做自主探索时的上层路径规划和重定位 exploration_path keypose_graph navigation_boundary_publisher rolling_grid tare_planner_node utils graph lidar_model planning_env rolling_occupancy_grid tare_visualizer viewpoint grid_world local_coverage_planner pointcloud_manager sensor_coverage_planner tsp_solver viewpoint_manager 1. exploration_path 实现探索路径的类 2. keypose_graph 3. navigation_boundary_publisher 在Matterport3D 仿真环境时,从src/tare_planner/data/boundary.ply文件读取探索边界信息并发送出去 输入为空 输出为/navigation_boundary 4. rol...
AEDE代码解读
本代码主只是用来做局部路径规划和小范围避障 1. joystick_drivers 包含不同手柄遥操作的各种代码,实车部署不需要,可以删去 2. loam_interface 用来桥接不同slam算法,通过修改loam_interface.launch可以使此项目适配各种slam算法。修改规则可参考State Estimation Setup Notes 输入为不同slam算法输出的stateEstimationTopic和registeredScanTopic 输出为/state_estimastion和/registered_scan话题名 3. sensor_scan_generation 将世界坐标系下的点云转换至传感器Lidar坐标系下,并以与扫描消息相同的频率和时间戳发布状态估计消息。这些信息会提供给上层规划模块使用 输入为/state_estimation和/registered_scan 输出为/state_estimation_at_scan(等同于/state_estimation)和/sensor_scan(世界坐标系下的点云转换至传感器Lidar坐标系下...
使用uv
1. uv安装 直接使用Python自带的pip安装,兼容性最佳 pip install uv 随后将pip安装的包导入到环境变量中,在.bashrc或者.zshrc中添加 export PATH="$HOME/.local/bin:$PATH" 使用source ~/.zshrc刷新 2. 基础用法 2.1 创建项目 首先设定python版本 uv python pin 3.13 uv init 2.2 添加依赖 添加numpy库 uv add numpy 添加指定版本的numpy库 uv add numpy>=2.0.2 2.3 移除依赖 移除numpy库 uv remove numpy 2.4 查看项目的依赖树 uv tree 2.5 创建虚拟环境 创建一个虚拟环境,并指定Python版本 uv venv my-name --python 3.11 2.6 激活虚拟环境 source .venv/bin/activate 2.7 退出虚拟环境 deactivate 2.8 在uv中使用pip uv pip install 3. 换源 uv换源包括三个方面一个是依赖包的源一个...
Linux创建新用户
1. 创建用户 1.1 法一:使用 adduser 命令创建新用户 在某些基于Debian的Linux发行版中,可以使用adduser命令,会提供交互式操作。 sudo adduser 新用户名 1.2 法二:使用 useradd 命令创建新用户 在 Linux 系统中,可以使用useradd这个通用命令来创建新用户 sudo useradd -m -s /bin/bash 新用户名 -d 指定用户的家目录 -s 指定用户的默认shell,可写为/bin/zsh -m 为新用户在 /home 目录下创建一个新的家目录 给新用户设置一个密码 sudo passwd 新用户名 2. 赋予root权限 2.1 法一:使用 adduser 命令 在某些基于Debian的Linux发行版中,可以使用adduser命令 sudo adduser newuser sudo 2.2 法二:修改/etc/sudoers文件 sudo vim /etc/sudoers 在文件中找到如下命令 ## Allow root to run any commands anywhere root AL...
符号说明
随机变量用大写字母表示如XXX 随机变量序列用小写字母表示如sss
第二章马尔可夫决策过程
在强化学习中,智能体与化境的交互过程可以通过马尔可夫决策过程来表示,马尔可夫决策过程是强化学习的基本框架 本章首先介绍马尔可夫过程(Markov process,MP)以及马尔科夫奖励过程(Markov reward process,MRP)。二者比较得到马尔科夫决策过程(Markov decision process,MDP)。其次介绍马尔科夫决策过程中的策略评估(policy evaluation)。最后介绍马尔科夫决策过程中的控制,分为策略迭代(policy iteration)和价值迭代(value iteration) 1. 马尔可夫过程 1.1 马尔可夫性质 马尔可夫性质(Markov property)是指未来状态的条件概率分布仅依赖于当前状态。假设X0,X1,⋯ ,XtX_0,X_1,\cdots,X_tX0,X1,⋯,Xt构成随机过程,如果具有马尔可夫性质则 p(Xt+1=xt+1∣X0:t=x0:t)=p(Xt+1=xt+1∣Xt=xt)p \left( X_{t+1}=x_{t+1} | X_{0:t}=x_{0:t} \right) = p \lef...