学习更多机器人技术,请关注小鱼的微信公众号:《鱼香ROS》
大家好,我是小鱼.上一次写了如何安装ROS2和使用moveit2实例的教程,今天我们接着探索探索Moveit2,小鱼就断断续续的探索一下ROS2+Moveit2,先在CSDN上写写博客,后面会整理出来详细的学习笔记,供大家参考学习.
- 动手学Moveit2第一篇,Ubuntu20安装ROS2和Moveit2
- 动手学Moveit2第二篇,使用键盘控制机械臂
- 一、效果演示
- 二、实时伺服介绍
- 2.1实时伺服介绍
- 2.2 键盘控制节点
- 三、动手操作
- 3.1 前提工作
- 3.1.1 坑之回退大法
- 3.2 原理介绍
- 3.3运行服务端
- 3.4 开始享受
- 最后
- 参考链接
废话不多说,先看效果,注意哈,食品中是使用遥控器,我们使用键盘就可以了,因为懒得录制键盘的,就用官方的遥控器版本代替下
使用键盘控制机械臂
通过MoveIt2的伺服模式,可以直接控制机械臂末端的在笛卡尔空间的位置,也可以直接操控机械臂的关节正转和反转。
小伙伴肯定会问,我如果一不小心控制机械臂撞到自己,会不会机毁人亡,MoveIt2肯定不会那么沙雕,所以其伺服节点已经对奇异点和机械臂的碰撞作了检测,可以防止操作人员搞坏机器人。
2.2 键盘控制节点键盘控制机械臂的意思是,我们能够通过键盘进行以下两种模式的控制:
-
笛卡尔模式
使用W和E切换机械臂的世界坐标系或末端,使用箭头控制前后左右运动,使用
.
和;
控制上下运动 -
关节模式 关节模式是通过,1、2、3、4、5、6、7来控制关节转动,使用R来切换转动的方向
完成上一节:动手学Moveit2第一篇,Ubuntu20安装ROS2和Moveit2
3.1.1 坑之回退大法这里有个坑哈,Moveit2的moveit2_tutorials,而且把本来能用的给搞成了不能用的,所以请看本教程的同学把代码回退到小鱼指定的分支,使用下面的指令
git reset 59cf8c49bb309e2bb7f06e295f87efa36f8bb506 --hard
3.2 原理介绍
原理其实很简单,我们通过键盘节点发送数据给moveit的控制节点,从而控制机械臂。有兴趣的小伙伴可以看源码:
https://github.dev/ros-planning/moveit2/blob/main/moveit_ros/moveit_servo/src/teleop_demo/joystick_servo_example.cpp
进入上一讲的工作空间 启动服务端,接受键盘控制指令
ros2 launch moveit2_tutorials servo_teleop.launch.py
服务端启动完成应该可以看到这样的界面
启动键盘控制节点
ros2 run moveit2_tutorials servo_keyboard_input
使用W和E切换机械臂的世界坐标系或末端,使用箭头控制前后左右运动,使用.
和;
控制上下运动。关节模式是通过,1、2、3、4、5、6、7来控制关节转动,使用R来切换转动的方向。
这是探索Moveit2的第二篇文章,坑还是太多了,建议小伙伴如非必须,先学习着Moveit。今天就探索到这里,我是小鱼,目前在做公众号和ROS2课程,欢迎关注《鱼香ROS》
参考链接- http://moveit2_tutorials.picknik.ai/doc/realtime_servo/realtime_servo_tutorial.html?highlight=ros2
- https://github.dev/ros-planning/moveit2/blob/main/moveit_ros/moveit_servo/src/teleop_demo/joystick_servo_example.cpp