线程评级:
Python代码无法工作
# 1
您好,我在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

robodkrobolink进口
robodk进口robolinkrobomath
进口子流程

#连接到RoboDK
RDKrobolinkRobolink()


defApproaching_Pick():
Robot_Home_Pos()
Replace_Objects()
Pick_Approach ()


defRobot_Home_Pos():
ref_frame= p [0.0000000.0000000.0000000.0000000.0000000.000000
set_tcp (p (0.0000000.0000000.1200000.0000000.0000000.000000])
movej ([0.000000,1.570796,1.5707960.0000001.5707960.000000), accel_radss speed_rads,00


defReplace_Objects():
#替换对象

#子程序选择方法
defPick_Approach():
movej ([0.000000,1.570796,1.5707960.0000001.5707960.000000), accel_radss speed_rads,00#结束跟踪
Rail_Pos_1()
movel ([0.000000,1.570796,1.5707961.5707961.570796,0.000000), accel_mss speed_ms,00
movel ([-1.570796,1.570796,1.5707961.5707961.5707960.042164), accel_mss speed_ms,00
movel ([-3.141593,1.570622,1.5707961.5707961.570796,0.000000), accel_mss speed_ms,00#结束跟踪
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 1 _meter-station_with_objects_only.rdk(大小:6.68 MB /下载:52022世界杯国家队名单)
我已经找到了一种方法。事实上,在我用错误的方式做之前…当我已经在Robodk中创建了一个机器人程序时,为什么我必须再次调用它呢?我的错,我是从接口生成python代码并调用它,这是错误的。一旦,我们已经在robodk接口中创建了一个代码,然后我们只需要在python代码中调用该程序的名称。就是这样。




浏览此线程的用户:
1客人(年代)