MoveIt

本页说明如何启动 LM3/LM3-L1 的 MoveIt 配置,并通过 RViz 做规划和执行。

准备工作

先在工作空间根目录构建源码包:

cd ~/lebai/lebai_ws
source /opt/ros/humble/setup.bash
colcon build --symlink-install
source install/setup.bash

启动 MoveIt

连接仿真控制器时,将 robot_ip 指向仿真控制器所在主机。下面示例使用本机 127.0.0.1

ros2 launch lebai_lm3_moveit_config lm3.launch.py \
  robot_ip:=127.0.0.1 \
  simulator:=true

连接真实控制器时,将 robot_ip 改成控制器 IP,并省略 simulator:=true

ros2 launch lebai_lm3_moveit_config lm3.launch.py \
  robot_ip:=192.168.1.100

启动 LM3-L1 MoveIt:

ros2 launch lebai_lm3_moveit_config lm3_l1.launch.py \
  robot_ip:=127.0.0.1 \
  simulator:=true

默认会加载带 gripper 的配置。只使用机械臂本体时,设置 has_gripper:=false

ros2 launch lebai_lm3_moveit_config lm3.launch.py \
  robot_ip:=127.0.0.1 \
  simulator:=true \
  has_gripper:=false

RViz 中的操作

启动后,在 RViz 的 MotionPlanning 面板中选择 planning group:

  • manipulator:拖动末端交互 marker,点击 Plan 做机械臂规划,点击 Execute 执行轨迹。执行前需要先启动机械臂。

  • gripper:选择 openclosed 命名状态,再执行 gripper action。

点击 Execute 后,MoveIt 会通过驱动执行机械臂轨迹或 claw 开合命令。

检查连接

启动后可以检查 joint states、MoveIt 控制 action 和 TF:

ros2 topic echo /lebai/status/joint_states --once
ros2 topic echo /lebai/model/joint_states --once
ros2 action info /lebai_trajectory_controller
ros2 action info /lebai_gripper_controller/gripper_cmd
ros2 topic echo /tf --once

ros2 action info 应该显示 MoveIt action client 和驱动 action server 都存在。 如果只有 client、没有 server,通常说明 lebai_driver 没有正常启动或工作空间 没有重新构建并 source。