Commit 5264f3af authored by 龙肖灵's avatar 龙肖灵
Browse files

初步完成的规划调试以及场景零点验证更新功能。

parent 6a83aaad
No related merge requests found
Showing with 25296 additions and 90 deletions
+25296 -90
# Playground
## Getting started
To make it easy for you to get started with GitLab, here's a list of recommended next steps.
Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
## Add your files
- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command:
```
cd existing_repo
git remote add origin http://gitlab.roboticplus.com:2022/planning/project/playground.git
git branch -M master
git push -uf origin master
```
## Integrate with your tools
- [ ] [Set up project integrations](http://gitlab.roboticplus.com:2022/planning/project/playground/-/settings/integrations)
## Collaborate with your team
- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)
- [ ] [Automatically merge when pipeline succeeds](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html)
## Test and Deploy
Use the built-in continuous integration in GitLab.
- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html)
- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing(SAST)](https://docs.gitlab.com/ee/user/application_security/sast/)
- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)
- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)
- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)
***
# Editing this README
When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thank you to [makeareadme.com](https://www.makeareadme.com/) for this template.
## Suggestions for a good README
Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.
## Name
Choose a self-explaining name for your project.
## Description
Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.
## Badges
On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
## Visuals
Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.
## Installation
Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
## Usage
Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
## Support
Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
## Roadmap
If you have ideas for releases in the future, it is a good idea to list them in the README.
## Contributing
State if you are open to contributions and what your requirements are for accepting them.
For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.
You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.
## Authors and acknowledgment
Show your appreciation to those who have contributed to the project.
## License
For open source projects, say how it is licensed.
## Project status
If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.
规划调试软件。python开发,后续可以嵌入到任何
\ No newline at end of file
import logging
import sys
from logging.handlers import RotatingFileHandler
def setup_logging(log_file="app.log", show_debug_msg=False, print_console=True):
handles = [RotatingFileHandler(log_file, maxBytes=10 * 1024 * 1024, backupCount=10, encoding="utf-8")]
if print_console:
handles.append(logging.StreamHandler(sys.stdout))
logging.basicConfig(level=logging.DEBUG if show_debug_msg else logging.INFO, # 设置日志级别
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=handles)
"""Robot URDF visualizer
Requires yourdfpy and robot_descriptions. Any URDF supported by yourdfpy should work.
- https://github.com/robot-descriptions/robot_descriptions.py
- https://github.com/clemense/yourdfpy
The :class:`viser.extras.ViserUrdf` is a lightweight interface between yourdfpy
and viser. It can also take a path to a local URDF file as input.
"""
from __future__ import annotations
import json
import logging
import math
import pathlib
import subprocess
import tempfile
import time
import urllib.parse
from functools import partial
from typing import Literal, Optional
import os
import io
import numpy as np
import uvicorn
import yourdfpy
import viser
import requests
from fastapi import FastAPI, File, UploadFile
from fastapi.responses import FileResponse, PlainTextResponse
from viser.extras import ViserUrdf
from . import setup_logging
setup_logging("punch.log", print_console=True)
logger = logging.getLogger(__name__)
app = FastAPI()
# 下载文件
@app.get("/resources/{filename}")
async def download_file(filename: str):
file_path = f"./resources/{filename}"
with open(file_path, "r") as file:
content = file.read()
return PlainTextResponse(content)
def make_resource_dir(suffix):
os.makedirs("resources", exist_ok=True)
_, temp_file = tempfile.mkstemp(suffix=suffix)
return f"resources/{os.path.basename(temp_file)}"
def find_all_keys(d, target_key):
if isinstance(d, dict):
for key, value in d.items():
if key == target_key:
yield value
elif isinstance(value, (dict, list, tuple)):
yield from find_all_keys(value, target_key)
elif isinstance(d, (list, tuple)):
for item in d:
yield from find_all_keys(item, target_key)
class OperatorModule:
def __init__(self, sever: viser.ViserServer):
self.upload_param_btn: Optional[viser.GuiUploadButtonHandle] = None
self.upload_urdf_btn: Optional[viser.GuiUploadButtonHandle] = None
self.server: viser.ViserServer = sever
self.init_viser_module()
def init_viser_module(self):
self.upload_urdf_btn = self.server.gui.add_upload_button("上传urdf", color="blue")
self.upload_param_btn = self.server.gui.add_upload_button("上传规划参数", color="blue")
def download_file(fname):
try:
""" 下载 HTTP 文件并返回本地路径 """
response = requests.get(fname, stream=True)
if response.status_code != 200:
raise ValueError(f"无法下载文件: {fname}, 状态码: {response.status_code}")
# 获取文件名(从 URL 提取)
local_filename = os.path.basename(fname)
# 创建临时目录存储文件
temp_dir = tempfile.mkdtemp()
file_path = os.path.join(temp_dir, local_filename)
# 写入文件
with open(file_path, 'wb') as f:
for chunk in response.iter_content(chunk_size=8192):
f.write(chunk)
return file_path
except Exception as e:
path = urllib.parse.urlparse(fname).path
return path
class PlanModule:
def __init__(self, server: viser.ViserServer, urdf_path):
self.viser_urdf: Optional[ViserUrdf] = None
self.server = server
self.urdf: Optional[yourdfpy.URDF] = None
self.frame: Optional[viser.FrameHandle] = None
self.urdf_path = urdf_path
self.init_viser_module()
def init_viser_module(self):
self.urdf = yourdfpy.URDF.load(self.urdf_path, filename_handler=download_file)
self.frame = self.server.scene.add_frame(f"/world/{self.urdf.robot.name}", show_axes=False, visible=True)
self.viser_urdf = ViserUrdf(self.server,
urdf_or_path=self.urdf,
root_node_name=f"/world/{self.urdf.robot.name}"
)
self.viser_urdf.update_cfg(np.array([0.0 for _ in self.urdf.actuated_joints]))
def add_frame(self, frame_id: str, point):
frames = self.viser_urdf._joint_frames
parent_frame = [f"{frame.name}/frame" for frame in frames if frame.name.endswith(frame_id)][-1]
self.server.scene.add_frame(parent_frame, position=np.array(point) * 0.001, axes_length=0.1, axes_radius=0.01)
def add_box(self, frame_id: str, dimensions):
frames = self.viser_urdf._joint_frames
parent_frame = [f"{frame.name}" for frame in frames if frame.name.endswith(frame_id)][-1]
box = np.array(dimensions) * 0.001
position = box * 0.5
position[1] *= -1
self.server.scene.add_box(f"{parent_frame}/box", dimensions=box, position=position, color=(0, 255, 0))
def set_ext(self, ext_value):
joints = self.viser_urdf._urdf.actuated_joints
value = ext_value * 0.001
self.viser_urdf.update_cfg(np.array([value if joint.parent.endswith("zero") else 0.0 for joint in joints]))
def get_transform(self, frame_to, frame_from):
transform = self.viser_urdf._urdf.get_transform(frame_to, frame_from)
return transform
def remove(self):
self.viser_urdf.remove()
class PlanParamModule:
def __init__(self, server: viser.ViserServer, plan_param: dict):
self.ext_range: list[viser.GuiVector3Handle] = []
self.plan_param = plan_param
self.plan_btn: Optional[viser.GuiButtonHandle] = None
self.rotation: Optional[viser.GuiVector3Handle] = None
self.server = server
self.folder: Optional[viser.GuiFolderHandle] = None
self.init_viser_module()
def add_ext_joint_item(self, index: int):
OPTIONS = ["X", "Y", "Z"]
ext_joint_param = self.plan_param["#base"]["ext_joint_param"]["external_range"][index]
ext_range = (self.server.gui.add_vector3(f"{OPTIONS[index]}范围",
initial_value=np.array([ext_joint_param["lower"], ext_joint_param["step"], ext_joint_param["upper"]]),
min=np.array([-10, 0, -10]),
max=np.array([10, 10, 10]),
step=0.2,
))
ext_range.precision = 3
@ext_range.on_update
def _(event: viser.GuiEvent):
value = event.target.value
self.plan_param["#base"]["ext_joint_param"]["external_range"][index]["lower"] = value[0]
self.plan_param["#base"]["ext_joint_param"]["external_range"][index]["step"] = value[1]
self.plan_param["#base"]["ext_joint_param"]["external_range"][index]["upper"] = value[2]
self.ext_range.append(ext_range)
def init_viser_module(self):
with self.server.gui.add_folder(self.plan_param["#base"]["id"][26:]) as self.folder:
rotation_z = self.plan_param["#base"]["constraints"][0]["rotation"]["z_bound"]
self.rotation = self.server.gui.add_vector3("自由度",
initial_value=np.degrees(np.array([rotation_z["lower"], rotation_z["step"], rotation_z["upper"]])),
min=np.degrees(np.array([-math.pi, 0, -math.pi])),
max=np.degrees(np.array([math.pi, 2 * math.pi, math.pi])),
step=5.0,
)
self.add_ext_joint_item(0)
self.add_ext_joint_item(1)
self.add_ext_joint_item(2)
self.plan_btn = self.server.gui.add_button("重新规划")
@self.rotation.on_update
def _(_):
value = np.radians(self.rotation.value)
self.plan_param["#base"]["constraints"][0]["rotation"]["z_bound"]["lower"] = value[0]
self.plan_param["#base"]["constraints"][0]["rotation"]["z_bound"]["step"] = value[1]
self.plan_param["#base"]["constraints"][0]["rotation"]["z_bound"]["upper"] = value[2]
self.folder.expand_by_default = False
def remove(self):
self.server.scene.remove_by_name(self.folder.name)
self.server.gui.reset()
class SimulationModule:
def __init__(self, server: viser.ViserServer = None, sim_robot: ViserUrdf = None):
self.timestep: Optional[viser.GuiSliderHandle[int]] = None
self.play: Optional[viser.GuiButtonHandle] = None
self.prev_frame: Optional[viser.GuiButtonHandle] = None
self.next_frame: Optional[viser.GuiButtonHandle] = None
self.trajectory: Optional[dict] = None
self.sim_robot: ViserUrdf = sim_robot
self.tool: Optional[viser.MeshHandle] = None
self.workpiece: Optional[viser.MeshHandle] = None
self.server = server
@property
def server(self) -> viser.ViserServer:
return self._server
@server.setter
def server(self, server: viser.ViserServer):
if server is not None:
self._server = server
self.init_viser_module()
def init_viser_module(self):
with self.server.gui.add_folder("Simulation") as self.folder:
self.timestep = self.server.gui.add_slider(
"Timestep",
min=0,
max=1,
step=1,
initial_value=0,
disabled=False,
)
self.next_frame = self.server.gui.add_button("Next Frame")
self.prev_frame = self.server.gui.add_button("Prev Frame")
self.play = self.server.gui.add_button("Play")
@self.next_frame.on_click
def _(_):
self.timestep.value = min(self.timestep.value + 1, int(self.timestep.max))
@self.prev_frame.on_click
def _(_):
self.timestep.value = max(self.timestep.value - 1, 0)
@self.play.on_click
def _(_):
self.replay_trajectory()
@self.timestep.on_update
def _(_):
self.update_robot(int(self.timestep.value))
self.folder.expand_by_default = False
def update_robot(self, index):
joint_names: list[str] = self.trajectory["joint_names"]
trajectory: list[float] = self.trajectory["trajectory"][index]["position"]
self.sim_robot.update_cfg(
np.array([trajectory[joint_names.index(joint.name)] for joint in self.sim_robot._urdf.actuated_joints]))
def replay_trajectory(self):
for i in range(len(self.trajectory["trajectory"])):
self.update_robot(i)
time.sleep(0.1)
def set_trajectory(self, trajectory: dict):
self.trajectory = trajectory
self.timestep.max = len(self.trajectory["trajectory"]) - 1
def load_param(self, plan_param):
"""
通过规划参数加载起始状态,以及工件工具头。
:param plan_param:
:return:
"""
frames = self.sim_robot._joint_frames
tool = plan_param["#base"]["tool_mesh"]
tool_shape = tool["shape"]
workpiece = plan_param["#base"]["workpiece_mesh"]
wp_mesh = workpiece["shape"]
tool_frame = [f"{frame.name}/{tool['name']}" for frame in frames if frame.name.endswith(tool['frame_id'])][-1]
wp_frame = \
[f"{frame.name}/{workpiece['name']}" for frame in frames if frame.name.endswith(workpiece['frame_id'])][-1]
self.tool = self.server.scene.add_mesh_simple(tool_frame, np.array(tool_shape["vertices_m"]).T,
np.array(tool_shape["face_m"]).T)
self.workpiece = self.server.scene.add_mesh_simple(wp_frame, np.array(wp_mesh["vertices_m"]).T,
np.array(wp_mesh["face_m"]).T)
class Punch:
def __init__(self):
self.server = viser.ViserServer(label="Punch一拳")
self.operator = OperatorModule(self.server)
self.simulation = SimulationModule()
self.plan_module: Optional[PlanModule] = None
self.plan_param_module: Optional[PlanParamModule] = None
self.init_viser()
def init_viser(self):
self.server.scene.add_grid("/world")
self.server.gui.configure_theme(control_width="large")
@self.operator.upload_urdf_btn.on_upload
def _(event):
"""Callback for when a file is uploaded."""
file = self.operator.upload_urdf_btn.value
file_path = make_resource_dir(".urdf")
open(file_path, "wb").write(file.content)
self.plan_module = PlanModule(event.client, file_path)
self.simulation.sim_robot = self.plan_module.viser_urdf
self.simulation.server = self.plan_module.server
@self.operator.upload_param_btn.on_upload
def _(event):
"""Callback for when a file is uploaded."""
file = self.operator.upload_param_btn.value
file_path = make_resource_dir(".json")
self.plan_param_module = PlanParamModule(event.client, json.loads(file.content))
self.simulation.load_param(self.plan_param_module.plan_param)
@self.plan_param_module.plan_btn.on_click
def _(_):
json.dump(self.plan_param_module.plan_param, open(file_path, "w"))
res = requests.get(
f"http://127.0.0.1:12123/plan?urdf={self.plan_module.urdf_path}&param={file_path}")
self.simulation.set_trajectory(res.json())
def run(self):
while True:
time.sleep(0.1)
def main() -> None:
process = subprocess.Popen(
["uvicorn", "run:app", "--host", "127.0.0.1", "--port", "8000", "--reload"],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
)
punch = Punch()
punch.run()
if __name__ == "__main__":
main()
from datetime import datetime
import io
import json
import os
import shutil
import time
import zipfile
from typing import Optional
import numpy as np
import urdf_parser_py.urdf
import viser
from punch.plan_client import PlanModule
from robim_data import Workshop
from .urdf import URDFRobot
def unzip_pes(pes_file: str, extract_path: str):
os.makedirs(extract_path, exist_ok=True)
with zipfile.ZipFile(pes_file, 'r') as zip_ref:
zip_ref.extractall(extract_path)
class PesScene:
def __init__(self, resource_dir: str):
self.workshop = Workshop()
self.resource_dir = resource_dir
self.scene = json.load(open(f"{resource_dir}/scene.json"))
self.name = self.scene["name"]
# 读取二进制文件
with open(f"{resource_dir}/workshop.proto", "rb") as f:
data = f.read()
self.workshop.ParseFromString(data)
self._urdf = None
self.urdf = self.workshop.urdf
self.urdf_robot: URDFRobot = URDFRobot.from_xml_string(self.urdf)
self.attached = [link.name for link in self.urdf_robot.links if link.name.endswith("attached")][-1]
self.robot_base = [link.name for link in self.urdf_robot.links if link.name.endswith("base")][-1]
self.update_name()
self.urdf_robot.name = self.name
self.scene["name"] = self.name
def update_name(self):
self.name = self.scene["name"]
# 找到最后一个下划线的位置
pos = self.name.rfind("_")
date_str = datetime.now().strftime("%y%m%d")
# 如果找到下划线,则进行替换
if pos != -1:
self.name = self.name[:pos + 1] + date_str
else:
self.name = self.name + "_" + date_str # 没有下划线则不做修改
@property
def urdf(self):
return self._urdf
@urdf.setter
def urdf(self, value):
self._urdf = value
self.workshop.urdf = value
self.scene['rpcpUrdf'] = value
def save(self):
open(f"{self.resource_dir}/scene.json", "w").write(json.dumps(self.scene))
open(f"{self.resource_dir}/workshop.proto", "wb").write(self.workshop.SerializeToString())
def zip(self):
pes_file = f"{os.path.dirname(self.resource_dir)}/{self.name}.pes"
with zipfile.ZipFile(pes_file, "w", zipfile.ZIP_DEFLATED,
allowZip64=True) as zip_ref:
for root, dirs, files in os.walk(self.resource_dir):
for file in files:
file_path = os.path.join(root, file)
arcname = os.path.relpath(file_path, self.resource_dir) # 相对路径
zip_ref.write(file_path, arcname)
return pes_file
class PointDataModule:
def __init__(self, server: viser.ViserServer):
self.server = server
self.folder: Optional[viser.GuiFolderHandle] = None
self.point_data: list[tuple[viser.GuiVector3Handle, viser.GuiNumberHandle]] = []
self.init_viser_module()
def init_viser_module(self):
with self.server.gui.add_folder("戳点数据") as self.folder:
self.folder.expand_by_default = True
self.add_point()
def add_point(self):
with self.folder:
self.point_data.append((
self.server.gui.add_vector3(f"机器人戳点{len(self.point_data)}",
initial_value=np.array([829.819, -561.124, 612.729]),
step=100),
self.server.gui.add_number(f"外部轴值{len(self.point_data)}", initial_value=-525.008, step=100.0),))
self.point_data[-1][0].precision = 3
self.point_data[-1][1].precision = 3
def remove_point(self):
if len(self.point_data) == 0:
return
point_data = self.point_data[-1]
point_data[0].visible = False
point_data[1].visible = False
self.point_data.pop()
class CalibrationResultModule:
def __init__(self, server: viser.ViserServer):
self.server = server
self.calc_btn: Optional[viser.GuiButtonHandle] = None
self.xyz: Optional[viser.GuiVector3Handle] = None
self.diff: Optional[viser.GuiVector3Handle] = None
self.apply_btns: Optional[viser.GuiButtonGroupHandle] = None
self.download: Optional[viser.GuiButtonHandle] = None
self.init_viser_module()
def init_viser_module(self):
with self.server.gui.add_folder("标定结果") as self.folder:
self.calc_btn = self.server.gui.add_button("计算")
self.xyz = self.server.gui.add_vector3("计算结果", initial_value=np.array([0, 0, 0]))
self.xyz.precision = 3
self.diff = self.server.gui.add_vector3("偏差", initial_value=np.array([0, 0, 0]))
self.diff.precision = 3
self.apply_btns = self.server.gui.add_button_group("应用", options=["X", "Y", "Z"])
self.download = self.server.gui.add_button("下载", disabled=True)
class OperatorModule:
def __init__(self, sever: viser.ViserServer):
self.add_remove: Optional[viser.GuiButtonGroupHandle] = None
self.workpiece_info: Optional[viser.GuiVector3Handle] = None
self.update_pes_btn: Optional[viser.GuiUploadButtonHandle] = None
self.server: viser.ViserServer = sever
self.init_viser_module()
def init_viser_module(self):
self.update_pes_btn = self.server.gui.add_upload_button("上传场景", color="blue")
self.workpiece_info = self.server.gui.add_vector3("工件尺寸", initial_value=np.array([1000, 200, 50]),
min=np.array([0, 0, 0]), max=np.array([1e10, 1e10, 1e10]), step=100, hint="工件尺寸")
self.workpiece_info.precision = 3
self.add_remove = self.server.gui.add_button_group("操作", ["+", "-"])
class PlanSceneUpdater:
def __init__(self):
self.server = viser.ViserServer(label="场景更新工具")
self.operator_module = OperatorModule(self.server)
self.scene_modules: dict[viser.ClientHandle, PesScene] = {}
self.plan_modules: dict[viser.ClientHandle, PlanModule] = {}
self.point_data_modules: dict[viser.ClientHandle, PointDataModule] = {}
self.result_modules: dict[viser.ClientHandle, CalibrationResultModule] = {}
self.initialize()
@self.server.on_client_connect
def _(client: viser.ClientHandle):
self.point_data_modules[client] = PointDataModule(client)
self.result_modules[client] = CalibrationResultModule(client)
@self.result_modules[client].calc_btn.on_click
def _(event: viser.GuiEvent):
self.process_scene(client=client, )
scene = self.scene_modules[client]
transform = self.plan_modules[client].get_transform(scene.robot_base, scene.attached)
point = self.point_data_modules[client].point_data[-1][0].value
workpiece_dimensions = np.array(self.operator_module.workpiece_info.value)
calc_point = transform[:3, :3] @ point + transform[:3, 3] * 1000
# 获取世界坐标系的变换
transform = self.plan_modules[client].get_transform(scene.attached, "base_link")
workpiece_dimensions[1] *= -1
self.result_modules[client].xyz.value = calc_point
diff = workpiece_dimensions - calc_point
diff = transform[:3, :3] @ diff
self.result_modules[client].diff.value = diff
@self.result_modules[client].apply_btns.on_click
def _(event: viser.GuiEvent):
scene = self.scene_modules[client]
parent_map = scene.urdf_robot.parent_map
need_to_update = parent_map[parent_map[parent_map[scene.attached][-1]][-1]][0]
need_to_update = scene.urdf_robot.joint_map[need_to_update]
btn = self.result_modules[client].apply_btns
index = btn.options.index(btn.value)
need_to_update.origin.position[index] -= self.result_modules[client].diff.value[index] * 0.001
scene.urdf = scene.urdf_robot.to_xml_string()
self.plan_modules[event.client].remove()
self.plan_modules[event.client] = PlanModule(event.client,
io.BytesIO(self.scene_modules[event.client].urdf.encode()))
self.process_scene(client=client)
self.result_modules[client].download.disabled = False
@self.result_modules[client].download.on_click
def _(event: viser.GuiEvent):
self.scene_modules[client].save()
file = self.scene_modules[client].zip()
client.send_file_download(f"{self.scene_modules[client].name}.pes", open(file, "rb").read())
def process_scene(self, client: viser.ClientHandle):
point = self.point_data_modules[client].point_data[-1][0].value
workpiece_dimensions = self.operator_module.workpiece_info.value
self.plan_modules[client].add_box(self.scene_modules[client].attached, workpiece_dimensions)
self.plan_modules[client].add_frame(self.scene_modules[client].robot_base, point)
self.plan_modules[client].set_ext(self.point_data_modules[client].point_data[-1][1].value)
def initialize(self):
self.server.scene.add_grid("/world")
self.server.gui.configure_theme(control_width="large")
@self.operator_module.update_pes_btn.on_upload
def _(event: viser.GuiEvent):
"""Callback for when a file is uploaded."""
file = self.operator_module.update_pes_btn.value
open(f"resources/{file.name}", "wb").write(file.content)
resource_dir = f"resources/{os.path.splitext(file.name)[0]}"
shutil.rmtree(resource_dir, ignore_errors=True)
unzip_pes(f"resources/{file.name}", resource_dir)
self.scene_modules[event.client] = PesScene(resource_dir)
self.plan_modules[event.client] = PlanModule(event.client,
io.BytesIO(self.scene_modules[event.client].urdf.encode()))
@self.operator_module.add_remove.on_click
def _(event: viser.GuiEvent):
if self.operator_module.add_remove.value == '+':
self.point_data_modules[event.client].add_point()
else:
self.point_data_modules[event.client].remove_point()
@staticmethod
def run():
while True:
time.sleep(0.1)
def main():
updater = PlanSceneUpdater()
updater.run()
from urdf_parser_py.urdf import Robot, name_attribute, Link, Joint, Material
import urdf_parser_py.xml_reflection as xmlr
xmlr.start_namespace('urdf')
class RobotType(xmlr.Object):
def __init__(self, name=None, value=None):
self.name = name
self.value = value
def check_valid(self):
pass
xmlr.reflect(RobotType, tag='robot_type', params=[
name_attribute,
xmlr.Attribute('value', str),
])
class URDFRobot(Robot):
def __init__(self, name=None, version="1.0"):
super(URDFRobot, self).__init__(name, version)
self.robot_types: list = []
xmlr.reflect(URDFRobot, tag='robot', params=[
xmlr.Attribute('name', str),
xmlr.Attribute('version', str, False),
xmlr.AggregateElement('link', Link),
xmlr.AggregateElement('joint', Joint),
xmlr.AggregateElement('gazebo', xmlr.RawType()),
xmlr.AggregateElement('material', Material),
xmlr.AggregateElement('robot_type', RobotType),
])
xmlr.end_namespace()
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: ArcWeldingCraft.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor.FileDescriptor(
name='ArcWeldingCraft.proto',
package='Robim.Data.ArcWeldingCraft',
syntax='proto3',
serialized_options=b'P\001\252\002\032Robim.Data.ArcWeldingCraft',
create_key=_descriptor._internal_create_key,
serialized_pb=b'\n\x15\x41rcWeldingCraft.proto\x12\x1aRobim.Data.ArcWeldingCraft\"\"\n\x07MatrixF\x12\x0c\n\x04\x63ols\x18\x01 \x01(\r\x12\t\n\x01m\x18\x02 \x03(\x02\"n\n\tAngleData\x12\x12\n\ndefaultVal\x18\x01 \x01(\x02\x12\x14\n\x0cminMaxThresh\x18\x02 \x03(\x02\x12\x14\n\x0cpriorityFlag\x18\x03 \x01(\x05\x12\x0e\n\x06weight\x18\x04 \x01(\x02\x12\x11\n\tuseThresh\x18\x05 \x01(\x08\"\x90\x01\n\nPtPosParam\x12\x0e\n\x06ptType\x18\x01 \x01(\r\x12\r\n\x05iLIdx\x18\x02 \x01(\r\x12\x13\n\x0breferPtFlag\x18\x03 \x01(\r\x12\x10\n\x08ptOffset\x18\x04 \x03(\x02\x12\x14\n\x0clenthTorefer\x18\x05 \x01(\x02\x12\x11\n\tfixAngles\x18\x06 \x03(\x02\x12\x13\n\x0buseFixedPos\x18\x07 \x01(\x08\"\x8f\x02\n\x0eWsWeldPosParam\x12\r\n\x05wsIdx\x18\x01 \x01(\r\x12;\n\x0c\x61\x64vanceAngle\x18\x02 \x01(\x0b\x32%.Robim.Data.ArcWeldingCraft.AngleData\x12\x38\n\tworkAngle\x18\x03 \x01(\x0b\x32%.Robim.Data.ArcWeldingCraft.AngleData\x12\x37\n\x08rotAngle\x18\x04 \x01(\x0b\x32%.Robim.Data.ArcWeldingCraft.AngleData\x12>\n\x0ewsWeldSovParam\x18\x05 \x03(\x0b\x32&.Robim.Data.ArcWeldingCraft.PtPosParam\"\xba\x01\n\x0cWeldPtPosRes\x12\x0e\n\x06ptType\x18\x01 \x01(\r\x12\r\n\x05iLIdx\x18\x02 \x01(\r\x12\x13\n\x0breferPtFlag\x18\x03 \x01(\r\x12\x10\n\x08ptOffset\x18\x04 \x03(\x02\x12\x14\n\x0clenthTorefer\x18\x05 \x01(\x02\x12\x11\n\tanglePose\x18\x06 \x03(\x02\x12;\n\x0etoolPosInModel\x18\x07 \x03(\x0b\x32#.Robim.Data.ArcWeldingCraft.MatrixF\"]\n\x0cWsWeldPosRes\x12\r\n\x05wsIdx\x18\x01 \x01(\r\x12>\n\x0cwsWeldSovRes\x18\x02 \x03(\x0b\x32(.Robim.Data.ArcWeldingCraft.WeldPtPosResB\x1fP\x01\xaa\x02\x1aRobim.Data.ArcWeldingCraftb\x06proto3'
)
_MATRIXF = _descriptor.Descriptor(
name='MatrixF',
full_name='Robim.Data.ArcWeldingCraft.MatrixF',
filename=None,
file=DESCRIPTOR,
containing_type=None,
create_key=_descriptor._internal_create_key,
fields=[
_descriptor.FieldDescriptor(
name='cols', full_name='Robim.Data.ArcWeldingCraft.MatrixF.cols', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='m', full_name='Robim.Data.ArcWeldingCraft.MatrixF.m', index=1,
number=2, type=2, cpp_type=6, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=53,
serialized_end=87,
)
_ANGLEDATA = _descriptor.Descriptor(
name='AngleData',
full_name='Robim.Data.ArcWeldingCraft.AngleData',
filename=None,
file=DESCRIPTOR,
containing_type=None,
create_key=_descriptor._internal_create_key,
fields=[
_descriptor.FieldDescriptor(
name='defaultVal', full_name='Robim.Data.ArcWeldingCraft.AngleData.defaultVal', index=0,
number=1, type=2, cpp_type=6, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='minMaxThresh', full_name='Robim.Data.ArcWeldingCraft.AngleData.minMaxThresh', index=1,
number=2, type=2, cpp_type=6, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='priorityFlag', full_name='Robim.Data.ArcWeldingCraft.AngleData.priorityFlag', index=2,
number=3, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='weight', full_name='Robim.Data.ArcWeldingCraft.AngleData.weight', index=3,
number=4, type=2, cpp_type=6, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='useThresh', full_name='Robim.Data.ArcWeldingCraft.AngleData.useThresh', index=4,
number=5, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=89,
serialized_end=199,
)
_PTPOSPARAM = _descriptor.Descriptor(
name='PtPosParam',
full_name='Robim.Data.ArcWeldingCraft.PtPosParam',
filename=None,
file=DESCRIPTOR,
containing_type=None,
create_key=_descriptor._internal_create_key,
fields=[
_descriptor.FieldDescriptor(
name='ptType', full_name='Robim.Data.ArcWeldingCraft.PtPosParam.ptType', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='iLIdx', full_name='Robim.Data.ArcWeldingCraft.PtPosParam.iLIdx', index=1,
number=2, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='referPtFlag', full_name='Robim.Data.ArcWeldingCraft.PtPosParam.referPtFlag', index=2,
number=3, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='ptOffset', full_name='Robim.Data.ArcWeldingCraft.PtPosParam.ptOffset', index=3,
number=4, type=2, cpp_type=6, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='lenthTorefer', full_name='Robim.Data.ArcWeldingCraft.PtPosParam.lenthTorefer', index=4,
number=5, type=2, cpp_type=6, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='fixAngles', full_name='Robim.Data.ArcWeldingCraft.PtPosParam.fixAngles', index=5,
number=6, type=2, cpp_type=6, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='useFixedPos', full_name='Robim.Data.ArcWeldingCraft.PtPosParam.useFixedPos', index=6,
number=7, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=202,
serialized_end=346,
)
_WSWELDPOSPARAM = _descriptor.Descriptor(
name='WsWeldPosParam',
full_name='Robim.Data.ArcWeldingCraft.WsWeldPosParam',
filename=None,
file=DESCRIPTOR,
containing_type=None,
create_key=_descriptor._internal_create_key,
fields=[
_descriptor.FieldDescriptor(
name='wsIdx', full_name='Robim.Data.ArcWeldingCraft.WsWeldPosParam.wsIdx', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='advanceAngle', full_name='Robim.Data.ArcWeldingCraft.WsWeldPosParam.advanceAngle', index=1,
number=2, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='workAngle', full_name='Robim.Data.ArcWeldingCraft.WsWeldPosParam.workAngle', index=2,
number=3, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='rotAngle', full_name='Robim.Data.ArcWeldingCraft.WsWeldPosParam.rotAngle', index=3,
number=4, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='wsWeldSovParam', full_name='Robim.Data.ArcWeldingCraft.WsWeldPosParam.wsWeldSovParam', index=4,
number=5, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=349,
serialized_end=620,
)
_WELDPTPOSRES = _descriptor.Descriptor(
name='WeldPtPosRes',
full_name='Robim.Data.ArcWeldingCraft.WeldPtPosRes',
filename=None,
file=DESCRIPTOR,
containing_type=None,
create_key=_descriptor._internal_create_key,
fields=[
_descriptor.FieldDescriptor(
name='ptType', full_name='Robim.Data.ArcWeldingCraft.WeldPtPosRes.ptType', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='iLIdx', full_name='Robim.Data.ArcWeldingCraft.WeldPtPosRes.iLIdx', index=1,
number=2, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='referPtFlag', full_name='Robim.Data.ArcWeldingCraft.WeldPtPosRes.referPtFlag', index=2,
number=3, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='ptOffset', full_name='Robim.Data.ArcWeldingCraft.WeldPtPosRes.ptOffset', index=3,
number=4, type=2, cpp_type=6, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='lenthTorefer', full_name='Robim.Data.ArcWeldingCraft.WeldPtPosRes.lenthTorefer', index=4,
number=5, type=2, cpp_type=6, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='anglePose', full_name='Robim.Data.ArcWeldingCraft.WeldPtPosRes.anglePose', index=5,
number=6, type=2, cpp_type=6, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='toolPosInModel', full_name='Robim.Data.ArcWeldingCraft.WeldPtPosRes.toolPosInModel', index=6,
number=7, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=623,
serialized_end=809,
)
_WSWELDPOSRES = _descriptor.Descriptor(
name='WsWeldPosRes',
full_name='Robim.Data.ArcWeldingCraft.WsWeldPosRes',
filename=None,
file=DESCRIPTOR,
containing_type=None,
create_key=_descriptor._internal_create_key,
fields=[
_descriptor.FieldDescriptor(
name='wsIdx', full_name='Robim.Data.ArcWeldingCraft.WsWeldPosRes.wsIdx', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='wsWeldSovRes', full_name='Robim.Data.ArcWeldingCraft.WsWeldPosRes.wsWeldSovRes', index=1,
number=2, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=811,
serialized_end=904,
)
_WSWELDPOSPARAM.fields_by_name['advanceAngle'].message_type = _ANGLEDATA
_WSWELDPOSPARAM.fields_by_name['workAngle'].message_type = _ANGLEDATA
_WSWELDPOSPARAM.fields_by_name['rotAngle'].message_type = _ANGLEDATA
_WSWELDPOSPARAM.fields_by_name['wsWeldSovParam'].message_type = _PTPOSPARAM
_WELDPTPOSRES.fields_by_name['toolPosInModel'].message_type = _MATRIXF
_WSWELDPOSRES.fields_by_name['wsWeldSovRes'].message_type = _WELDPTPOSRES
DESCRIPTOR.message_types_by_name['MatrixF'] = _MATRIXF
DESCRIPTOR.message_types_by_name['AngleData'] = _ANGLEDATA
DESCRIPTOR.message_types_by_name['PtPosParam'] = _PTPOSPARAM
DESCRIPTOR.message_types_by_name['WsWeldPosParam'] = _WSWELDPOSPARAM
DESCRIPTOR.message_types_by_name['WeldPtPosRes'] = _WELDPTPOSRES
DESCRIPTOR.message_types_by_name['WsWeldPosRes'] = _WSWELDPOSRES
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
MatrixF = _reflection.GeneratedProtocolMessageType('MatrixF', (_message.Message,), {
'DESCRIPTOR' : _MATRIXF,
'__module__' : 'ArcWeldingCraft_pb2'
# @@protoc_insertion_point(class_scope:Robim.Data.ArcWeldingCraft.MatrixF)
})
_sym_db.RegisterMessage(MatrixF)
AngleData = _reflection.GeneratedProtocolMessageType('AngleData', (_message.Message,), {
'DESCRIPTOR' : _ANGLEDATA,
'__module__' : 'ArcWeldingCraft_pb2'
# @@protoc_insertion_point(class_scope:Robim.Data.ArcWeldingCraft.AngleData)
})
_sym_db.RegisterMessage(AngleData)
PtPosParam = _reflection.GeneratedProtocolMessageType('PtPosParam', (_message.Message,), {
'DESCRIPTOR' : _PTPOSPARAM,
'__module__' : 'ArcWeldingCraft_pb2'
# @@protoc_insertion_point(class_scope:Robim.Data.ArcWeldingCraft.PtPosParam)
})
_sym_db.RegisterMessage(PtPosParam)
WsWeldPosParam = _reflection.GeneratedProtocolMessageType('WsWeldPosParam', (_message.Message,), {
'DESCRIPTOR' : _WSWELDPOSPARAM,
'__module__' : 'ArcWeldingCraft_pb2'
# @@protoc_insertion_point(class_scope:Robim.Data.ArcWeldingCraft.WsWeldPosParam)
})
_sym_db.RegisterMessage(WsWeldPosParam)
WeldPtPosRes = _reflection.GeneratedProtocolMessageType('WeldPtPosRes', (_message.Message,), {
'DESCRIPTOR' : _WELDPTPOSRES,
'__module__' : 'ArcWeldingCraft_pb2'
# @@protoc_insertion_point(class_scope:Robim.Data.ArcWeldingCraft.WeldPtPosRes)
})
_sym_db.RegisterMessage(WeldPtPosRes)
WsWeldPosRes = _reflection.GeneratedProtocolMessageType('WsWeldPosRes', (_message.Message,), {
'DESCRIPTOR' : _WSWELDPOSRES,
'__module__' : 'ArcWeldingCraft_pb2'
# @@protoc_insertion_point(class_scope:Robim.Data.ArcWeldingCraft.WsWeldPosRes)
})
_sym_db.RegisterMessage(WsWeldPosRes)
DESCRIPTOR._options = None
# @@protoc_insertion_point(module_scope)
This diff is collapsed.
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: Common.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
DESCRIPTOR = _descriptor.FileDescriptor(
name='Common.proto',
package='Robim.Data.Common',
syntax='proto3',
serialized_options=b'P\001\252\002\021Robim.Data.Common',
create_key=_descriptor._internal_create_key,
serialized_pb=b'\n\x0c\x43ommon.proto\x12\x11Robim.Data.Common\x1a\x19google/protobuf/any.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"(\n\tParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\tB\x16P\x01\xaa\x02\x11Robim.Data.Commonb\x06proto3'
,
dependencies=[google_dot_protobuf_dot_any__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,])
_PARAMETER = _descriptor.Descriptor(
name='Parameter',
full_name='Robim.Data.Common.Parameter',
filename=None,
file=DESCRIPTOR,
containing_type=None,
create_key=_descriptor._internal_create_key,
fields=[
_descriptor.FieldDescriptor(
name='name', full_name='Robim.Data.Common.Parameter.name', index=0,
number=1, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=b"".decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='value', full_name='Robim.Data.Common.Parameter.value', index=1,
number=2, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=b"".decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=95,
serialized_end=135,
)
DESCRIPTOR.message_types_by_name['Parameter'] = _PARAMETER
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
Parameter = _reflection.GeneratedProtocolMessageType('Parameter', (_message.Message,), {
'DESCRIPTOR' : _PARAMETER,
'__module__' : 'Common_pb2'
# @@protoc_insertion_point(class_scope:Robim.Data.Common.Parameter)
})
_sym_db.RegisterMessage(Parameter)
DESCRIPTOR._options = None
# @@protoc_insertion_point(module_scope)
This diff is collapsed.
This diff is collapsed.
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: Display.proto
"""Generated protocol buffer code."""
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
import Math_pb2 as Math__pb2
import Geometry_pb2 as Geometry__pb2
DESCRIPTOR = _descriptor.FileDescriptor(
name='Display.proto',
package='Robim.Data.Display',
syntax='proto3',
serialized_options=b'P\001\252\002\022Robim.Data.Display',
create_key=_descriptor._internal_create_key,
serialized_pb=b'\n\rDisplay.proto\x12\x12Robim.Data.Display\x1a\nMath.proto\x1a\x0eGeometry.proto\"3\n\x05\x43olor\x12\t\n\x01r\x18\x01 \x01(\x05\x12\t\n\x01g\x18\x02 \x01(\x05\x12\t\n\x01\x62\x18\x03 \x01(\x05\x12\t\n\x01\x61\x18\x04 \x01(\x05\"\xa1\x01\n\x08Material\x12\x30\n\rdiffuse_color\x18\x01 \x01(\x0b\x32\x19.Robim.Data.Display.Color\x12\x30\n\rambient_color\x18\x02 \x01(\x0b\x32\x19.Robim.Data.Display.Color\x12\x31\n\x0e\x65missive_color\x18\x03 \x01(\x0b\x32\x19.Robim.Data.Display.Color*2\n\x0eTransformSpace\x12\t\n\x05Local\x10\x00\x12\n\n\x06Parent\x10\x01\x12\t\n\x05World\x10\x02\x42\x17P\x01\xaa\x02\x12Robim.Data.Displayb\x06proto3'
,
dependencies=[Math__pb2.DESCRIPTOR,Geometry__pb2.DESCRIPTOR,])
_TRANSFORMSPACE = _descriptor.EnumDescriptor(
name='TransformSpace',
full_name='Robim.Data.Display.TransformSpace',
filename=None,
file=DESCRIPTOR,
create_key=_descriptor._internal_create_key,
values=[
_descriptor.EnumValueDescriptor(
name='Local', index=0, number=0,
serialized_options=None,
type=None,
create_key=_descriptor._internal_create_key),
_descriptor.EnumValueDescriptor(
name='Parent', index=1, number=1,
serialized_options=None,
type=None,
create_key=_descriptor._internal_create_key),
_descriptor.EnumValueDescriptor(
name='World', index=2, number=2,
serialized_options=None,
type=None,
create_key=_descriptor._internal_create_key),
],
containing_type=None,
serialized_options=None,
serialized_start=282,
serialized_end=332,
)
_sym_db.RegisterEnumDescriptor(_TRANSFORMSPACE)
TransformSpace = enum_type_wrapper.EnumTypeWrapper(_TRANSFORMSPACE)
Local = 0
Parent = 1
World = 2
_COLOR = _descriptor.Descriptor(
name='Color',
full_name='Robim.Data.Display.Color',
filename=None,
file=DESCRIPTOR,
containing_type=None,
create_key=_descriptor._internal_create_key,
fields=[
_descriptor.FieldDescriptor(
name='r', full_name='Robim.Data.Display.Color.r', index=0,
number=1, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='g', full_name='Robim.Data.Display.Color.g', index=1,
number=2, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='b', full_name='Robim.Data.Display.Color.b', index=2,
number=3, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='a', full_name='Robim.Data.Display.Color.a', index=3,
number=4, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=65,
serialized_end=116,
)
_MATERIAL = _descriptor.Descriptor(
name='Material',
full_name='Robim.Data.Display.Material',
filename=None,
file=DESCRIPTOR,
containing_type=None,
create_key=_descriptor._internal_create_key,
fields=[
_descriptor.FieldDescriptor(
name='diffuse_color', full_name='Robim.Data.Display.Material.diffuse_color', index=0,
number=1, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='ambient_color', full_name='Robim.Data.Display.Material.ambient_color', index=1,
number=2, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='emissive_color', full_name='Robim.Data.Display.Material.emissive_color', index=2,
number=3, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=119,
serialized_end=280,
)
_MATERIAL.fields_by_name['diffuse_color'].message_type = _COLOR
_MATERIAL.fields_by_name['ambient_color'].message_type = _COLOR
_MATERIAL.fields_by_name['emissive_color'].message_type = _COLOR
DESCRIPTOR.message_types_by_name['Color'] = _COLOR
DESCRIPTOR.message_types_by_name['Material'] = _MATERIAL
DESCRIPTOR.enum_types_by_name['TransformSpace'] = _TRANSFORMSPACE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
Color = _reflection.GeneratedProtocolMessageType('Color', (_message.Message,), {
'DESCRIPTOR' : _COLOR,
'__module__' : 'Display_pb2'
# @@protoc_insertion_point(class_scope:Robim.Data.Display.Color)
})
_sym_db.RegisterMessage(Color)
Material = _reflection.GeneratedProtocolMessageType('Material', (_message.Message,), {
'DESCRIPTOR' : _MATERIAL,
'__module__' : 'Display_pb2'
# @@protoc_insertion_point(class_scope:Robim.Data.Display.Material)
})
_sym_db.RegisterMessage(Material)
DESCRIPTOR._options = None
# @@protoc_insertion_point(module_scope)
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: Math.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor.FileDescriptor(
name='Math.proto',
package='Robim.Data.Math',
syntax='proto3',
serialized_options=b'P\001\252\002\017Robim.Data.Math',
create_key=_descriptor._internal_create_key,
serialized_pb=b'\n\nMath.proto\x12\x0fRobim.Data.Math\"\"\n\x06Limits\x12\x0b\n\x03min\x18\x01 \x01(\x01\x12\x0b\n\x03max\x18\x02 \x01(\x01\")\n\x06Vector\x12\t\n\x01x\x18\x01 \x01(\x01\x12\t\n\x01y\x18\x02 \x01(\x01\x12\t\n\x01z\x18\x03 \x01(\x01\"8\n\nQuaternion\x12\t\n\x01x\x18\x01 \x01(\x01\x12\t\n\x01y\x18\x02 \x01(\x01\x12\t\n\x01z\x18\x03 \x01(\x01\x12\t\n\x01w\x18\x04 \x01(\x01\"(\n\x05\x45uler\x12\t\n\x01\x61\x18\x01 \x01(\x01\x12\t\n\x01\x62\x18\x02 \x01(\x01\x12\t\n\x01\x63\x18\x03 \x01(\x01\"\xda\x01\n\x08Matrix3D\x12\x0b\n\x03m11\x18\x01 \x01(\x01\x12\x0b\n\x03m12\x18\x02 \x01(\x01\x12\x0b\n\x03m13\x18\x03 \x01(\x01\x12\x0b\n\x03m14\x18\x04 \x01(\x01\x12\x0b\n\x03m21\x18\x05 \x01(\x01\x12\x0b\n\x03m22\x18\x06 \x01(\x01\x12\x0b\n\x03m23\x18\x07 \x01(\x01\x12\x0b\n\x03m24\x18\x08 \x01(\x01\x12\x0b\n\x03m31\x18\t \x01(\x01\x12\x0b\n\x03m32\x18\n \x01(\x01\x12\x0b\n\x03m33\x18\x0b \x01(\x01\x12\x0b\n\x03m34\x18\x0c \x01(\x01\x12\x0b\n\x03m41\x18\r \x01(\x01\x12\x0b\n\x03m42\x18\x0e \x01(\x01\x12\x0b\n\x03m43\x18\x0f \x01(\x01\x12\x0b\n\x03m44\x18\x10 \x01(\x01\"8\n\x0bTransform3D\x12)\n\x06matrix\x18\x01 \x01(\x0b\x32\x19.Robim.Data.Math.Matrix3DB\x14P\x01\xaa\x02\x0fRobim.Data.Mathb\x06proto3'
)
_LIMITS = _descriptor.Descriptor(
name='Limits',
full_name='Robim.Data.Math.Limits',
filename=None,
file=DESCRIPTOR,
containing_type=None,
create_key=_descriptor._internal_create_key,
fields=[
_descriptor.FieldDescriptor(
name='min', full_name='Robim.Data.Math.Limits.min', index=0,
number=1, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='max', full_name='Robim.Data.Math.Limits.max', index=1,
number=2, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=31,
serialized_end=65,
)
_VECTOR = _descriptor.Descriptor(
name='Vector',
full_name='Robim.Data.Math.Vector',
filename=None,
file=DESCRIPTOR,
containing_type=None,
create_key=_descriptor._internal_create_key,
fields=[
_descriptor.FieldDescriptor(
name='x', full_name='Robim.Data.Math.Vector.x', index=0,
number=1, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='y', full_name='Robim.Data.Math.Vector.y', index=1,
number=2, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='z', full_name='Robim.Data.Math.Vector.z', index=2,
number=3, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=67,
serialized_end=108,
)
_QUATERNION = _descriptor.Descriptor(
name='Quaternion',
full_name='Robim.Data.Math.Quaternion',
filename=None,
file=DESCRIPTOR,
containing_type=None,
create_key=_descriptor._internal_create_key,
fields=[
_descriptor.FieldDescriptor(
name='x', full_name='Robim.Data.Math.Quaternion.x', index=0,
number=1, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='y', full_name='Robim.Data.Math.Quaternion.y', index=1,
number=2, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='z', full_name='Robim.Data.Math.Quaternion.z', index=2,
number=3, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='w', full_name='Robim.Data.Math.Quaternion.w', index=3,
number=4, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=110,
serialized_end=166,
)
_EULER = _descriptor.Descriptor(
name='Euler',
full_name='Robim.Data.Math.Euler',
filename=None,
file=DESCRIPTOR,
containing_type=None,
create_key=_descriptor._internal_create_key,
fields=[
_descriptor.FieldDescriptor(
name='a', full_name='Robim.Data.Math.Euler.a', index=0,
number=1, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='b', full_name='Robim.Data.Math.Euler.b', index=1,
number=2, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='c', full_name='Robim.Data.Math.Euler.c', index=2,
number=3, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=168,
serialized_end=208,
)
_MATRIX3D = _descriptor.Descriptor(
name='Matrix3D',
full_name='Robim.Data.Math.Matrix3D',
filename=None,
file=DESCRIPTOR,
containing_type=None,
create_key=_descriptor._internal_create_key,
fields=[
_descriptor.FieldDescriptor(
name='m11', full_name='Robim.Data.Math.Matrix3D.m11', index=0,
number=1, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='m12', full_name='Robim.Data.Math.Matrix3D.m12', index=1,
number=2, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='m13', full_name='Robim.Data.Math.Matrix3D.m13', index=2,
number=3, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='m14', full_name='Robim.Data.Math.Matrix3D.m14', index=3,
number=4, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='m21', full_name='Robim.Data.Math.Matrix3D.m21', index=4,
number=5, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='m22', full_name='Robim.Data.Math.Matrix3D.m22', index=5,
number=6, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='m23', full_name='Robim.Data.Math.Matrix3D.m23', index=6,
number=7, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='m24', full_name='Robim.Data.Math.Matrix3D.m24', index=7,
number=8, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='m31', full_name='Robim.Data.Math.Matrix3D.m31', index=8,
number=9, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='m32', full_name='Robim.Data.Math.Matrix3D.m32', index=9,
number=10, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='m33', full_name='Robim.Data.Math.Matrix3D.m33', index=10,
number=11, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='m34', full_name='Robim.Data.Math.Matrix3D.m34', index=11,
number=12, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='m41', full_name='Robim.Data.Math.Matrix3D.m41', index=12,
number=13, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='m42', full_name='Robim.Data.Math.Matrix3D.m42', index=13,
number=14, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='m43', full_name='Robim.Data.Math.Matrix3D.m43', index=14,
number=15, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='m44', full_name='Robim.Data.Math.Matrix3D.m44', index=15,
number=16, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=211,
serialized_end=429,
)
_TRANSFORM3D = _descriptor.Descriptor(
name='Transform3D',
full_name='Robim.Data.Math.Transform3D',
filename=None,
file=DESCRIPTOR,
containing_type=None,
create_key=_descriptor._internal_create_key,
fields=[
_descriptor.FieldDescriptor(
name='matrix', full_name='Robim.Data.Math.Transform3D.matrix', index=0,
number=1, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=431,
serialized_end=487,
)
_TRANSFORM3D.fields_by_name['matrix'].message_type = _MATRIX3D
DESCRIPTOR.message_types_by_name['Limits'] = _LIMITS
DESCRIPTOR.message_types_by_name['Vector'] = _VECTOR
DESCRIPTOR.message_types_by_name['Quaternion'] = _QUATERNION
DESCRIPTOR.message_types_by_name['Euler'] = _EULER
DESCRIPTOR.message_types_by_name['Matrix3D'] = _MATRIX3D
DESCRIPTOR.message_types_by_name['Transform3D'] = _TRANSFORM3D
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
Limits = _reflection.GeneratedProtocolMessageType('Limits', (_message.Message,), {
'DESCRIPTOR' : _LIMITS,
'__module__' : 'Math_pb2'
# @@protoc_insertion_point(class_scope:Robim.Data.Math.Limits)
})
_sym_db.RegisterMessage(Limits)
Vector = _reflection.GeneratedProtocolMessageType('Vector', (_message.Message,), {
'DESCRIPTOR' : _VECTOR,
'__module__' : 'Math_pb2'
# @@protoc_insertion_point(class_scope:Robim.Data.Math.Vector)
})
_sym_db.RegisterMessage(Vector)
Quaternion = _reflection.GeneratedProtocolMessageType('Quaternion', (_message.Message,), {
'DESCRIPTOR' : _QUATERNION,
'__module__' : 'Math_pb2'
# @@protoc_insertion_point(class_scope:Robim.Data.Math.Quaternion)
})
_sym_db.RegisterMessage(Quaternion)
Euler = _reflection.GeneratedProtocolMessageType('Euler', (_message.Message,), {
'DESCRIPTOR' : _EULER,
'__module__' : 'Math_pb2'
# @@protoc_insertion_point(class_scope:Robim.Data.Math.Euler)
})
_sym_db.RegisterMessage(Euler)
Matrix3D = _reflection.GeneratedProtocolMessageType('Matrix3D', (_message.Message,), {
'DESCRIPTOR' : _MATRIX3D,
'__module__' : 'Math_pb2'
# @@protoc_insertion_point(class_scope:Robim.Data.Math.Matrix3D)
})
_sym_db.RegisterMessage(Matrix3D)
Transform3D = _reflection.GeneratedProtocolMessageType('Transform3D', (_message.Message,), {
'DESCRIPTOR' : _TRANSFORM3D,
'__module__' : 'Math_pb2'
# @@protoc_insertion_point(class_scope:Robim.Data.Math.Transform3D)
})
_sym_db.RegisterMessage(Transform3D)
DESCRIPTOR._options = None
# @@protoc_insertion_point(module_scope)
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: ProcessV2.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
import Math_pb2 as Math__pb2
import Geometry_pb2 as Geometry__pb2
DESCRIPTOR = _descriptor.FileDescriptor(
name='ProcessV2.proto',
package='Robim.Data.Process',
syntax='proto3',
serialized_options=b'P\001\252\002\022Robim.Data.Process',
create_key=_descriptor._internal_create_key,
serialized_pb=b'\n\x0fProcessV2.proto\x12\x12Robim.Data.Process\x1a\x19google/protobuf/any.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\nMath.proto\x1a\x0eGeometry.protoB\x17P\x01\xaa\x02\x12Robim.Data.Processb\x06proto3'
,
dependencies=[google_dot_protobuf_dot_any__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,Math__pb2.DESCRIPTOR,Geometry__pb2.DESCRIPTOR,])
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
DESCRIPTOR._options = None
# @@protoc_insertion_point(module_scope)
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: Robot.proto
"""Generated protocol buffer code."""
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor.FileDescriptor(
name='Robot.proto',
package='Robim.Data.Robot',
syntax='proto3',
serialized_options=b'P\001\252\002\020Robim.Data.Robot',
create_key=_descriptor._internal_create_key,
serialized_pb=b'\n\x0bRobot.proto\x12\x10Robim.Data.Robot\"\x07\n\x05Robot*K\n\x05\x42rand\x12\x0b\n\x07Unknown\x10\x00\x12\x08\n\x04KUKA\x10\x01\x12\x07\n\x03\x41\x42\x42\x10\x02\x12\t\n\x05\x46\x61nuc\x10\x03\x12\x0b\n\x07Yaskawa\x10\x04\x12\n\n\x06\x43ommon\x10\x64*J\n\x07ValType\x12\n\n\x06Unkown\x10\x00\x12\x07\n\x03Int\x10\x01\x12\t\n\x05\x46loat\x10\x02\x12\n\n\x06String\x10\x03\x12\x08\n\x04\x42ool\x10\x04\x12\t\n\x05Short\x10\x05\x42\x15P\x01\xaa\x02\x10Robim.Data.Robotb\x06proto3'
)
_BRAND = _descriptor.EnumDescriptor(
name='Brand',
full_name='Robim.Data.Robot.Brand',
filename=None,
file=DESCRIPTOR,
create_key=_descriptor._internal_create_key,
values=[
_descriptor.EnumValueDescriptor(
name='Unknown', index=0, number=0,
serialized_options=None,
type=None,
create_key=_descriptor._internal_create_key),
_descriptor.EnumValueDescriptor(
name='KUKA', index=1, number=1,
serialized_options=None,
type=None,
create_key=_descriptor._internal_create_key),
_descriptor.EnumValueDescriptor(
name='ABB', index=2, number=2,
serialized_options=None,
type=None,
create_key=_descriptor._internal_create_key),
_descriptor.EnumValueDescriptor(
name='Fanuc', index=3, number=3,
serialized_options=None,
type=None,
create_key=_descriptor._internal_create_key),
_descriptor.EnumValueDescriptor(
name='Yaskawa', index=4, number=4,
serialized_options=None,
type=None,
create_key=_descriptor._internal_create_key),
_descriptor.EnumValueDescriptor(
name='Common', index=5, number=100,
serialized_options=None,
type=None,
create_key=_descriptor._internal_create_key),
],
containing_type=None,
serialized_options=None,
serialized_start=42,
serialized_end=117,
)
_sym_db.RegisterEnumDescriptor(_BRAND)
Brand = enum_type_wrapper.EnumTypeWrapper(_BRAND)
_VALTYPE = _descriptor.EnumDescriptor(
name='ValType',
full_name='Robim.Data.Robot.ValType',
filename=None,
file=DESCRIPTOR,
create_key=_descriptor._internal_create_key,
values=[
_descriptor.EnumValueDescriptor(
name='Unkown', index=0, number=0,
serialized_options=None,
type=None,
create_key=_descriptor._internal_create_key),
_descriptor.EnumValueDescriptor(
name='Int', index=1, number=1,
serialized_options=None,
type=None,
create_key=_descriptor._internal_create_key),
_descriptor.EnumValueDescriptor(
name='Float', index=2, number=2,
serialized_options=None,
type=None,
create_key=_descriptor._internal_create_key),
_descriptor.EnumValueDescriptor(
name='String', index=3, number=3,
serialized_options=None,
type=None,
create_key=_descriptor._internal_create_key),
_descriptor.EnumValueDescriptor(
name='Bool', index=4, number=4,
serialized_options=None,
type=None,
create_key=_descriptor._internal_create_key),
_descriptor.EnumValueDescriptor(
name='Short', index=5, number=5,
serialized_options=None,
type=None,
create_key=_descriptor._internal_create_key),
],
containing_type=None,
serialized_options=None,
serialized_start=119,
serialized_end=193,
)
_sym_db.RegisterEnumDescriptor(_VALTYPE)
ValType = enum_type_wrapper.EnumTypeWrapper(_VALTYPE)
Unknown = 0
KUKA = 1
ABB = 2
Fanuc = 3
Yaskawa = 4
Common = 100
Unkown = 0
Int = 1
Float = 2
String = 3
Bool = 4
Short = 5
_ROBOT = _descriptor.Descriptor(
name='Robot',
full_name='Robim.Data.Robot.Robot',
filename=None,
file=DESCRIPTOR,
containing_type=None,
create_key=_descriptor._internal_create_key,
fields=[
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=33,
serialized_end=40,
)
DESCRIPTOR.message_types_by_name['Robot'] = _ROBOT
DESCRIPTOR.enum_types_by_name['Brand'] = _BRAND
DESCRIPTOR.enum_types_by_name['ValType'] = _VALTYPE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
Robot = _reflection.GeneratedProtocolMessageType('Robot', (_message.Message,), {
'DESCRIPTOR' : _ROBOT,
'__module__' : 'Robot_pb2'
# @@protoc_insertion_point(class_scope:Robim.Data.Robot.Robot)
})
_sym_db.RegisterMessage(Robot)
DESCRIPTOR._options = None
# @@protoc_insertion_point(module_scope)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment