Moveit2 学习

1.urdf 准备

首先从 solidworks 中导出机器人的 urdf,并可以在 rviz 中正常显示,joint_state_publisher_gui 节点可以正常控制每个关节的转动。这一部分在这里不多赘述。


2.环境配置

示例环境:x86 ubuntu22.04,32G,ROS2 humble。

2.1Moveit2 安装

按照“鱼香 ros”一键安装配置好“ROS2 humble”和“rosdepc”(小鱼定制 rosdep)

wget http://fishros.com/install -O fishros && . fishros

更新软件包:

使用 mixin 安装 Colcon ROS 2 构建系统:

sudo apt install python3-colcon-common-extensions
sudo apt install python3-colcon-mixin
colcon mixin add default https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
colcon mixin update default

安装 vcstool :

sudo apt install python3-vcstool

2.2 创建 Colcon 工作区并下载教程

对于教程,您需要有一个 colcon 工作区设置。:

mkdir -p ~/ws_moveit/src

2.3 下载 MoveIt 和教程的源代码

下载 humble 分支源码(需要梯子)

cd ~/ws_moveit/src
git clone -b humble https://github.com/moveit/moveit2_tutorials

下载 MoveIt 其余部分的源代码:

vcs import --recursive < moveit2_tutorials/moveit2_tutorials.repos

导入命令可能会要求您提供 GitHub 凭据。 您只需按 Enter 即可继续(忽略“身份验证失败”错误)。

3.构建 Colcon 工作区

首先删除所有先前安装的 moveit 二进制文件:

sudo apt remove ros-$ROS_DISTRO-moveit*

安装依赖

sudo apt update && rosdepc install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y

配置工作区

cd ~/ws_moveit
colcon build --mixin release
#如果会卡死的话使用这条命令:colcon build ----executor sequential --mixin release

编译完成后应该是 55 个包编译成功。

4.设置 Colcon 工作区

echo 'source ~/ws_moveit/install/setup.bash' >> ~/.bashrc

该命令允许你的工作区在打开终端时自动查找到该包。


3.Moveit Setup Assistant 配置助手

https://www.ncnynl.com/ros2docs/cn/moveit2/doc/examples/setup_assistant/setup_assistant_tutorial.html

注:需要先在你 urdf 工作空间中 source 到你的 urdf 包才行


4.驱动规划关键函数

4.1ROS2 和 MoveIt 核心部分

ROS2 和 MoveIt 头文件

#include <rclcpp/rclcpp.hpp>                              // ROS2 C++ 客户端库
#include <moveit/move_group_interface/move_group_interface.h>  // MoveIt 运动规划接口
#include <moveit_msgs/msg/robot_trajectory.hpp>          // 机器人轨迹消息类型

MoveGroupInterface 初始化

using moveit::planning_interface::MoveGroupInterface;
auto move_group_interface = MoveGroupInterface(node, "left_arm_plan_group");//规划组名称
  • 功能: 创建 MoveIt 运动规划接口

  • 参数: ROS 节点和规划组名称

  • 用途: 所有运动规划和执行的核心接口

设置规划参数

move_group_interface.setMaxVelocityScalingFactor(1.0);        // 最大速度比例,默认为0.1
move_group_interface.setMaxAccelerationScalingFactor(1.0);    // 最大加速度比例,默认为0.1
move_group_interface.setPlanningTime(10.0);                   // 规划时间限制,默认为5.0
move_group_interface.setNumPlanningAttempts(20);              // 规划尝试次数

坐标系设置

move_group_interface.setPoseReferenceFrame("base_link");       // 设置参考坐标系
move_group_interface.setEndEffectorLink("Left_Arm_Link_6");    // 设置末端执行器

笛卡尔路径规划

double fraction = move_group_interface.computeCartesianPath(
    waypoints,          // 路径点向量
    eef_step,          // 末端执行器步长
    jump_threshold,    // 跳跃阈值
    trajectory         // 输出轨迹
);
  • 返回值: 路径规划完成度(0.0-1.0)

  • 参数说明

    • waypoints: 包含起点和终点的姿态向量

    • eef_step: 0.0005(0.5mm)- 路径插值精度

    • jump_threshold: 0.0 - 禁用跳跃检测

    • trajectory: 计算得到的机器人轨迹

轨迹执行

moveit::planning_interface::MoveGroupInterface::Plan plan;
plan.trajectory_ = trajectory;
auto result = move_group_interface.execute(plan);

5.讨论

一起学习,有疑问的可以联系我邮箱francistian@foxmail.com

### MoveIt2 安装教程 #### 一、准备工作 为了顺利安装MoveIt2,需先确认操作系统环境已准备好。通常推荐的操作系统为Ubuntu及其对应的ROS发行版。对于Docker的安装可以参照如下命令来简化开发环境准备的过程[^1]: ```bash sudo apt-get install curl curl -sSL https://get.docker.com/ | sh sudo usermod -aG docker $(whoami) ``` 以上操作会将当前用户加入docker组以便无需每次使用sudo执行docker命令。 #### 二、安装MoveIt2 针对不同需求可以选择不同的方式来部署MoveIt2,下面介绍基于源码编译的方式,这种方式适合希望深入理解或修改MoveIt2内核的研究人员和开发者们。 ##### 下载源代码仓库 首先克隆官方GitHub上的MoveIt2存储库至本地机器上: ```bash git clone --recursive https://github.com/ros-planning/moveit2.git -b main ~/moveit2_ws/src/moveit2 ``` 这里`main`分支代表最新的稳定版本;如果想要特定功能或者修复后的版本,则可以根据实际情况调整标签名。 ##### 编译工作空间 进入之前建立的工作区根目录(`~/moveit2_ws`)并初始化colcon构建工具链用于处理catkin包集合: ```bash cd ~/moveit2_ws/ rosdep update && rosdep install --from-paths src --ignore-src -r -y source /opt/ros/<distro>/setup.bash colcon build --symlink-install --cmake-DCMAKE_BUILD_TYPE=Release ``` 请注意替换 `<distro>` 成实际使用的ROS2分发代号比如 `foxy`, `galactic`. ##### 设置环境变量 完成上述步骤之后,记得把新生成的内容加载入shell环境中去使得终端能识别新建节点和服务等资源: ```bash source ~/moveit2_ws/install/setup.bash ``` #### 三、验证安装成果 最后一步就是测试下刚安好的MoveIt2能否正常运作啦!尝试运行一个简单的demo看看效果如何吧! ```bash ros2 launch moveit2_tutorials demo.launch.py ``` 这段指令将会启动一系列预设场景供体验者探索学习,其中包括但不限于规划路径展示等功能模块。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值