draw_circle
Command a Universal Robot to draw a circle by specifying its center point and radius, with options for horizontal or vertical orientation relative to the base.
Instructions
命令指定IP的机器人,给定圆心位置和半径,在水平或竖直方向画一个圆 center:圆心的TCP位置 r:半径(米) coordinate:圆所在的平面。z:圆形所在的平面与基座所在平面垂直,其它:圆形所在的平面与基座所在平面平行。默认值:z。
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | ||
| center | Yes | ||
| r | Yes | ||
| coordinate | No | z |
Implementation Reference
- The handler function for the 'draw_circle' MCP tool. It calculates waypoints for a circle based on center, radius, and coordinate plane, generates a URScript program using movep and movec, and sends it to the specified robot.@mcp.tool() def draw_circle(ip: str, center: list, r: float, coordinate="z"): """命令指定IP的机器人,给定圆心位置和半径,在水平或竖直方向画一个圆 center:圆心的TCP位置 r:半径(米) coordinate:圆所在的平面。z:圆形所在的平面与基座所在平面垂直,其它:圆形所在的平面与基座所在平面平行。默认值:z。""" try: if '连接失败' in link_check(ip): return return_msg(f"与机器人的连接已断开。") wp_1 = [center[0], center[1], center[2], center[3], center[4], center[5]] wp_2 = [center[0], center[1], center[2], center[3], center[4], center[5]] wp_3 = [center[0], center[1], center[2], center[3], center[4], center[5]] wp_4 = [center[0], center[1], center[2], center[3], center[4], center[5]] cmd = '' if coordinate.lower() == "z": wp_1[2] = wp_1[2] + r wp_2[1] = wp_2[1] + r wp_3[2] = wp_3[2] - r wp_4[1] = wp_4[1] - r else: wp_1[0] = wp_1[0] - r wp_2[1] = wp_2[1] + r wp_3[0] = wp_3[0] + r wp_4[1] = wp_4[1] - r cmd = ( f"def my_program():\n" f" movep(p{str(wp_1)}, a=1, v=0.25, r=0.025)\n" f" movec(p{str(wp_2)}, p{str(wp_3)}, a=1, v=0.25, r=0.025, mode=0)\n" f" movec(p{str(wp_4)}, p{str(wp_1)}, a=1, v=0.25, r=0.025, mode=0)\nend\nmy_program()") logger.info(f"draw_circle 发送脚本:{cmd}") robot_list[ip].robotConnector.RealTimeClient.SendProgram(cmd) time.sleep(1) return return_msg(f"命令已发送:{cmd}") except Exception as e: logger.error(f"命令发送失败: {str(e)}") return return_msg(f"命令发送失败: {str(e)}")
- src/nonead_universal_robots_mcp/server.py:685-685 (registration)The @mcp.tool() decorator registers the draw_circle function as an MCP tool.@mcp.tool()
- The docstring provides the input schema description for parameters ip, center, r, and coordinate."""命令指定IP的机器人,给定圆心位置和半径,在水平或竖直方向画一个圆 center:圆心的TCP位置 r:半径(米) coordinate:圆所在的平面。z:圆形所在的平面与基座所在平面垂直,其它:圆形所在的平面与基座所在平面平行。默认值:z。"""