分享

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

 limao164 2024-04-21 发布于四川

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

源代码:

http://www./plang/ros_motion_planning

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

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

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

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

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

内容

  • 3分钟快速启动

  • 文档

  • 工具链

  • 版本

  • 致谢

  • 执照

  • 维护

0. 3分钟快速启动

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

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

  2. 安装 git。

    sudo apt install git
  3. 安装依赖

    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/include
    git clone https://github.com/robotology/osqp-eigen.git
    cd osqp-eigen && mkdir build && cd build
    cmake ..
    make
    sudo make install
    sudo 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

  4. 克隆存储库。

    git clone https://github.com/ai-winter/ros_motion_planning.git
  5. 编译代码。

    注意:如果遇到 libignition 依赖错误,请参阅#48 。

    cd ros_motion_planning/
    catkin_make
    # or catkin build
    # you may need to install it by: sudo apt install python-catkin-tools
  6. 执行代码。

    cd scripts/
    ./main.sh

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

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

  8. 移动!

  9. 您可以使用其他脚本快速关闭它们。

    ./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图片图片
多点控制图片 -
格子图片图片

曲线生成

规划师版本动画片
多项式图片图片-
贝塞尔图片图片-
三次样条图片图片-
样条曲线图片图片-
杜宾斯图片图片在具有平均曲率约束且具有指定初始位置和终止位置以及切线的最小长度曲线上
里兹-谢普图片图片

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

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

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

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

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

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

图片

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

源代码:

http://www./plang/ros_motion_planning

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多