cadrl_ros
cadrl_ros 是一个基于 ROS 开发的开源软件包,专为地面机器人设计,旨在利用深度强化学习(Deep RL)实现动态环境下的智能避障。它主要解决了机器人在移动过程中,如何安全、高效地避开其他正在移动且具备自主决策能力的智能体(如行人或其他机器人)这一难题。
该工具的核心亮点在于其内置了经过训练的深度神经网络策略,能够像人类一样预测周围动态障碍物的行为并做出实时反应,而不仅仅是被动躲避静止物体。作为 2018 年 IROS 会议获奖论文的官方代码实现,cadrl_ros 提供了完整的网络架构文件及预训练模型参数,极大地降低了复现前沿算法的门槛。
cadrl_ros 非常适合机器人领域的研究人员和开发者使用。对于学术研究者,它是验证和对比新型运动规划算法的理想基准;对于工程开发者,它提供了一个成熟的模块示例,展示了如何将深度学习策略集成到实际的机器人导航系统中。虽然其 ROS 节点部分针对特定硬件进行了测试,但通过简单的接口调整,即可适配不同的感知系统。无论是希望在仿真环境中快速测试算法逻辑,还是计划在真实机器人上部署动态避障功能,cadrl_ros 都是一个极具参考价值的技术资源。
使用场景
某物流仓库部署了多台自主移动机器人(AMR),需要在狭窄通道中与频繁穿梭的叉车及人工搬运工共享空间,实现高效且安全的货物转运。
没有 cadrl_ros 时
- 机器人依赖传统的静态路径规划算法,遇到动态障碍物(如突然出现的叉车)时只能紧急刹车或原地等待,导致运输效率大幅下降。
- 在多机器人交汇场景下,缺乏对他人意图的预测能力,容易陷入“死锁”状态,即双方互相避让却无法通过,需人工远程介入重置。
- 避障行为生硬且不可预测,频繁的急停急转不仅增加了机械磨损,还让周围工作人员感到不安,难以建立人机协作的信任感。
- 调整避障参数需要反复修改代码并重新编译测试,开发周期长,难以适应仓库布局或作业流程的动态变化。
使用 cadrl_ros 后
- 基于深度强化学习的策略使机器人能实时预测动态障碍物的运动轨迹,主动规划平滑的绕行路径,无需停车即可流畅通过复杂区域。
- 算法具备“社交感知”能力,能理解其他智能体的决策逻辑,在多机交汇时自动协商出最优通行顺序,彻底消除了死锁现象。
- 机器人的移动轨迹更加拟人化且平稳,减少了突兀的加减速动作,显著提升了现场人员的安全感和协作流畅度。
- 利用预训练模型和 TensorFlow 接口,开发者可直接在仿真环境中验证新场景,大幅缩短了从算法部署到真机测试的迭代周期。
cadrl_ros 通过将深度强化学习融入 ROS 系统,让地面机器人在动态环境中具备了类似人类的预判与协商能力,实现了从“被动避障”到“主动协同”的质的飞跃。
运行环境要求
- Linux (Ubuntu 16.04)
建议使用 NVIDIA GPU (通过 nvidia-docker 运行),具体型号和显存未说明
未说明

快速开始
cadrl_ros(基于深度强化学习的碰撞规避)
使用深度强化学习训练的动态障碍物避障算法的 ROS 实现
论文:
M. Everett, Y. Chen 和 J. P. How,“基于深度强化学习的动态决策型智能体间的运动规划”,IEEE/RSJ 智能机器人与系统国际会议 (IROS),2018 年
论文:https://arxiv.org/abs/1805.01956
视频:https://www.youtube.com/watch?v=XHoXkWLhwYQ
BibTeX 格式:
@inproceedings{Everett18_IROS,
address = {Madrid, Spain},
author = {Everett, Michael and Chen, Yu Fan and How, Jonathan P.},
booktitle = {IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
date-modified = {2018-10-03 06:18:08 -0400},
month = sep,
title = {Motion Planning Among Dynamic, Decision-Making Agents with Deep Reinforcement Learning},
year = {2018},
url = {https://arxiv.org/pdf/1805.01956.pdf},
bdsk-url-1 = {https://arxiv.org/pdf/1805.01956.pdf}
}
依赖项:
需要 TensorFlow(已测试版本为 1.4.0)
需要 numpy
ROS 是可选的(已在 Ubuntu 16.04 的 Kinetic 版本上测试过)
如果使用 ROS,还需要 ford_msgs,用于我们自定义的消息定义。
一般说明:
该软件的主要贡献在于 network.py 文件以及训练好的模型参数(TensorFlow 检查点)。这些内容包含了我们在论文中报告的策略,并使其他研究人员能够方便地比较未来的算法。
为了便于理解代码流程,我们在 scripts/ga3c_cadrl_demo.ipynb 中提供了一个 Jupyter 笔记本形式的示例。这可以作为参考,但如果您打算编辑该文件,请确保在 TensorFlow 的虚拟环境中安装了 Jupyter,以保证其正常运行。
运行 Jupyter 笔记本(算法的最小工作示例)
此步骤假设您已经安装了 nvidia-docker。稍作修改后也可能适用于普通 Docker。
git clone git@github.com/mfe7/cadrl_ros
./cadrl_ros/docker/build_docker.sh
./cadrl_ros/docker/run_docker.sh
这将启动一个 Docker 容器实例,并输出 Jupyter 笔记本的 URL。将该 URL 复制到浏览器中,导航至 cadrl_ros/scripts 并打开 ga3c_cadrl_demo.ipynb。
您刚刚构建的 Docker 容器中已安装好 TensorFlow 及其他依赖项,因此该笔记本应该可以直接运行。
ROS 注意事项:
我们还提供了一个 ROS 实现,该实现已在 Clearpath Jackal 地面机器人上进行了测试。该节点只是实现动态障碍物间自主导航所需软件中的一个模块,其中大部分代码都是为了与我们的系统集成而编写的。按照当前编写方式,该 ROS 节点可能对其他系统并不特别有用,但它可以作为一个示例,展示如何连接各个模块,以便在硬件上测试我们所学习的碰撞规避策略。例如,其他系统可能从其感知系统提取的动态障碍物表示格式不同,但只要在查询策略时能够将相同的信息传递到状态向量中,就可以轻松替换我们的 cbClusters 方法。我们建议先查看 Jupyter 笔记本。
该算法是在目标距离设置为距智能体起始位置小于 10 米的情况下训练的,因此如果要在较长的旅程中进行测试,就需要为该系统提供局部子目标。而对于较短的距离,比如在一个开放的中庭内,则可能不需要这样做。
运行 ROS 版本:
克隆并构建本仓库及其依赖项(假设目标路径为 ~/catkin_ws/src):
cd ~/catkin_ws/src
git clone git@github.com/mfe7/cadrl_ros
git clone git@bitbucket.org:acl-swarm/ford_msgs.git -b dev
cd ~/catkin_ws && catkin_make
将您系统的输入/输出连接到 launch/cadrl_node.launch。
订阅的主题:
~pose [geometry_msgs/PoseStamped]
机器人在全局坐标系中的位姿~velocity [geometry_msgs/Vector3]
机器人在全局坐标系中的线速度(vx, vy)~goal [geometry_msgs/PoseStamped]
机器人在全局坐标系中的目标位置~clusters [ford_msgs/Clusters]
周围其他智能体的位置、速度和尺寸信息待办事项:planner_mode、safe_actions、peds
发布的主题:
~nn_cmd_vel [geometry_msgs/Twist]
根据网络输出,机器人被命令的扭转速度(线速度和角速度)其他发布的话题仅用于可视化:
- ~pose_marker 在 ~pose 所指示的位置显示黄色矩形
- ~path_marker 按照 ~pose 的历史轨迹显示红色轨迹
- ~goal_path_marker 显示指向未来 1 秒钟处命令速度方向的蓝色箭头
- ~agent_markers 在附近智能体的位置显示橙色圆柱体
待办事项:移除 other_agents_marker 和 other_vels
参数:
- ~jackal_speed
机器人期望的速度(m/s)——已在低于 1.2 m/s 的速度下测试过(并且训练目标是优化在此速度附近)
数据集:
如论文所述,我们提供了一些数据集,可能对希望训练碰撞规避神经网络的研究人员有所帮助。请在 此 Dropbox 文件夹 中找到这些文件及使用说明。
论文中使用的测试案例已发布在 此 Dropbox 文件夹 中。这些测试案例包含每个案例的初始位置、目标位置、期望速度、半径设置等信息,并按智能体数量分类。它们是随机生成的,旨在产生一些有趣的场景来评估算法性能,但由于是随机生成的,有些场景可能会非常简单或乏味。
主要代码维护者:
Michael Everett(https://github.com/mfe7)
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器