C++实现的机器人运动规划代码开源!

[复制链接]
查看38003 | 回复0 | 2024-3-19 20:07:36 | 显示全部楼层 |阅读模式
机器人运动规划的核心算法

源代码:

http://www.gitpp.com/plang/ros_motion_planning

机器人运动规划是一个计算问题,涉及找到一系列有效配置以将机器人从源移动到目的地。一般包括路径搜索和轨迹优化。


    路径搜索:基于障碍物等路径约束,找到机器人从源点到目的地且不发生任何碰撞的最佳顺序。

    轨迹规划:基于运动学、动力学和障碍物,根据路径优化从源到目的地的运动状态轨迹。

该存储库提供了常见运动规划算法的实现。理论分析可以在运动规划中找到。此外,我们还提供Python和MATLAB版本。

欢迎您的星星、分叉和 PR!

内容



    3分钟快速启动

    文档

    工具链

    版本

    致谢

    执照

    维护
0. 3分钟快速启动

使用 ROS Noetic 在 ubuntu 20.04 LTS 上进行测试。


    安装ROS (建议桌面完整版)。

    安装 git。
    sudo apt install git
    安装依赖
    git clone -b release-0.6.3 --recursive https://github.com/oxfordcontrol/osqp
    cd osqp && mkdir build && cd build
    cmake .. -DBUILD_SHARED_LIBS=ON
    make -j6
    sudo make install
    sudo cp /usr/local/include/osqp/* /usr/local/includegit clone https://github.com/robotology/osqp-eigen.git
    cd osqp-eigen && mkdir build && cd build
    cmake ..
    make
    sudo make installsudo apt install python-is-python3 \
    ros-noetic-amcl \
    ros-noetic-base-local-planner \
    ros-noetic-map-server \
    ros-noetic-move-base \
    ros-noetic-navfn


      其他依赖。



      OSQP-本征



      OSQP

    克隆存储库。
    git clone https://github.com/ai-winter/ros_motion_planning.git
    编译代码。

    注意:如果遇到 libignition 依赖错误,请参阅#48 。
    cd ros_motion_planning/
    catkin_make
    # or catkin build
    # you may need to install it by: sudo apt install python-catkin-tools
    执行代码。
    cd scripts/
    ./main.sh

    注意:修改启动文件可能不会产生任何效果,因为它们是由 Python 脚本根据src/user_config/user_config.yaml您运行main.sh. 因此,您应该修改配置而user_config.yaml不是启动文件。

    使用RViz 中的2D 导航目标来选择目标。

    移动!

    您可以使用其他脚本快速关闭它们。
    ./killpro.sh
1.文件

整体文件结构如下所示。
ros_motion_planner
├── assets
├── scripts
└── src
    ├── core
    │   ├── global_planner
    │   ├── local_planner
    │   ├── curve_generation
    │   └── utils
    ├── sim_env             # simulation environment
    │   ├── config
    │   ├── launch
    │   ├── maps
    │   ├── meshes
    │   ├── models
    │   ├── rviz
    │   ├── urdf
    │   └── worlds
    ├── third_party
    │   ├── dynamic_rviz_config
    │   ├── dynamic_xml_config
    │   ├── gazebo_plugins
    │   └── rviz_plugins
    └── user_config         # user configure file

为了更好地理解项目代码,可以使用doxygen工具生成详细的接口文档。首先安装 doxygen 和 graphviz。
sudo apt-get install doxygen graphviz
然后启动 doxygen,你可以在 中找到文档./docs/html/index.html。
doxygen
有关项目用途的更多信息,请参阅下表。

指数文档介绍
0

介绍如何动态配置机器人类型、规划算法、环境障碍物等参数。
1

介绍如何使用Docker方便地搭建项目环境并进行模拟。
2

介绍如何基于此存储库中提供的算法构建真实的机器人应用程序。
3

重要更新。


粒子群算法



粒子群优化
当地规划师

规划师版本动画片
PID



将单积分器动力学映射到独轮车控制命令 14
线性QR



-
数字水务局



避免碰撞的动态窗口方法
有源滤波器



机械手和移动机器人的实时避障
RPP



机器人路径跟踪的受监管纯粹追踪
TEB




多点控制

-
格子




曲线生成

规划师版本动画片
多项式



-
贝塞尔



-
三次样条



-
样条曲线



-
杜宾斯



在具有平均曲率约束且具有指定初始位置和终止位置以及切线的最小长度曲线上
里兹-谢普






机器人的运动规划是一个复杂的过程,它涉及到路径规划和轨迹规划两个主要步骤。以下是实现机器人运动规划的一般方法:


    路径规划:在有障碍物的环境中,机器人需要找到一条从起点到终点的无碰撞路径。路径规划算法有很多,如基于图搜索的算法(如Dijkstra算法、A*算法等)、基于采样的算法(如RRT、PRM等)、基于势场的算法等。这些算法可以根据具体的应用场景和需求进行选择。路径规划生成的路径通常由一系列的离散点表示,这些点可以通过线性插值进行连接。

    轨迹规划:轨迹规划是在路径规划的基础上,考虑机器人的运动学和动力学约束,生成一条满足光滑性、速度可控性等要求的轨迹。轨迹规划的方法包括多项式插值、样条插值等。在轨迹规划过程中,需要考虑机器人的速度、加速度以及加加速度等运动参数,以确保机器人的运动平稳且符合实际物理限制。

在实际应用中,机器人的运动规划还需要考虑其他因素,如传感器的噪声、控制误差、动态障碍物等。为了处理这些问题,可以采用一些先进的控制策略和感知技术,如鲁棒控制、自适应控制、深度学习等。

此外,虚拟模型和仿真环境在机器人运动规划中也起着重要作用。通过建立机器人的虚拟模型和相应的仿真环境,可以在计算机上模拟机器人的运动过程,验证运动规划算法的正确性和有效性,从而在实际应用中提高机器人的运动性能和安全性。

总的来说,机器人的运动规划是一个涉及多个领域的综合性问题,需要综合考虑机器人的运动学、动力学、感知和控制等多个方面。通过合理的路径规划和轨迹规划,以及先进的控制策略和感知技术,可以实现机器人的高效、安全和可靠的运动。



机器人运动规划的核心算法

源代码:

http://www.gitpp.com/plang/ros_motion_planning

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则