RoArm-M2-S 8. 使用指令控制机械臂

来自Waveshare Wiki
跳转至: 导航搜索
RoArm-M2-S
{{{name2}}}
{{{name3}}}
功能简介
特性 RoArm-M2-S 机械臂
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 TTL总线舵机控制接口 I2C UART

8. 使用指令控制机械臂

保持 roarm_driver 机械臂驱动节点运行的终端窗口,打开一个新的终端,运行用于指令控制的 Launch 文件,本例程依赖 Moveit2 进行动作规划:

cd ~/roarm_ws_em0/
ros2 launch roarm_moveit_cmd command_control.launch.py rviz_config:=~/roarm_ws_em0/src/roarm_main/roarm_moveit_cmd/config/command_control.rviz

注意:执行该指令后,机械臂将会转动(小臂伸向正前方,与水平面平行),请勿在机械臂周围放置易碎品,远离儿童。

想让 Rviz2 中显示机械臂,可以参考 4.2 运行 Moveit2 拖拽交互例程里面的操作步骤。


8.1 获取当前点位置

开启第三个新的终端,进入机械臂 ROS2 的工作空间,启动用来获取当前位置的节点:

cd ~/roarm_ws_em0/
ros2 run roarm_moveit_cmd getposecmd

再开启第四个终端,进入机械臂 ROS2 的工作空间,调用用来获取当前位置的服务:

cd ~/roarm_ws_em0/
ros2 service call /get_pose_cmd roarm_moveit/srv/GetPoseCmd


8.2 控制机械臂末端运动到指定位置

开启一个新的终端,进入机械臂 ROS2 的工作空间,启动用于运动控制的节点(用于接收目标位置):

cd ~/roarm_ws_em0/
ros2 run roarm_moveit_cmd movepointcmd

再开启一个新的终端,进入机械臂 ROS2 的工作空间,调用用来控制机械臂末端点位置的服务:

cd ~/roarm_ws_em0/
ros2 service call /move_point_cmd roarm_moveit/srv/MovePointCmd {"x: 0.2,y: 0,z: 0"}

xyz 为机械臂目标位置的坐标,单位为 m。你可以通过调用这个服务来控制机械臂运动到目标位置。


8.3 在固定高度上画圆

在 Rviz2 中,点击 Add,添加 RobotModel。

M2-S使用指令画圆.png


在 RobotModel 选项卡内,找到 Description Topic,选择 /robot_description,就会出现 Links 的选项。

M2-S使用指令画圆1.png

在 Links 选项中,找到 link4,展开后勾选 Show Trail,用于查看末端 Link4 的轨迹。

M2-S使用指令画圆2.png

接着在新终端中启动用于画圆的节点:

cd ~/roarm_ws_em0/
ros2 run roarm_moveit_cmd movecirclecmd

调用这个服务,来让机械臂在指定位置画圆:

cd ~/roarm_ws_em0/
ros2 service call /move_circle_cmd roarm_moveit/srv/MoveCircleCmd {"x: 0.2,y: 0,z: 0,radius: 0.1"}

就可以看见 Rviz 2 界面中机械臂画出的圆。

RoArm-M2-S ROS2 Humble + Moveit2 教程