draw_square
Define a square by specifying the starting point, side length, and orientation on the base plane using the MCP-compatible nUR MCP Server. Suitable for precise robotic control tasks.
Instructions
给定起点位置和边长,在水平或竖直方向画一个正方形 origin:画正方形时TCP的起点位置 border:边长(米) coordinate:圆所在的平面。z:圆形所在的平面与基座所在平面垂直,其它:圆形所在的平面与基座所在平面平行。默认值:z。
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| border | Yes | ||
| coordinate | No | z | |
| ip | Yes | ||
| origin | Yes |
Implementation Reference
- The handler function for the 'draw_square' tool, decorated with @mcp.tool() for automatic registration in FastMCP. It generates waypoints for a square based on origin, border length, and coordinate plane (z or other), constructs a UR script with movel commands to draw the square, and sends it to the robot via RealTimeClient.SendProgram.@mcp.tool() def draw_square(ip: str, origin: dict, border: float, coordinate="z"): """给定起点位置和边长,在水平或竖直方向画一个正方形 origin:画正方形时TCP的起点位置 border:边长(米) coordinate:圆所在的平面。z:圆形所在的平面与基座所在平面垂直,其它:圆形所在的平面与基座所在平面平行。默认值:z。 """ try: if '连接失败' in link_check(ip): return return_msg(f"与机器人的连接已断开。") wp_1 = [origin[0], origin[1], origin[2], origin[3], origin[4], origin[5]] wp_2 = [origin[0], origin[1], origin[2], origin[3], origin[4], origin[5]] wp_3 = [origin[0], origin[1], origin[2], origin[3], origin[4], origin[5]] if coordinate.lower() == "z": wp_1[1] = wp_1[1] + border wp_2[1] = wp_2[1] + border wp_2[3] = wp_2[3] - border wp_3[3] = wp_3[3] - border else: wp_1[1] = wp_1[1] + border wp_2[1] = wp_2[1] + border wp_2[0] = wp_2[0] + border wp_3[0] = wp_3[0] + border cmd = (f"movel(p{str(origin)}, a=1, v=0.25)\nmovel(p{str(wp_1)}, a=1, v=0.25)\n" f"movel(p{str(wp_2)}, a=1, v=0.25)\nmovel(p{str(wp_3)}, a=1, v=0.25)\n" f"movel(p{str(origin)}, a=1, v=0.25)") robot_list[ip].robotConnector.RealTimeClient.SendProgram(cmd) return return_msg(f"命令已发送:{cmd}") except Exception as e: logger.error(f"命令发送失败: {str(e)}") return return_msg(f"命令发送失败: {str(e)}")