服务 Services

以下 service 使用默认 /lebai 命名空间。每个响应都包含 lebai_interfaces/msg/Result

bool success
int32 code
string message

successtrue 表示调用成功。调用失败时,message 会包含错误信息。

启动停止 start_stop

Service

类型

用途

/lebai/start_stop/start_sys

lebai_interfaces/srv/Command

启动系统。

/lebai/start_stop/stop_sys

lebai_interfaces/srv/Command

停止系统。

/lebai/start_stop/powerdown

lebai_interfaces/srv/Command

关机。

/lebai/start_stop/stop

lebai_interfaces/srv/Command

停止机器人。

/lebai/start_stop/estop

lebai_interfaces/srv/Command

急停。

/lebai/start_stop/start_teach_mode

lebai_interfaces/srv/Command

进入示教模式。

/lebai/start_stop/end_teach_mode

lebai_interfaces/srv/Command

退出示教模式。

/lebai/start_stop/pause_move

lebai_interfaces/srv/Command

暂停运动。

/lebai/start_stop/resume_move

lebai_interfaces/srv/Command

恢复运动。

/lebai/start_stop/reboot

lebai_interfaces/srv/Command

重启控制器。

示例:

ros2 service call /lebai/start_stop/start_sys lebai_interfaces/srv/Command

运动 motion

Service

类型

用途

/lebai/motion/movej

lebai_interfaces/srv/MoveJoint

关节运动。

/lebai/motion/movel

lebai_interfaces/srv/MoveLinear

直线运动。

/lebai/motion/movec

lebai_interfaces/srv/MoveCircular

圆弧运动。

/lebai/motion/speedj

lebai_interfaces/srv/SpeedJoint

关节速度控制。

/lebai/motion/speedl

lebai_interfaces/srv/SpeedLinear

TCP 速度控制。

/lebai/motion/move_pvat

lebai_interfaces/srv/MovePvat

PVAT 运动。

/lebai/motion/wait_move

lebai_interfaces/srv/WaitMove

等待指定运动完成。

/lebai/motion/stop_move

lebai_interfaces/srv/Command

停止当前运动。

/lebai/motion/skip_move

lebai_interfaces/srv/Command

跳过当前运动。

/lebai/motion/get_running_motion

lebai_interfaces/srv/GetRunningMotion

获取当前运动 ID。

/lebai/motion/get_motion_state

lebai_interfaces/srv/GetMotionState

获取指定运动状态。

关节运动示例:

ros2 service call /lebai/motion/movej lebai_interfaces/srv/MoveJoint "{
  target: {
    is_joint_pose: true,
    joint_positions: [0.0, -0.5, 0.5, 0.0, 0.5, 0.0]
  },
  params: {
    acceleration: 0.5,
    velocity: 0.5,
    time: 0.0,
    blend_radius: 0.0
  }
}"

查询当前运动:

ros2 service call /lebai/motion/get_running_motion lebai_interfaces/srv/GetRunningMotion

IO

Service

类型

用途

/lebai/io/set_do

lebai_interfaces/srv/SetDigitalOutput

设置数字输出。

/lebai/io/get_di

lebai_interfaces/srv/GetDigitalInput

读取数字输入。

/lebai/io/get_do

lebai_interfaces/srv/GetDigitalOutput

读取数字输出。

/lebai/io/set_ao

lebai_interfaces/srv/SetAnalogOutput

设置模拟输出。

/lebai/io/get_ai

lebai_interfaces/srv/GetAnalogInput

读取模拟输入。

/lebai/io/get_ao

lebai_interfaces/srv/GetAnalogOutput

读取模拟输出。

/lebai/io/set_dio_mode

lebai_interfaces/srv/SetDioMode

设置 DIO 模式。

/lebai/io/get_dio_mode

lebai_interfaces/srv/GetDioMode

读取 DIO 模式。

示例:

ros2 service call /lebai/io/set_do lebai_interfaces/srv/SetDigitalOutput "{device: robot, pin: 0, value: true}"
ros2 service call /lebai/io/get_di lebai_interfaces/srv/GetDigitalInput "{device: robot, pin: 0}"

内置夹爪 claw

Service

类型

用途

/lebai/claw/init_claw

lebai_interfaces/srv/Command

初始化内置 claw。

/lebai/claw/set_claw

lebai_interfaces/srv/SetClaw

设置 claw 力和开合幅度。

/lebai/claw/get_claw

lebai_interfaces/srv/GetClaw

读取 claw 状态。

示例:

ros2 service call /lebai/claw/init_claw lebai_interfaces/srv/Command
ros2 service call /lebai/claw/set_claw lebai_interfaces/srv/SetClaw "{amplitude: 40.0, force: 50.0}"
ros2 service call /lebai/claw/get_claw lebai_interfaces/srv/GetClaw

发现 discovery

Service

类型

用途

/lebai/discovery/resolve

lebai_interfaces/srv/ResolveControllers

发现局域网中的 Lebai 控制器。

示例:

ros2 service call /lebai/discovery/resolve lebai_interfaces/srv/ResolveControllers

独立夹爪 gripper

Service

类型

用途

/lebai/gripper/set_position

lebai_interfaces/srv/SetGripperPosition

设置 gripper 位置。

/lebai/gripper/set_force

lebai_interfaces/srv/SetGripperForce

设置 gripper 力。

/lebai/gripper/set_velocity

lebai_interfaces/srv/SetGripperVelocity

设置 gripper 速度。

/lebai/gripper/do_calibration

lebai_interfaces/srv/Command

执行标定。

/lebai/gripper/turn_on_auto_calibration

lebai_interfaces/srv/Command

开启自动标定。

/lebai/gripper/turn_off_auto_calibration

lebai_interfaces/srv/Command

关闭自动标定。

示例:

ros2 service call /lebai/gripper/set_position lebai_interfaces/srv/SetGripperPosition "{position: 50}"
ros2 service call /lebai/gripper/set_force lebai_interfaces/srv/SetGripperForce "{force: 50}"
ros2 service call /lebai/gripper/set_velocity lebai_interfaces/srv/SetGripperVelocity "{velocity: 50, persistent: false}"