dashboard 的使用

一、简介

在使用SDK操作机器人的第一步,就是给机器人上电、释放抱闸等基础操作,这些操作都作为接口放在了dashboard类中,具体的接口可以查看 CS机器人 python SDK 接口手册 章节,这里提供一个简单的使用案例

二、操作流程

1、安装elite python sdk,确保sdk安装正确、解释器使用python版本正确
2、进入示例代码所在文件夹,打开cmd
3、执行这行代码:python example_dashboard_client.py --ip 192.168.0.1 ,请注意,这里example_dashboard_client.py是文件名,需要替换成真实文件名,--ip参数后输入的是机器人的ip地址,也需要根据实际ip输入

三、常见问题

1、Q:为什么sdk安装后,ide却提示找不到这个库呢?
A:首先请确认安装的python wheel基于什么版本编译的,和使用的版本是否有差异,其次,需要确认当前环境变量里优先级最高的python版本和pip版本,与ide中的解释器使用的是否是同一版本,如果不是可以修改环境变量后重新安装sdk,也可以修改解释器版本
2、只能通过控制台执行这个文件吗?能否通过ide直接执行?
A:这里使用了argparse解析参数,所以只需要将这里参数解析部分删除,直接指定ip, port即可

四、代码和附件

  1. 解析参数 --ip(必传)和 --port(默认 29999)
  2. DashboardClientInterface() 构造接口对象
  3. connect(ip, port) 连 Dashboard
  4. version() 读控制器版本
  5. setSpeedScaling(30) 设速度倍率为 30%
  6. speedScaling() 回读确认当前速度倍率
  7. robotMode() 查机器人模式
  8. safetyMode() 查安全模式
  9. popup("-s", "Hello from Python SDK!") 示教器弹窗
  10. powerOn() 上电 → brakeRelease() 释放抱闸 → powerOff() 下电
  11. disconnect() 断开
#!/usr/bin/env python3

"""
Example script for using the elite_cs_sdk DashboardClientInterface.

中文说明:
这个示例演示如何连接机器人 Dashboard 服务,
并依次读取版本、设置速度倍率、查询模式、弹窗以及上下电控制。

Usage:
 python example_dashboard_client.py --ip 192.168.0.58
"""

import argparse
import sys
import elite_cs_sdk as cs

def main():
    parser = argparse.ArgumentParser(
        description="Connect to a robot's dashboard server and perform basic operations."
    )
    parser.add_argument(
        "--ip",
        required=True,
        help="IP address of the robot's dashboard server"
    )
    parser.add_argument(
        "--port",
        type=int,
        default=29999,
        help="Port number of the dashboard server (default: 29999)"
    )
    args = parser.parse_args()

    ip, port = args.ip, args.port
    # Dashboard 接口主要用于机器人状态管理和系统级控制。
    dashboard = cs.DashboardClientInterface()

    print(f"[INFO] Connecting to dashboard at {ip}:{port}...")
    dashboard.connect(ip, port)
    # 读取控制器版本信息。
    version = dashboard.version()
    print(f"[INFO] Dashboard version: {version}")

    new_scaling = 30 # percent
    print(f"[INFO] Setting speed scaling to {new_scaling}%...")
    # 设置全局速度倍率,单位为百分比。
    dashboard.setSpeedScaling(new_scaling)

    current_scaling = dashboard.speedScaling()
    print(f"[INFO] Current speed scaling: {current_scaling}%")

    mode = dashboard.robotMode()
    safety = dashboard.safetyMode()
    print(f"[INFO] Robot mode: {mode}")
    print(f"[INFO] Safety mode: {safety}")

    print("[INFO] Displaying popup message on dashboard...")
    # 在示教器界面弹出提示信息。
    dashboard.popup("-s", "Hello from Python SDK!")

    print("[INFO] Powering on the robot...")
    # 打开机器人电源
    dashboard.powerOn()

    print("[INFO] Releasing robot brakes...")
    # 释放机器人抱闸
    dashboard.brakeRelease()

    print("[INFO] Powering off the robot...")
    # 关闭机器人电源
    dashboard.powerOff()

    print("[INFO] Disconnecting from dashboard...")
    # 断开dashboard连接
    dashboard.disconnect()

if __name__ == "__main__":
    try:
      main()
    except Exception as e:
      print(f"[ERROR] {e}", file=sys.stderr)
      sys.exit(1)