02-14-2023,下午04:36
您好,我在Robodk中通过接口(不是编码)为Ur16e Robot开发了一个程序。在真正的机器人上,它运行得很完美。为了使一个人机界面,我在java(SpringBoot)开发了一个web应用程序,其中robodk我已经生成的代码右键单击>>生成代码选项。
但这不是工作,我只是想运行示例代码,而不是整个代码从。RDK站. .
Java代码:
包com.HCL.HclProgram.Controller;
进口java.io.BufferedReader;
进口java.io.IOException;
进口java.io.InputStreamReader;
进口org.springframework.web.bind.annotation.ResponseBody;
进口org.springframework.stereotype.Controller;
进口org.springframework.ui.Model;
进口org.springframework.web.bind.annotation.GetMapping;
进口org.springframework.web.bind.annotation.RequestMapping;
/ /导入子流程
@ controller
@RequestMapping(" /机器人”)
公共类RobotController {
@GetMapping / Pick_Approach ")
/ / @RequestMapping (" / Pick_Approach”)
@ResponseBody
runRobotProgram() {
StringBuilder输出= new StringBuilder();
尝试{
ProcessBuilder ProcessBuilder = new ProcessBuilder("python", "F:/HCLProgram/ HCLProgram/ src/testing.py");
processBuilder.redirectErrorStream(真正的);
Process Process = processBuilder.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
字符串行;
while ((line = reader.readLine()) != null) {
/ / System.out.println(线);
output.append(线).append(“\ n”);
}
int exitCode = process.waitFor();
输出。append("退出码:" + exitCode).append("\n");
} catch (IOException | InterruptedException e) {
输出。append("Error: " + e.getMessage())).append("\n");
}
返回output.toString ();
}
/* try {
Process Process = Runtime.getRuntime()。exec(“python F: / HCLProgram / HCLProgram / src / test.py”);
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
字符串行;
while ((line = in.readLine()) != null) {
System.out.println(线);
}
in.close ();
process.waitFor ();
} catch (IOException | InterruptedException e) {
e.printStackTrace ();
}
返回“选择”;
} * /
}
python代码:
test.py
从robodk.robolink进口*
从robodk进口robolink,robomath
进口子流程
#连接到RoboDK
RDK=robolink.Robolink()
defApproaching_Pick():
Robot_Home_Pos()
Replace_Objects()
Pick_Approach ()
defRobot_Home_Pos():
ref_frame= p [0.000000,0.000000,0.000000,0.000000,0.000000,0.000000]
set_tcp (p (0.000000,0.000000,0.120000,0.000000,0.000000,0.000000])
movej ([0.000000,1.570796,1.570796,0.000000,1.570796,0.000000), accel_radss speed_rads,0,0)
defReplace_Objects():
#替换对象
#子程序选择方法
defPick_Approach():
movej ([0.000000,1.570796,1.570796,0.000000,1.570796,0.000000), accel_radss speed_rads,0,0)#结束跟踪
Rail_Pos_1()
movel ([0.000000,1.570796,1.570796,1.570796,1.570796,0.000000), accel_mss speed_ms,0,0)
movel ([-1.570796,1.570796,1.570796,1.570796,1.570796,0.042164), accel_mss speed_ms,0,0)
movel ([-3.141593,1.570622,1.570796,1.570796,1.570796,0.000000), accel_mss speed_ms,0,0)#结束跟踪
Rail_Pos_0()
Open_Gripper()
#子程序Rail_Pos_1
defRail_Pos_1():
弹出(“移动轴到:这个柱子只支持6个关节”,“消息”,假,假,阻塞=假)
#子程序Rail_Pos_0
defRail_Pos_0():
弹出(“移动轴到:这个柱子只支持6个关节”,“消息”,假,假,阻塞=假)
# Open_Gripper子程序
defOpen_Gripper():
弹出(“移动轴到:这个柱子只支持6个关节”,“消息”,假,假,阻塞=假)
Approaching_Pick()
但这不是工作,我只是想运行示例代码,而不是整个代码从。RDK站. .
Java代码:
包com.HCL.HclProgram.Controller;
进口java.io.BufferedReader;
进口java.io.IOException;
进口java.io.InputStreamReader;
进口org.springframework.web.bind.annotation.ResponseBody;
进口org.springframework.stereotype.Controller;
进口org.springframework.ui.Model;
进口org.springframework.web.bind.annotation.GetMapping;
进口org.springframework.web.bind.annotation.RequestMapping;
/ /导入子流程
@ controller
@RequestMapping(" /机器人”)
公共类RobotController {
@GetMapping / Pick_Approach ")
/ / @RequestMapping (" / Pick_Approach”)
@ResponseBody
runRobotProgram() {
StringBuilder输出= new StringBuilder();
尝试{
ProcessBuilder ProcessBuilder = new ProcessBuilder("python", "F:/HCLProgram/ HCLProgram/ src/testing.py");
processBuilder.redirectErrorStream(真正的);
Process Process = processBuilder.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
字符串行;
while ((line = reader.readLine()) != null) {
/ / System.out.println(线);
output.append(线).append(“\ n”);
}
int exitCode = process.waitFor();
输出。append("退出码:" + exitCode).append("\n");
} catch (IOException | InterruptedException e) {
输出。append("Error: " + e.getMessage())).append("\n");
}
返回output.toString ();
}
/* try {
Process Process = Runtime.getRuntime()。exec(“python F: / HCLProgram / HCLProgram / src / test.py”);
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
字符串行;
while ((line = in.readLine()) != null) {
System.out.println(线);
}
in.close ();
process.waitFor ();
} catch (IOException | InterruptedException e) {
e.printStackTrace ();
}
返回“选择”;
} * /
}
python代码:
test.py
从robodk.robolink进口*
从robodk进口robolink,robomath
进口子流程
#连接到RoboDK
RDK=robolink.Robolink()
defApproaching_Pick():
Robot_Home_Pos()
Replace_Objects()
Pick_Approach ()
defRobot_Home_Pos():
ref_frame= p [0.000000,0.000000,0.000000,0.000000,0.000000,0.000000]
set_tcp (p (0.000000,0.000000,0.120000,0.000000,0.000000,0.000000])
movej ([0.000000,1.570796,1.570796,0.000000,1.570796,0.000000), accel_radss speed_rads,0,0)
defReplace_Objects():
#替换对象
#子程序选择方法
defPick_Approach():
movej ([0.000000,1.570796,1.570796,0.000000,1.570796,0.000000), accel_radss speed_rads,0,0)#结束跟踪
Rail_Pos_1()
movel ([0.000000,1.570796,1.570796,1.570796,1.570796,0.000000), accel_mss speed_ms,0,0)
movel ([-1.570796,1.570796,1.570796,1.570796,1.570796,0.042164), accel_mss speed_ms,0,0)
movel ([-3.141593,1.570622,1.570796,1.570796,1.570796,0.000000), accel_mss speed_ms,0,0)#结束跟踪
Rail_Pos_0()
Open_Gripper()
#子程序Rail_Pos_1
defRail_Pos_1():
弹出(“移动轴到:这个柱子只支持6个关节”,“消息”,假,假,阻塞=假)
#子程序Rail_Pos_0
defRail_Pos_0():
弹出(“移动轴到:这个柱子只支持6个关节”,“消息”,假,假,阻塞=假)
# Open_Gripper子程序
defOpen_Gripper():
弹出(“移动轴到:这个柱子只支持6个关节”,“消息”,假,假,阻塞=假)
Approaching_Pick()