Device visualization (#67)

* Update README and MQTTClient for installation instructions and code improvements

* feat: 支持local_config启动
add: 增加对crt path的说明,为传入config.py的相对路径
move: web component

* add: registry description

* add 3d visualization

* 完成在main中启动设备可视化

完成在main中启动设备可视化,并输出物料ID:mesh的对应关系resource_model

添加物料模型管理类,遍历物料与resource_model,完成TF数据收集

* 完成TF发布

* 修改模型方向,在yaml中添加变换属性

* 添加物料tf变化时,发送topic到前端

另外修改了物料初始化的方法,防止在tf还未发布时提前建立物料模型与发布话题

* 添加关节发布节点与物料可视化节点进入unilab

* 使用json启动plr与3D模型仿真

* feat: node_info_update srv
fix: OTDeck cant create

* close #12
feat: slave node registry

* feat: show machine name
fix: host node registry not uploaded

* feat: add hplc registry

* feat: add hplc registry

* fix: hplc status typo

* fix: devices/

* 完成启动OT并联动rviz

* add 3d visualization

* 完成在main中启动设备可视化

完成在main中启动设备可视化,并输出物料ID:mesh的对应关系resource_model

添加物料模型管理类,遍历物料与resource_model,完成TF数据收集

* 完成TF发布

* 修改模型方向,在yaml中添加变换属性

* 添加物料tf变化时,发送topic到前端

另外修改了物料初始化的方法,防止在tf还未发布时提前建立物料模型与发布话题

* 添加关节发布节点与物料可视化节点进入unilab

* 使用json启动plr与3D模型仿真

* 完成启动OT并联动rviz

* fix: device.class possible null

* fix: HPLC additions with online service

* fix: slave mode spin not working

* fix: slave mode spin not working

* 修复rviz位置问题,

修复rviz位置问题,
在无tf变动时减缓发送频率
在backend中添加物料跟随方法

* feat: 多ProtocolNode 允许子设备ID相同
feat: 上报发现的ActionClient
feat: Host重启动,通过discover机制要求slaveNode重新注册,实现信息及时上报

* feat: 支持env设置config

* fix: running logic

* fix: running logic

* fix: missing ot

* 在main中直接初始化republisher和物料的mesh节点

* 将joint_republisher和resource_mesh_manager添加进 main_slave_run.py中

* Device visualization (#14)

* add 3d visualization

* 完成在main中启动设备可视化

完成在main中启动设备可视化,并输出物料ID:mesh的对应关系resource_model

添加物料模型管理类,遍历物料与resource_model,完成TF数据收集

* 完成TF发布

* 修改模型方向,在yaml中添加变换属性

* 添加物料tf变化时,发送topic到前端

另外修改了物料初始化的方法,防止在tf还未发布时提前建立物料模型与发布话题

* 添加关节发布节点与物料可视化节点进入unilab

* 使用json启动plr与3D模型仿真

* 完成启动OT并联动rviz

* add 3d visualization

* 完成在main中启动设备可视化

完成在main中启动设备可视化,并输出物料ID:mesh的对应关系resource_model

添加物料模型管理类,遍历物料与resource_model,完成TF数据收集

* 完成TF发布

* 修改模型方向,在yaml中添加变换属性

* 添加物料tf变化时,发送topic到前端

另外修改了物料初始化的方法,防止在tf还未发布时提前建立物料模型与发布话题

* 添加关节发布节点与物料可视化节点进入unilab

* 使用json启动plr与3D模型仿真

* 完成启动OT并联动rviz

* 修复rviz位置问题,

修复rviz位置问题,
在无tf变动时减缓发送频率
在backend中添加物料跟随方法

* fix: running logic

* fix: running logic

* fix: missing ot

* 在main中直接初始化republisher和物料的mesh节点

* 将joint_republisher和resource_mesh_manager添加进 main_slave_run.py中

---------

Co-authored-by: zhangshixiang <@zhangshixiang>
Co-authored-by: wznln <18435084+Xuwznln@users.noreply.github.com>

* fix: missing hostname in devices_names
fix: upload_file for model file

* fix: missing paho-mqtt package
bump version to 0.9.0

* fix startup
add ResourceCreateFromOuter.action

* fix type hint

* update actions

* update actions

* host node add_resource_from_outer
fix cmake list

* pass device config to device class

* add: bind_parent_ids to resource create action
fix: message convert string

* fix: host node should not be re_discovered

* feat: resource tracker support dict

* feat: add more necessary params

* feat: fix boolean null in registry action data

* feat: add outer resource

* 编写mesh添加action

* feat: append resource

* add action

* feat: vis 2d for plr

* fix

* fix: browser on rviz

* fix: cloud bridge error fallback to local

* fix: salve auto run rviz

* 初始化两个plate

* Device visualization (#22)

* add 3d visualization

* 完成在main中启动设备可视化

完成在main中启动设备可视化,并输出物料ID:mesh的对应关系resource_model

添加物料模型管理类,遍历物料与resource_model,完成TF数据收集

* 完成TF发布

* 修改模型方向,在yaml中添加变换属性

* 添加物料tf变化时,发送topic到前端

另外修改了物料初始化的方法,防止在tf还未发布时提前建立物料模型与发布话题

* 添加关节发布节点与物料可视化节点进入unilab

* 使用json启动plr与3D模型仿真

* 完成启动OT并联动rviz

* add 3d visualization

* 完成在main中启动设备可视化

完成在main中启动设备可视化,并输出物料ID:mesh的对应关系resource_model

添加物料模型管理类,遍历物料与resource_model,完成TF数据收集

* 完成TF发布

* 修改模型方向,在yaml中添加变换属性

* 添加物料tf变化时,发送topic到前端

另外修改了物料初始化的方法,防止在tf还未发布时提前建立物料模型与发布话题

* 添加关节发布节点与物料可视化节点进入unilab

* 使用json启动plr与3D模型仿真

* 完成启动OT并联动rviz

* 修复rviz位置问题,

修复rviz位置问题,
在无tf变动时减缓发送频率
在backend中添加物料跟随方法

* fix: running logic

* fix: running logic

* fix: missing ot

* 在main中直接初始化republisher和物料的mesh节点

* 将joint_republisher和resource_mesh_manager添加进 main_slave_run.py中

* 编写mesh添加action

* add action

* fix

* fix: browser on rviz

* fix: cloud bridge error fallback to local

* fix: salve auto run rviz

* 初始化两个plate

---------

Co-authored-by: zhangshixiang <@zhangshixiang>
Co-authored-by: wznln <18435084+Xuwznln@users.noreply.github.com>

* fix: multi channel

* fix: aspirate

* fix: aspirate

* fix: aspirate

* fix: aspirate

* 提交

* fix: jobadd

* fix: jobadd

* fix: msg converter

* tijiao

* add resource creat easy action

* identify debug msg

* mq client id

* 提取lh的joint发布

* unify liquid_handler definition

* 修改物料跟随与物料添加逻辑

修改物料跟随与物料添加逻辑
将joint_publisher类移出lh的backends,但仍需要对lh的backends进行一些改写

* Revert "修改物料跟随与物料添加逻辑"

This reverts commit 498c997ad7.

* Reapply "修改物料跟随与物料添加逻辑"

This reverts commit 3a60d2ae81.

* Revert "Merge remote-tracking branch 'upstream/dev' into device_visualization"

This reverts commit fa727220af, reversing
changes made to 498c997ad7.

* 修改物料放下时的方法,如果选择

修改物料放下时的方法,
如果选择drop_trash,则删除物料显示
如果选择drop,则让其解除连接

* unilab添加moveit启动

1,整合所有moveit节点到一个move_group中,并整合所有的controller依次激活
2,添加pymoveit2的节点,使用json可直接启动
3,修改机械臂规划方式,添加约束,让冗余关节不会进行过多移动

* 修改物体attach时,多次赋值当前时间导致卡顿问题,

* Revert "修改物体attach时,多次赋值当前时间导致卡顿问题,"

This reverts commit 56d45b94f5.

* Reapply "修改物体attach时,多次赋值当前时间导致卡顿问题,"

This reverts commit 07d9db20c3.

* 添加缺少物料:"plate_well_G12",

* add

* fix tip resource data

* liquid states

* change to debug level

* Revert "change to debug level"

This reverts commit 5d9953c3e5.

* Reapply "change to debug level"

This reverts commit 2487bb6ffc.

* fix tip resource data

* add full device

* add moveit yaml

* 修复moveit
增加post_init阶段,给予ros_node反向

* remove necessary node

* fix moveit action client

* remove necessary imports

* Update moveit_interface.py

* fix handler_key uppercase

* json add liquids

* fix setup

* add

* change to "sources" and "targets" for lh

* bump version

* remove parent's parent link

* change arm's name

* change name

* fix ik error

* 修改moveit_interface,并在mqtt上报时发送一个时间戳

* 添加机械臂和移液站

* 添加

* 添加硬件

* update

* 添加

---------

Co-authored-by: Harvey Que <Q-Query@outlook.com>
Co-authored-by: wznln <18435084+Xuwznln@users.noreply.github.com>
Co-authored-by: zhangshixiang <@zhangshixiang>
Co-authored-by: Junhan Chang <changjh@pku.edu.cn>
This commit is contained in:
q434343
2025-08-01 01:06:10 +08:00
committed by GitHub
parent b63e281ab7
commit dcc970a091
163 changed files with 23767 additions and 695 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,32 +1,48 @@
{ {
"nodes": [ "nodes": [
{ {
"id": "benyao", "id": "arm_slider",
"name": "benyao", "name": "arm_slider",
"children": [ "children": [],
],
"parent": null, "parent": null,
"type": "device", "type": "device",
"class": "moveit.arm_slider", "class": "moveit.arm_slider",
"position": { "position": {
"x": 0, "x": -500,
"y": 0, "y": 1000,
"z": 0 "z": -100
}, },
"config": { "config": {
"moveit_type": "arm_slider", "moveit_type": "arm_slider",
"joint_poses": { "joint_poses": {
"arm": { "arm": {
"home": [0.0, 0.2, 0.0, 0.0, 0.0], "hotel_1": [
"pick": [1.2, 0.0, 0.0, 0.0, 0.0] 1.05,
0.568,
-1.0821,
0.0,
1.0821
],
"home": [
0.865,
0.09,
0.8727,
0.0,
-0.8727
]
} }
}, },
"device_config": { "rotation": {
} "x": 0,
"y": 0,
"z": -1.5708,
"type": "Rotation"
},
"device_config": {}
}, },
"data": { "data": {}
}
} }
], ],
"links": [ "links": [

View File

@@ -166,7 +166,7 @@ class MQTTClient:
status = {"data": device_status.get(device_id, {}), "device_id": device_id, "timestamp": time.time()} status = {"data": device_status.get(device_id, {}), "device_id": device_id, "timestamp": time.time()}
address = f"labs/{MQConfig.lab_id}/devices/" address = f"labs/{MQConfig.lab_id}/devices/"
self.client.publish(address, json.dumps(status), qos=2) self.client.publish(address, json.dumps(status), qos=2)
logger.debug(f"Device status published: address: {address}, {status}") logger.info(f"Device {device_id} status published: address: {address}, {status}")
def publish_job_status(self, feedback_data: dict, job_id: str, status: str, return_info: Optional[str] = None): def publish_job_status(self, feedback_data: dict, job_id: str, status: str, return_info: Optional[str] = None):
if self.mqtt_disable: if self.mqtt_disable:

View File

@@ -1,9 +0,0 @@
# Default initial positions for full_dev's ros2_control fake system
initial_positions:
arm_base_joint: 0
arm_link_1_joint: 0
arm_link_2_joint: 0
arm_link_3_joint: 0
gripper_base_joint: 0
gripper_right_joint: 0.03

View File

@@ -1,40 +0,0 @@
# joint_limits.yaml allows the dynamics properties specified in the URDF to be overwritten or augmented as needed
# For beginners, we downscale velocity and acceleration limits.
# You can always specify higher scaling factors (<= 1.0) in your motion requests. # Increase the values below to 1.0 to always move at maximum speed.
default_velocity_scaling_factor: 0.1
default_acceleration_scaling_factor: 0.1
# Specific joint properties can be changed with the keys [max_position, min_position, max_velocity, max_acceleration]
# Joint limits can be turned off with [has_velocity_limits, has_acceleration_limits]
joint_limits:
arm_base_joint:
has_velocity_limits: true
max_velocity: 0
has_acceleration_limits: false
max_acceleration: 0
arm_link_1_joint:
has_velocity_limits: true
max_velocity: 0
has_acceleration_limits: false
max_acceleration: 0
arm_link_2_joint:
has_velocity_limits: true
max_velocity: 0
has_acceleration_limits: false
max_acceleration: 0
arm_link_3_joint:
has_velocity_limits: true
max_velocity: 0
has_acceleration_limits: false
max_acceleration: 0
gripper_base_joint:
has_velocity_limits: true
max_velocity: 0
has_acceleration_limits: false
max_acceleration: 0
gripper_right_joint:
has_velocity_limits: true
max_velocity: 0
has_acceleration_limits: false
max_acceleration: 0

View File

@@ -1,4 +0,0 @@
arm:
kinematics_solver: lma_kinematics_plugin/LMAKinematicsPlugin
kinematics_solver_search_resolution: 0.0050000000000000001
kinematics_solver_timeout: 0.0050000000000000001

View File

@@ -1,56 +0,0 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:macro name="benyao_arm_ros2_control" params="device_name mesh_path">
<xacro:property name="initial_positions" value="${load_yaml(mesh_path + '/devices/benyao_arm/config/initial_positions.yaml')['initial_positions']}"/>
<ros2_control name="${device_name}benyao_arm" type="system">
<hardware>
<!-- By default, set up controllers for simulation. This won't work on real hardware -->
<plugin>mock_components/GenericSystem</plugin>
</hardware>
<joint name="${device_name}arm_base_joint">
<command_interface name="position"/>
<state_interface name="position">
<param name="initial_value">${initial_positions['arm_base_joint']}</param>
</state_interface>
<state_interface name="velocity"/>
</joint>
<joint name="${device_name}arm_link_1_joint">
<command_interface name="position"/>
<state_interface name="position">
<param name="initial_value">${initial_positions['arm_link_1_joint']}</param>
</state_interface>
<state_interface name="velocity"/>
</joint>
<joint name="${device_name}arm_link_2_joint">
<command_interface name="position"/>
<state_interface name="position">
<param name="initial_value">${initial_positions['arm_link_2_joint']}</param>
</state_interface>
<state_interface name="velocity"/>
</joint>
<joint name="${device_name}arm_link_3_joint">
<command_interface name="position"/>
<state_interface name="position">
<param name="initial_value">${initial_positions['arm_link_3_joint']}</param>
</state_interface>
<state_interface name="velocity"/>
</joint>
<joint name="${device_name}gripper_base_joint">
<command_interface name="position"/>
<state_interface name="position">
<param name="initial_value">${initial_positions['gripper_base_joint']}</param>
</state_interface>
<state_interface name="velocity"/>
</joint>
<joint name="${device_name}gripper_right_joint">
<command_interface name="position"/>
<state_interface name="position">
<param name="initial_value">${initial_positions['gripper_right_joint']}</param>
</state_interface>
<state_interface name="velocity"/>
</joint>
</ros2_control>
</xacro:macro>
</robot>

View File

@@ -1,46 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--This does not replace URDF, and is not an extension of URDF.
This is a format for representing semantic information about the robot structure.
A URDF file must exist for this robot as well, where the joints and the links that are referenced are defined
-->
<robot xmlns:xacro="http://ros.org/wiki/xacro">
<xacro:macro name="benyao_arm_srdf" params="device_name">
<!--GROUPS: Representation of a set of joints and links. This can be useful for specifying DOF to plan for, defining arms, end effectors, etc-->
<!--LINKS: When a link is specified, the parent joint of that link (if it exists) is automatically included-->
<!--JOINTS: When a joint is specified, the child link of that joint (which will always exist) is automatically included-->
<!--CHAINS: When a chain is specified, all the links along the chain (including endpoints) are included in the group. Additionally, all the joints that are parents to included links are also included. This means that joints along the chain and the parent joint of the base link are included in the group-->
<!--SUBGROUPS: Groups can also be formed by referencing to already defined group names-->
<group name="${device_name}arm">
<chain base_link="${device_name}arm_slideway" tip_link="${device_name}gripper_base"/>
</group>
<group name="${device_name}arm_gripper">
<joint name="${device_name}gripper_right_joint"/>
</group>
<!--DISABLE COLLISIONS: By default it is assumed that any link of the robot could potentially come into collision with any other link in the robot. This tag disables collision checking between a specified pair of links. -->
<disable_collisions link1="${device_name}arm_base" link2="${device_name}arm_link_2" reason="Adjacent"/>
<disable_collisions link1="${device_name}arm_base" link2="${device_name}arm_link_1" reason="Adjacent"/>
<disable_collisions link1="${device_name}arm_base" link2="${device_name}arm_link_3" reason="Never"/>
<disable_collisions link1="${device_name}arm_base" link2="${device_name}arm_slideway" reason="Adjacent"/>
<disable_collisions link1="${device_name}arm_link_1" link2="${device_name}arm_link_2" reason="Adjacent"/>
<disable_collisions link1="${device_name}arm_link_1" link2="${device_name}arm_link_3" reason="Never"/>
<disable_collisions link1="${device_name}arm_link_1" link2="${device_name}arm_slideway" reason="Never"/>
<disable_collisions link1="${device_name}arm_link_1" link2="${device_name}gripper_base" reason="Never"/>
<disable_collisions link1="${device_name}arm_link_1" link2="${device_name}gripper_left" reason="Never"/>
<disable_collisions link1="${device_name}arm_link_1" link2="${device_name}gripper_right" reason="Never"/>
<disable_collisions link1="${device_name}arm_link_2" link2="${device_name}arm_link_3" reason="Adjacent"/>
<disable_collisions link1="${device_name}arm_link_2" link2="${device_name}arm_slideway" reason="Never"/>
<disable_collisions link1="${device_name}arm_link_2" link2="${device_name}gripper_base" reason="Never"/>
<disable_collisions link1="${device_name}arm_link_2" link2="${device_name}gripper_left" reason="Never"/>
<disable_collisions link1="${device_name}arm_link_2" link2="${device_name}gripper_right" reason="Never"/>
<disable_collisions link1="${device_name}arm_link_3" link2="${device_name}arm_slideway" reason="Never"/>
<disable_collisions link1="${device_name}arm_link_3" link2="${device_name}gripper_base" reason="Adjacent"/>
<disable_collisions link1="${device_name}arm_link_3" link2="${device_name}gripper_left" reason="Never"/>
<disable_collisions link1="${device_name}arm_link_3" link2="${device_name}gripper_right" reason="Never"/>
<disable_collisions link1="${device_name}arm_slideway" link2="${device_name}gripper_base" reason="Never"/>
<disable_collisions link1="${device_name}arm_slideway" link2="${device_name}gripper_left" reason="Never"/>
<disable_collisions link1="${device_name}arm_slideway" link2="${device_name}gripper_right" reason="Never"/>
<disable_collisions link1="${device_name}gripper_base" link2="${device_name}gripper_left" reason="Adjacent"/>
<disable_collisions link1="${device_name}gripper_base" link2="${device_name}gripper_right" reason="Adjacent"/>
<disable_collisions link1="${device_name}gripper_left" link2="${device_name}gripper_right" reason="Never"/>
</xacro:macro>
</robot>

View File

@@ -1,14 +0,0 @@
{
"arm":
{
"joint_names": [
"arm_base_joint",
"arm_link_1_joint",
"arm_link_2_joint",
"arm_link_3_joint",
"gripper_base_joint"
],
"base_link_name": "device_link",
"end_effector_name": "gripper_base"
}
}

View File

@@ -1,29 +0,0 @@
# MoveIt uses this configuration for controller management
moveit_controller_manager: moveit_simple_controller_manager/MoveItSimpleControllerManager
moveit_simple_controller_manager:
controller_names:
- arm_controller
- gripper_controller
arm_controller:
type: FollowJointTrajectory
action_ns: follow_joint_trajectory
default: true
joints:
- arm_base_joint
- arm_link_1_joint
- arm_link_2_joint
- arm_link_3_joint
- gripper_base_joint
action_ns: follow_joint_trajectory
default: true
gripper_controller:
type: FollowJointTrajectory
action_ns: follow_joint_trajectory
default: true
joints:
- gripper_right_joint
action_ns: follow_joint_trajectory
default: true

View File

@@ -1,2 +0,0 @@
planner_configs:
- ompl_interface/OMPLPlanner

View File

@@ -1,6 +0,0 @@
# Limits for the Pilz planner
cartesian_limits:
max_trans_vel: 1.0
max_trans_acc: 2.25
max_trans_dec: -5.0
max_rot_vel: 1.57

View File

@@ -1,39 +0,0 @@
# This config file is used by ros2_control
controller_manager:
ros__parameters:
update_rate: 100 # Hz
arm_controller:
type: joint_trajectory_controller/JointTrajectoryController
gripper_controller:
type: joint_trajectory_controller/JointTrajectoryController
joint_state_broadcaster:
type: joint_state_broadcaster/JointStateBroadcaster
arm_controller:
ros__parameters:
joints:
- arm_base_joint
- arm_link_1_joint
- arm_link_2_joint
- arm_link_3_joint
- gripper_base_joint
command_interfaces:
- position
state_interfaces:
- position
- velocity
gripper_controller:
ros__parameters:
joints:
- gripper_right_joint
command_interfaces:
- position
state_interfaces:
- position
- velocity

View File

@@ -1,44 +0,0 @@
joint_limits:
arm_base_joint:
effort: 50
velocity: 1.0
lower: 0
upper: 1.5
arm_link_1_joint:
effort: 50
velocity: 1.0
lower: 0
upper: 0.6
arm_link_2_joint:
effort: 50
velocity: 1.0
lower: !degrees -95
upper: !degrees 95
arm_link_3_joint:
effort: 50
velocity: 1.0
lower: !degrees -195
upper: !degrees 195
gripper_base_joint:
effort: 50
velocity: 1.0
lower: !degrees -95
upper: !degrees 95
gripper_right_joint:
effort: 50
velocity: 1.0
lower: 0
upper: 0.03
gripper_left_joint:
effort: 50
velocity: 1.0
lower: 0
upper: 0.03

View File

@@ -1,293 +0,0 @@
<?xml version="1.0" ?>
<robot xmlns:xacro="http://ros.org/wiki/xacro" name="benyao_arm">
<xacro:macro name="benyao_arm" params="mesh_path:='' parent_link:='' station_name:='' device_name:='' x:=0 y:=0 z:=0 rx:=0 ry:=0 r:=0">
<!-- Read .yaml files from disk, load content into properties -->
<xacro:property name= "joint_limit_parameters" value="${xacro.load_yaml(mesh_path + '/devices/benyao_arm/joint_limit.yaml')}"/>
<!-- Extract subsections from yaml dictionaries -->
<xacro:property name= "sec_limits" value="${joint_limit_parameters['joint_limits']}"/>
<joint name="${station_name}${device_name}base_link_joint" type="fixed">
<origin xyz="${x} ${y} ${z}" rpy="${rx} ${ry} ${r}" />
<parent link="${parent_link}"/>
<child link="${station_name}${device_name}device_link"/>
<axis xyz="0 0 0"/>
</joint>
<link name="${station_name}${device_name}device_link"/>
<joint name="${station_name}${device_name}device_link_joint" type="fixed">
<origin xyz="0 0 0" rpy="0 0 0" />
<parent link="${station_name}${device_name}device_link"/>
<child link="${station_name}${device_name}arm_slideway"/>
<axis xyz="0 0 0"/>
</joint>
<!-- JOINTS LIMIT PARAMETERS -->
<xacro:property name="limit_arm_base_joint" value="${sec_limits['arm_base_joint']}" />
<xacro:property name="limit_arm_link_1_joint" value="${sec_limits['arm_link_1_joint']}" />
<xacro:property name="limit_arm_link_2_joint" value="${sec_limits['arm_link_2_joint']}" />
<xacro:property name="limit_arm_link_3_joint" value="${sec_limits['arm_link_3_joint']}" />
<xacro:property name="limit_gripper_base_joint" value="${sec_limits['gripper_base_joint']}" />
<xacro:property name="limit_gripper_right_joint" value="${sec_limits['gripper_right_joint']}"/>
<xacro:property name="limit_gripper_left_joint" value="${sec_limits['gripper_left_joint']}" />
<link name="${station_name}${device_name}arm_slideway">
<inertial>
<origin rpy="0 0 0" xyz="-0.913122246354019 -0.00141851388483838 0.0416079172839272"/>
<mass value="13.6578107753627"/>
<inertia ixx="0.0507627640890578" ixy="0.0245166532634714" ixz="-0.0112656803168519" iyy="5.2550852314372" iyz="0.000302974193920367" izz="5.26892263696439"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file://${mesh_path}/devices/benyao_arm/meshes/arm_slideway.STL"/>
</geometry>
<material name="">
<color rgba="0.752941176470588 0.752941176470588 0.752941176470588 1"/>
</material>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file://${mesh_path}/devices/benyao_arm/meshes/arm_slideway.STL"/>
</geometry>
</collision>
</link>
<joint name="${station_name}${device_name}arm_base_joint" type="prismatic">
<origin rpy="0 0 0" xyz="0.307 0 0.1225"/>
<parent link="${station_name}${device_name}arm_slideway"/>
<child link="${station_name}${device_name}arm_base"/>
<axis xyz="1 0 0"/>
<limit
effort="${limit_arm_base_joint['effort']}"
lower="${limit_arm_base_joint['lower']}"
upper="${limit_arm_base_joint['upper']}"
velocity="${limit_arm_base_joint['velocity']}"/>
</joint>
<link name="${station_name}${device_name}arm_base">
<inertial>
<origin rpy="0 0 0" xyz="1.48458338655733E-06 -0.00831873687136486 0.351728466012153"/>
<mass value="16.1341586205194"/>
<inertia ixx="0.54871651759045" ixy="7.65476367433116E-07" ixz="2.0515139488158E-07" iyy="0.55113098995396" iyz="-5.13261457726806E-07" izz="0.0619081867727048"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file://${mesh_path}/devices/benyao_arm/meshes/arm_base.STL"/>
</geometry>
<material name="">
<color rgba="1 1 1 1"/>
</material>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file://${mesh_path}/devices/benyao_arm/meshes/arm_base.STL"/>
</geometry>
</collision>
</link>
<link name="${station_name}${device_name}arm_link_1">
<inertial>
<origin rpy="0 0 0" xyz="0 -0.0102223856758559 0.0348505130779933"/>
<mass value="0.828629227096429"/>
<inertia ixx="0.00119703598787112" ixy="-2.46083048832131E-19" ixz="1.43864352731199E-19" iyy="0.00108355785790042" iyz="1.88092240278693E-06" izz="0.00160914803816438"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file://${mesh_path}/devices/benyao_arm/meshes/arm_link_1.STL"/>
</geometry>
<material name="">
<color rgba="1 1 1 1"/>
</material>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file://${mesh_path}/devices/benyao_arm/meshes/arm_link_1.STL"/>
</geometry>
</collision>
</link>
<joint name="${station_name}${device_name}arm_link_1_joint" type="prismatic">
<origin rpy="0 0 0" xyz="0 0.1249 0.15"/>
<parent link="${station_name}${device_name}arm_base"/>
<child link="${station_name}${device_name}arm_link_1"/>
<axis xyz="0 0 1"/>
<limit
effort="${limit_arm_link_1_joint['effort']}"
lower="${limit_arm_link_1_joint['lower']}"
upper="${limit_arm_link_1_joint['upper']}"
velocity="${limit_arm_link_1_joint['velocity']}"/>
</joint>
<link name="${station_name}${device_name}arm_link_2">
<inertial>
<origin rpy="0 0 0" xyz="-3.33066907387547E-16 0.100000000000003 -0.0325000000000004"/>
<mass value="2.04764861029349"/>
<inertia ixx="0.0150150059448827" ixy="-1.28113733272213E-17" ixz="6.7561418872754E-19" iyy="0.00262980501315445" iyz="7.44451536320152E-18" izz="0.0162030186138787"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file://${mesh_path}/devices/benyao_arm/meshes/arm_link_2.STL"/>
</geometry>
<material name="">
<color rgba="1 1 1 1"/>
</material>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file://${mesh_path}/devices/benyao_arm/meshes/arm_link_2.STL"/>
</geometry>
</collision>
</link>
<joint name="${station_name}${device_name}arm_link_2_joint" type="revolute">
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="${station_name}${device_name}arm_link_1"/>
<child link="${station_name}${device_name}arm_link_2"/>
<axis xyz="0 0 1"/>
<limit
effort="${limit_arm_link_2_joint['effort']}"
lower="${limit_arm_link_2_joint['lower']}"
upper="${limit_arm_link_2_joint['upper']}"
velocity="${limit_arm_link_2_joint['velocity']}"/>
</joint>
<link name="${station_name}${device_name}arm_link_3">
<inertial>
<origin rpy="0 0 0" xyz="4.77395900588817E-15 0.0861257730831348 -0.0227999999999999"/>
<mass value="1.19870202871083"/>
<inertia ixx="0.00780783223764428" ixy="7.26567379579506E-18" ixz="1.02766851352053E-18" iyy="0.00109642607170081" iyz="-9.73775385060067E-18" izz="0.0084997384510058"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file://${mesh_path}/devices/benyao_arm/meshes/arm_link_3.STL"/>
</geometry>
<material name="">
<color rgba="1 1 1 1"/>
</material>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file://${mesh_path}/devices/benyao_arm/meshes/arm_link_3.STL"/>
</geometry>
</collision>
</link>
<joint name="${station_name}${device_name}arm_link_3_joint" type="revolute">
<origin rpy="0 0 0" xyz="0 0.2 -0.0647"/>
<parent link="${station_name}${device_name}arm_link_2"/>
<child link="${station_name}${device_name}arm_link_3"/>
<axis xyz="0 0 1"/>
<limit
effort="${limit_arm_link_3_joint['effort']}"
lower="${limit_arm_link_3_joint['lower']}"
upper="${limit_arm_link_3_joint['upper']}"
velocity="${limit_arm_link_3_joint['velocity']}"/>
</joint>
<link name="${station_name}${device_name}gripper_base">
<inertial>
<origin rpy="0 0 0" xyz="-6.05365748571618E-05 0.0373027483464434 -0.0264392017534612"/>
<mass value="0.511925198394943"/>
<inertia ixx="0.000640463815051467" ixy="1.08132229596356E-06" ixz="7.165124649009E-07" iyy="0.000552164156414554" iyz="9.80000237347941E-06" izz="0.00103553457812823"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file://${mesh_path}/devices/benyao_arm/meshes/gripper_base.STL"/>
</geometry>
<material name="">
<color rgba="1 1 1 1"/>
</material>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file://${mesh_path}/devices/benyao_arm/meshes/gripper_base.STL"/>
</geometry>
</collision>
</link>
<joint name="${station_name}${device_name}gripper_base_joint" type="revolute">
<origin rpy="0 0 0" xyz="0 0.2 -0.045"/>
<parent link="${station_name}${device_name}arm_link_3"/>
<child link="${station_name}${device_name}gripper_base"/>
<axis xyz="0 0 1"/>
<limit
effort="${limit_gripper_base_joint['effort']}"
lower="${limit_gripper_base_joint['lower']}"
upper="${limit_gripper_base_joint['upper']}"
velocity="${limit_gripper_base_joint['velocity']}"/>
</joint>
<link name="${station_name}${device_name}gripper_right">
<inertial>
<origin rpy="0 0 0" xyz="0.0340005471193899 0.0339655085140826 -0.0325252119823062"/>
<mass value="0.013337481136229"/>
<inertia ixx="2.02427962974094E-05" ixy="1.78442722292145E-06" ixz="-4.36485961300289E-07" iyy="1.4816483393622E-06" iyz="2.60539468115799E-06" izz="1.96629693098755E-05"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file://${mesh_path}/devices/benyao_arm/meshes/gripper_right.STL"/>
</geometry>
<material name="">
<color rgba="1 1 1 1"/>
</material>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file://${mesh_path}/devices/benyao_arm/meshes/gripper_right.STL"/>
</geometry>
</collision>
</link>
<joint name="${station_name}${device_name}gripper_right_joint" type="prismatic">
<origin rpy="0 0 0" xyz="0 0.0942 -0.022277"/>
<parent link="${station_name}${device_name}gripper_base"/>
<child link="${station_name}${device_name}gripper_right"/>
<axis xyz="1 0 0"/>
<limit
effort="${limit_gripper_right_joint['effort']}"
lower="${limit_gripper_right_joint['lower']}"
upper="${limit_gripper_right_joint['upper']}"
velocity="${limit_gripper_right_joint['velocity']}"/>
</joint>
<link name="${station_name}${device_name}gripper_left">
<inertial>
<origin rpy="0 3.1416 0" xyz="-0.0340005471193521 0.0339655081029604 -0.0325252119827364"/>
<mass value="0.0133374811362292"/>
<inertia ixx="2.02427962974094E-05" ixy="-1.78442720812615E-06" ixz="4.36485961300305E-07" iyy="1.48164833936224E-06" iyz="2.6053946859901E-06" izz="1.96629693098755E-05"/>
</inertial>
<visual>
<origin rpy="0 3.1416 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file://${mesh_path}/devices/benyao_arm/meshes/gripper_left.STL"/>
</geometry>
<material name="">
<color rgba="1 1 1 1"/>
</material>
</visual>
<collision>
<origin rpy="0 3.1416 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file://${mesh_path}/devices/benyao_arm/meshes/gripper_left.STL"/>
</geometry>
</collision>
</link>
<joint name="${station_name}${device_name}gripper_left_joint" type="prismatic">
<origin rpy="0 3.1416 0" xyz="0 0.0942 -0.022277"/>
<parent link="${station_name}${device_name}gripper_base"/>
<child link="${station_name}${device_name}gripper_left"/>
<axis xyz="1 0 0"/>
<limit
effort="${limit_gripper_left_joint['effort']}"
lower="${limit_gripper_left_joint['lower']}"
upper="${limit_gripper_left_joint['upper']}"
velocity="${limit_gripper_left_joint['velocity']}"/>
<mimic joint="${station_name}${device_name}gripper_right_joint" multiplier="1" />
</joint>
</xacro:macro>
</robot>

View File

@@ -0,0 +1,43 @@
kinematics:
shoulder:
x: 0
y: 0
z: 0.1930
roll: 0
pitch: 0
yaw: 0
upperarm:
x: 0
y: 0
z: 0
roll: 1.570796326589793
pitch: 0
yaw: 0
forearm:
x: -0.6150
y: 0
z: 0
roll: 0
pitch: 0
yaw: 0
wrist_1:
x: -0.5710
y: 0
z: 0.1775
roll: 0
pitch: 0
yaw: 0
wrist_2:
x: 0
y: -0.1180
z: 0
roll: 1.570796326589793
pitch: 0
yaw: 0
wrist_3:
x: 0
y: 0.1103
z: 0
roll: -1.570796326589793
pitch: 0
yaw: 0

View File

@@ -0,0 +1,61 @@
joint_limits:
shoulder_pan_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 330.0
max_position: !degrees 360.0
max_velocity: !degrees 120.0
min_position: !degrees -360.0
shoulder_lift_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 330.0
max_position: !degrees 360.0
max_velocity: !degrees 120.0
min_position: !degrees -360.0
elbow_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 150.0
max_position: !degrees 180.0
max_velocity: !degrees 180.0
min_position: !degrees -180.0
wrist_1_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 56.0
max_position: !degrees 360.0
max_velocity: !degrees 180.0
min_position: !degrees -360.0
wrist_2_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 56.0
max_position: !degrees 360.0
max_velocity: !degrees 180.0
min_position: !degrees -360.0
wrist_3_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 56.0
max_position: !degrees 360.0
max_velocity: !degrees 180.0
min_position: !degrees -360.0

View File

@@ -0,0 +1,99 @@
# Physical parameters
dh_parameters:
d1: 0.1930
a2: -0.6150
a3: -0.5710
d4: 0.1775
d5: 0.1180
d6: 0.1103
inertia_parameters:
base_mass: 0.94888 # base mass, base inertia, base cog might be incorrect
shoulder_mass: 6.83
upperarm_mass: 13.037
forearm_mass: 4.827
wrist_1_mass: 2.315
wrist_2_mass: 2.195
wrist_3_mass: 0.616
inertia:
base:
ixx: 0.0029607
ixy: -1.019E-06
ixz: 5.2685E-06
iyy: 0.0026222
iyz: -2.8951E-06
izz: 0.0039906
shoulder:
ixx: 0.039228
ixy: -2.8388E-05
ixz: 3.9289E-05
iyy: 0.025078
iyz: -0.00028825
izz: 0.037499
upperarm:
ixx: 0.3734
ixy: -5.985E-05
ixz: -0.5014
iyy: 2.0187
iyz: -0.00013287
izz: 1.681
forearm:
ixx: 0.030106
ixy: -1.25E-05
ixz: -0.076554
iyy: 0.76404
iyz: 1.326E-06
izz: 0.7421
wrist_1:
ixx: 0.0060891
ixy: 1.219E-06
ixz: -4.067E-06
iyy: 0.0049703
iyz: -1.2747E-05
izz: 0.0033067
wrist_2:
ixx: 0.004638045
ixy: 1.311E-06
ixz: 3.829E-06
iyy: 0.003507337
iyz: 1.4183E-05
izz: 0.003129668
wrist_3:
ixx: 0.0016942
ixy: 1.27E-07
ixz: 1.9782E-05
iyy: 0.0017123
iyz: 7.7E-06
izz: 0.0005701
center_of_mass:
base_cog:
x: 5.6715E-05
y: -0.00010524
z: 0.065979
shoulder_cog:
x: 9.3E-05
y: -0.02697
z: -0.02115
upperarm_cog:
x: -0.2304
y: -3.9E-05
z: 0.16068
forearm_cog:
x: -0.2998
y: 1.3E-05
z: 0.06176
wrist_1_cog:
x: 1.0E-05
y: -0.0148
z: -0.01682
wrist_2_cog:
x: -1.3E-05
y: 0.015559
z: -0.011803
wrist_3_cog:
x: -0.001704
y: -0.000705
z: -0.039231

View File

@@ -0,0 +1,92 @@
mesh_files:
base:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs612/visual/base.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs612/collision/base.stl
shoulder:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs612/visual/shoulder.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs612/collision/shoulder.stl
upperarm:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs612/visual/upperarm.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs612/collision/upperarm.stl
mesh_files:
forearm:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs612/visual/forearm.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs612/collision/forearm.stl
wrist_1:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs612/visual/wrist1.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs612/collision/wrist1.stl
wrist_2:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs612/visual/wrist2.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs612/collision/wrist2.stl
wrist_3:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs612/visual/wrist3.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs612/collision/wrist3.stl

View File

@@ -0,0 +1,43 @@
kinematics:
shoulder:
x: 0
y: 0
z: 0.1930
roll: 0
pitch: 0
yaw: 0
upperarm:
x: 0
y: 0
z: 0
roll: 1.570796326589793
pitch: 0
yaw: 0
forearm:
x: -0.5520
y: 0
z: 0
roll: 0
pitch: 0
yaw: 0
wrist_1:
x: -0.4300
y: 0
z: 0.1775
roll: 0
pitch: 0
yaw: 0
wrist_2:
x: 0
y: -0.1180
z: 0
roll: 1.570796326589793
pitch: 0
yaw: 0
wrist_3:
x: 0
y: 0.1103
z: 0
roll: -1.570796326589793
pitch: 0
yaw: 0

View File

@@ -0,0 +1,61 @@
joint_limits:
shoulder_pan_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 330.0
max_position: !degrees 360.0
max_velocity: !degrees 120.0
min_position: !degrees -360.0
shoulder_lift_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 330.0
max_position: !degrees 360.0
max_velocity: !degrees 120.0
min_position: !degrees -360.0
elbow_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 150.0
max_position: !degrees 180.0
max_velocity: !degrees 180.0
min_position: !degrees -180.0
wrist_1_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 56.0
max_position: !degrees 360.0
max_velocity: !degrees 180.0
min_position: !degrees -360.0
wrist_2_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 56.0
max_position: !degrees 360.0
max_velocity: !degrees 180.0
min_position: !degrees -360.0
wrist_3_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 56.0
max_position: !degrees 360.0
max_velocity: !degrees 180.0
min_position: !degrees -360.0

View File

@@ -0,0 +1,99 @@
# Physical parameters
dh_parameters:
d1: 0.1930
a2: -0.5520
a3: -0.4300
d4: 0.1775
d5: 0.1180
d6: 0.1103
inertia_parameters:
base_mass: 0.94888 # base mass, base inertia, base cog might be incorrect
shoulder_mass: 6.83
upperarm_mass: 13.00
forearm_mass: 4.700
wrist_1_mass: 2.315
wrist_2_mass: 2.195
wrist_3_mass: 0.616
inertia:
base:
ixx: 0.0029607
ixy: -1.019E-06
ixz: 5.2685E-06
iyy: 0.0026222
iyz: -2.8951E-06
izz: 0.0039906
shoulder:
ixx: 0.039229834
ixy: -2.8388E-05
ixz: 3.9289E-05
iyy: 0.025077817
iyz: -0.000288247
izz: 0.03749924
upperarm:
ixx: 0.373432462
ixy: -5.5512E-05
ixz: -0.451785393
iyy: 1.696418762
iyz: -0.000133438
izz: 1.358657204
forearm:
ixx: 0.030213183
ixy: -8.368E-06
ixz: -0.056600087
iyy: 0.434775735
iyz: 1.585E-06
izz: 0.412836422
wrist_1:
ixx: 0.006091086
ixy: 1.256E-06
ixz: -4.067E-06
iyy: 0.004972529
iyz: -1.2709E-05
izz: 0.003307235
wrist_2:
ixx: 0.004639166
ixy: 1.311E-06
ixz: 3.829E-06
iyy: 0.003508643
iyz: 1.4183E-05
izz: 0.003130199
wrist_3:
ixx: 0.001695059
ixy: 1.27E-07
ixz: 1.9782E-05
iyy: 0.001713327
iyz: 7.7E-06
izz: 0.000570629
center_of_mass:
base_cog:
x: 5.6715E-05
y: -0.00010524
z: 0.065979
shoulder_cog:
x: 9.3E-05
y: -0.02697
z: -0.02115
upperarm_cog:
x: -0.2069
y: -4.4E-05
z: 0.16068
forearm_cog:
x: -0.2303
y: 1.5E-05
z: 0.06220
wrist_1_cog:
x: 1.0E-05
y: -0.0148
z: -0.01682
wrist_2_cog:
x: -1.3E-05
y: 0.015559
z: -0.011803
wrist_3_cog:
x: -0.001704
y: -0.000705
z: -0.039231

View File

@@ -0,0 +1,92 @@
mesh_files:
base:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs616/visual/base.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs616/collision/base.stl
shoulder:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs616/visual/shoulder.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs616/collision/shoulder.stl
upperarm:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs616/visual/upperarm.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs616/collision/upperarm.stl
mesh_files:
forearm:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs616/visual/forearm.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs616/collision/forearm.stl
wrist_1:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs616/visual/wrist1.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs616/collision/wrist1.stl
wrist_2:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs616/visual/wrist2.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs616/collision/wrist2.stl
wrist_3:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs616/visual/wrist3.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs616/collision/wrist3.stl

View File

@@ -0,0 +1,43 @@
kinematics:
shoulder:
x: 0
y: 0
z: 0.2350
roll: 0
pitch: 0
yaw: 0
upperarm:
x: 0
y: 0
z: 0
roll: 1.570796326589793
pitch: 0
yaw: 0
forearm:
x: -0.9000
y: 0
z: 0
roll: 0
pitch: 0
yaw: 0
wrist_1:
x: -0.7720
y: 0
z: 0.1725
roll: 0
pitch: 0
yaw: 0
wrist_2:
x: 0
y: -0.1280
z: 0
roll: 1.570796326589793
pitch: 0
yaw: 0
wrist_3:
x: 0
y: 0.1250
z: 0
roll: -1.570796326589793
pitch: 0
yaw: 0

View File

@@ -0,0 +1,61 @@
joint_limits:
shoulder_pan_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 730.0
max_position: !degrees 360.0
max_velocity: !degrees 120.0
min_position: !degrees -360.0
shoulder_lift_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 730.0
max_position: !degrees 360.0
max_velocity: !degrees 120.0
min_position: !degrees -360.0
elbow_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 430.0
max_position: !degrees 180.0
max_velocity: !degrees 150.0
min_position: !degrees -180.0
wrist_1_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 100.0
max_position: !degrees 360.0
max_velocity: !degrees 210.0
min_position: !degrees -360.0
wrist_2_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 100.0
max_position: !degrees 360.0
max_velocity: !degrees 210.0
min_position: !degrees -360.0
wrist_3_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 100.0
max_position: !degrees 360.0
max_velocity: !degrees 210.0
min_position: !degrees -360.0

View File

@@ -0,0 +1,99 @@
# Physical parameters
dh_parameters:
d1: 0.2350
a2: -0.9000
a3: -0.7720
d4: 0.1725
d5: 0.1280
d6: 0.1250
inertia_parameters:
base_mass: 1.5056 # base mass, base inertia, base cog might be incorrect
shoulder_mass: 17.04
upperarm_mass: 26.927
forearm_mass: 8.386
wrist_1_mass: 3.095
wrist_2_mass: 3.095
wrist_3_mass: 0.879
inertia:
base:
ixx: 0.0067829
ixy: 2.6762E-07
ixz: -2.569E-06
iyy: 0.0068523
iyz: 9.4263E-05
izz: 0.010044
shoulder:
ixx: 0.130294671
ixy: -8.271E-05
ixz: 0.000106701
iyy: 0.085215288
iyz: -0.000663345
izz: 0.113859158
upperarm:
ixx: 1.204318595
ixy: -0.000466936
ixz: -1.78878432
iyy: 8.073725654
iyz: -0.000305158
izz: 6.980457042
forearm:
ixx: 0.070042956
ixy: 9.0183E-05
ixz: -0.165661846
iyy: 2.160436707
iyz: 1.3854E-05
izz: 2.109199584
wrist_1:
ixx: 0.007958413
ixy: -3.024E-06
ixz: -5.734E-06
iyy: 0.006686348
iyz: -1.766E-05
izz: 0.004840671
wrist_2:
ixx: 0.007958413
ixy: -3.024E-06
ixz: 5.734E-06
iyy: 0.006686348
iyz: 1.766E-05
izz: 0.004840671
wrist_3:
ixx: 0.004065851
ixy: 1.5185E-05
ixz: -1.1453E-05
iyy: 0.004060372
iyz: 4.2152E-05
izz: 0.001170392
center_of_mass:
base_cog:
x: -2.4009E-05
y: 0.0011775
z: 0.076293
shoulder_cog:
x: 9.9E-05
y: -0.026311
z: -0.026723
upperarm_cog:
x: -0.323686
y: -3.9E-05
z: 0.200968
forearm_cog:
x: -0.376841
y: 1.5E-05
z: 0.070311
wrist_1_cog:
x: -3.7E-05
y: -0.01051
z: -0.014865
wrist_2_cog:
x: 3.7E-05
y: 0.01051
z: -0.014865
wrist_3_cog:
x: 0.000242
y: -0.001192
z: -0.050422

View File

@@ -0,0 +1,92 @@
mesh_files:
base:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs620/visual/base.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs620/collision/base.stl
shoulder:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs620/visual/shoulder.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs620/collision/shoulder.stl
upperarm:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs620/visual/upperarm.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs620/collision/upperarm.stl
mesh_files:
forearm:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs620/visual/forearm.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs620/collision/forearm.stl
wrist_1:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs620/visual/wrist1.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs620/collision/wrist1.stl
wrist_2:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs620/visual/wrist2.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs620/collision/wrist2.stl
wrist_3:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs620/visual/wrist3.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs620/collision/wrist3.stl

View File

@@ -0,0 +1,43 @@
kinematics:
shoulder:
x: 0
y: 0
z: 0.2350
roll: 0
pitch: 0
yaw: 0
upperarm:
x: 0
y: 0
z: 0
roll: 1.570796326589793
pitch: 0
yaw: 0
forearm:
x: -0.7500
y: 0
z: 0
roll: 0
pitch: 0
yaw: 0
wrist_1:
x: -0.6220
y: 0
z: 0.1725
roll: 0
pitch: 0
yaw: 0
wrist_2:
x: 0
y: -0.1280
z: 0
roll: 1.570796326589793
pitch: 0
yaw: 0
wrist_3:
x: 0
y: 0.1250
z: 0
roll: -1.570796326589793
pitch: 0
yaw: 0

View File

@@ -0,0 +1,61 @@
joint_limits:
shoulder_pan_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 730.0
max_position: !degrees 360.0
max_velocity: !degrees 120.0
min_position: !degrees -360.0
shoulder_lift_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 730.0
max_position: !degrees 360.0
max_velocity: !degrees 120.0
min_position: !degrees -360.0
elbow_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 430.0
max_position: !degrees 180.0
max_velocity: !degrees 150.0
min_position: !degrees -180.0
wrist_1_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 100.0
max_position: !degrees 360.0
max_velocity: !degrees 210.0
min_position: !degrees -360.0
wrist_2_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 100.0
max_position: !degrees 360.0
max_velocity: !degrees 210.0
min_position: !degrees -360.0
wrist_3_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 100.0
max_position: !degrees 360.0
max_velocity: !degrees 210.0
min_position: !degrees -360.0

View File

@@ -0,0 +1,99 @@
# Physical parameters
dh_parameters:
d1: 0.2350
a2: -0.7500
a3: -0.6220
d4: 0.1725
d5: 0.1280
d6: 0.1250
inertia_parameters:
base_mass: 1.50561968754018 # base mass, base inertia, base cog might be incorrect
shoulder_mass: 17.04
upperarm_mass: 26.543
forearm_mass: 7.816
wrist_1_mass: 3.095
wrist_2_mass: 3.095
wrist_3_mass: 0.879
inertia:
base:
ixx: 0.00678289120631133
ixy: 2.67618063769984E-07
ixz: -2.56895564177072E-06
iyy: 0.00685230321535615
iyz: 9.42628790478668E-05
izz: 0.0100437671447022
shoulder:
ixx: 0.13029
ixy: -8.271E-05
ixz: 0.0001067
iyy: 0.085215
iyz: -0.00066335
izz: 0.11386
upperarm:
ixx: 1.197
ixy: -0.00083272
ixz: -1.5396
iyy: 6.1117
iyz: -0.00015496
izz: 5.022
forearm:
ixx: 0.067797
ixy: 4.4997E-05
ixz: -0.12636
iyy: 1.3409
iyz: 1.45E-05
izz: 1.2908
wrist_1:
ixx: 0.0079584
ixy: -3.024E-06
ixz: 5.734E-06
iyy: 0.0066863
iyz: 1.766E-05
izz: 0.0048407
wrist_2:
ixx: 0.007958413
ixy: -3.024E-06
ixz: 5.734E-06
iyy: 0.006686348
iyz: 1.766E-05
izz: 0.004840671
wrist_3:
ixx: 0.004065851
ixy: 1.5185E-05
ixz: -1.1453E-05
iyy: 0.004060372
iyz: 4.2152E-05
izz: 0.001170392
center_of_mass:
base_cog:
x: -2.4008693014781E-05
y: 0.00117748953656619
z: 0.0762927770474629
shoulder_cog:
x: 9.9E-05
y: -0.026311
z: -0.026723
upperarm_cog:
x: -0.27762
y: -1.7E-05
z: 0.20184
forearm_cog:
x: -0.30259
y: 2.1E-05
z: 0.07237
wrist_1_cog:
x: -3.7E-05
y: -0.01051
z: -0.014865
wrist_2_cog:
x: 3.7E-05
y: 0.01051
z: -0.014865
wrist_3_cog:
x: 0.000242
y: -0.001192
z: -0.050422

View File

@@ -0,0 +1,92 @@
mesh_files:
base:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs625/visual/base.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs625/collision/base.stl
shoulder:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs625/visual/shoulder.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs625/collision/shoulder.stl
upperarm:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs625/visual/upperarm.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs625/collision/upperarm.stl
mesh_files:
forearm:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs625/visual/forearm.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs625/collision/forearm.stl
wrist_1:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs625/visual/wrist1.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs625/collision/wrist1.stl
wrist_2:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs625/visual/wrist2.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs625/collision/wrist2.stl
wrist_3:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs625/visual/wrist3.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs625/collision/wrist3.stl

View File

@@ -0,0 +1,43 @@
kinematics:
shoulder:
x: 0
y: 0
z: 0.1530
roll: 0
pitch: 0
yaw: 0
upperarm:
x: 0
y: 0
z: 0
roll: 1.570796326589793
pitch: 0
yaw: 0
forearm:
x: -0.2700
y: 0
z: 0
roll: 0
pitch: 0
yaw: 0
wrist_1:
x: -0.2575
y: 0
z: 0.1445
roll: 0
pitch: 0
yaw: 0
wrist_2:
x: 0
y: -0.0965
z: 0
roll: 1.570796326589793
pitch: 0
yaw: 0
wrist_3:
x: 0
y: 0.0920
z: 0
roll: -1.570796326589793
pitch: 0
yaw: 0

View File

@@ -0,0 +1,61 @@
joint_limits:
shoulder_pan_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 56.0
max_position: !degrees 360.0
max_velocity: !degrees 180.0
min_position: !degrees -360.0
shoulder_lift_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 56.0
max_position: !degrees 360.0
max_velocity: !degrees 180.0
min_position: !degrees -360.0
elbow_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 28.0
max_position: !degrees 180.0
max_velocity: !degrees 180.0
min_position: !degrees -180.0
wrist_1_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 12.0
max_position: !degrees 360.0
max_velocity: !degrees 360.0
min_position: !degrees -360.0
wrist_2_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 12.0
max_position: !degrees 360.0
max_velocity: !degrees 360.0
min_position: !degrees -360.0
wrist_3_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 12.0
max_position: !degrees 360.0
max_velocity: !degrees 360.0
min_position: !degrees -360.0

View File

@@ -0,0 +1,99 @@
# Physical parameters
dh_parameters:
d1: 0.1530
a2: -0.2700
a3: -0.2575
d4: 0.1445
d5: 0.0965
d6: 0.0920
inertia_parameters:
base_mass: 0.358193760044688 # base mass, base inertia, base cog might be incorrect
shoulder_mass: 3.095
upperarm_mass: 5.073
forearm_mass: 2.425
wrist_1_mass: 1.559
wrist_2_mass: 1.447
wrist_3_mass: 0.500
inertia:
base:
ixx: 0.000549739542527148
ixy: 8.03741216179988E-08
ixz: -9.14780809458034E-06
iyy: 0.000533024165382036
iyz: 3.46908903534662E-07
izz: 0.000655188839052244
shoulder:
ixx: 0.007958
ixy: 5.734E-06
ixz: 3.024E-06
iyy: 0.00484
iyz: -1.77E-05
izz: 0.006686
upperarm:
ixx: 0.074168
ixy: -7.5E-06
ixz: -0.065579
iyy: 0.21937
iyz: -2.19E-05
izz: 0.15104
forearm:
ixx: 0.005082
ixy: -2.7E-06
ixz: -0.0056236
iyy: 0.0924207
iyz: -1.726E-06
izz: 0.0897559
wrist_1:
ixx: 0.0045009
ixy: 1.96E-06
ixz: -2.646E-06
iyy: 0.0042164
iyz: -3.58E-07
izz: 0.0014538
wrist_2:
ixx: 0.0023787
ixy: 1.953E-06
ixz: 2.643E-06
iyy: 0.0020859
iyz: 5.584E-06
izz: 0.0013191
wrist_3:
ixx: 0.001431
ixy: -2.32E-07
ixz: 7.955E-06
iyy: 0.0014299
iyz: 1.266E-06
izz: 0.0003265
center_of_mass:
base_cog:
x: -0.000721181367009438
y: 1.78114684963572E-05
z: 0.0546249293265112
shoulder_cog:
x: 3.7E-05
y: -0.0149
z: -0.0105
upperarm_cog:
x: -0.11596
y: -2.6E-05
z: 0.1148
forearm_cog:
x: -0.1542
y: 1.4E-05
z: 0.0238
wrist_1_cog:
x: 1.3E-05
y: -0.00479
z: -0.02274
wrist_2_cog:
x: -1.4E-05
y: 0.0051
z: -0.0127
wrist_3_cog:
x: -0.000684
y: -0.000175
z: -0.0423

View File

@@ -0,0 +1,92 @@
mesh_files:
base:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs63/visual/base.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs63/collision/base.stl
shoulder:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs63/visual/shoulder.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs63/collision/shoulder.stl
upperarm:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs63/visual/upperarm.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs63/collision/upperarm.stl
mesh_files:
forearm:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs63/visual/forearm.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs63/collision/forearm.stl
wrist_1:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs63/visual/wrist1.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs63/collision/wrist1.stl
wrist_2:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs63/visual/wrist2.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs63/collision/wrist2.stl
wrist_3:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs63/visual/wrist3.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs63/collision/wrist3.stl

View File

@@ -0,0 +1,43 @@
kinematics:
shoulder:
x: 0
y: 0
z: 0.1625
roll: 0
pitch: 0
yaw: -0.16
upperarm:
x: 0
y: 0
z: 0
roll: 1.570796326589793
pitch: 0
yaw: 0
forearm:
x: -0.4270
y: 0
z: 0
roll: 0
pitch: 0
yaw: 0
wrist_1:
x: -0.3905
y: 0
z: 0.1475
roll: 0
pitch: 0
yaw: 0.04
wrist_2:
x: 0
y: -0.0965
z: 0
roll: 1.570796326589793
pitch: 0
yaw: 0
wrist_3:
x: 0
y: 0.0920
z: 0
roll: -1.570796326589793
pitch: -0.59
yaw: 0

View File

@@ -0,0 +1,61 @@
joint_limits:
shoulder_pan_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 150.0
max_position: !degrees 360.0
max_velocity: !degrees 180.0
min_position: !degrees -360.0
shoulder_lift_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 150.0
max_position: !degrees 360.0
max_velocity: !degrees 180.0
min_position: !degrees -360.0
elbow_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 150.0
max_position: !degrees 180.0
max_velocity: !degrees 180.0
min_position: !degrees -180.0
wrist_1_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 28.0
max_position: !degrees 360.0
max_velocity: !degrees 180.0
min_position: !degrees -360.0
wrist_2_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 28.0
max_position: !degrees 360.0
max_velocity: !degrees 180.0
min_position: !degrees -360.0
wrist_3_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 28.0
max_position: !degrees 360.0
max_velocity: !degrees 180.0
min_position: !degrees -360.0

View File

@@ -0,0 +1,99 @@
# Physical parameters
dh_parameters:
d1: 0.1625
a2: -0.4270
a3: -0.3905
d4: 0.1475
d5: 0.0965
d6: 0.0920
inertia_parameters:
base_mass: 0.57127 # base mass, base inertia, base cog might be incorrect
shoulder_mass: 4.521
upperarm_mass: 7.533
forearm_mass: 3.009
wrist_1_mass: 1.559
wrist_2_mass: 1.447
wrist_3_mass: 0.500
inertia:
base:
ixx: 0.0010759
ixy: 7.8337E-08
ixz: -1.3213E-05
iyy: 0.0010109
iyz: 4.5992E-07
izz: 0.001408
shoulder:
ixx: 0.014192
ixy: 1.7839E-05
ixz: -1.027E-06
iyy: 0.0091982
iyz: -4.6778E-05
izz: 0.012777
upperarm:
ixx: 0.13719
ixy: -7.5676E-05
ixz: -0.17551
iyy: 0.6614
iyz: 7.59E-06
izz: 0.53649
forearm:
ixx: 0.0087604
ixy: 1.7762E-05
ixz: -0.010765
iyy: 0.22281
iyz: -4.13E-07
izz: 0.2176
wrist_1:
ixx: 0.0045009
ixy: 1.961E-06
ixz: -2.646E-06
iyy: 0.0042164
iyz: -3.58E-07
izz: 0.0014539
wrist_2:
ixx: 0.0023787
ixy: 1.953E-06
ixz: 2.643E-06
iyy: 0.0020859
iyz: 5.584E-06
izz: 0.0013191
wrist_3:
ixx: 0.0014314
ixy: -2.32E-07
ixz: 7.955E-06
iyy: 0.0014299
iyz: 1.266E-06
izz: 0.0003265
center_of_mass:
base_cog:
x: -0.00060346
y: 1.4311E-05
z: 0.060221
shoulder_cog:
x: 2.2E-05
y: -0.016526
z: -0.014442
upperarm_cog:
x: -0.17828
y: 4.0E-06
z: 0.12803
forearm_cog:
x: -0.20416
y: -7.0E-06
z: 0.03064
wrist_1_cog:
x: 1.3E-05
y: -0.00479
z: -0.02274
wrist_2_cog:
x: -1.4E-05
y: 0.005107
z: -0.012702
wrist_3_cog:
x: -0.000684
y: -0.000175
z: -0.04234

View File

@@ -0,0 +1,92 @@
mesh_files:
base:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs66/visual/base.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs66/collision/base.stl
shoulder:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs66/visual/shoulder.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs66/collision/shoulder.stl
upperarm:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs66/visual/upperarm.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs66/collision/upperarm.stl
mesh_files:
forearm:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs66/visual/forearm.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs66/collision/forearm.stl
wrist_1:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs66/visual/wrist1.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs66/collision/wrist1.stl
wrist_2:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs66/visual/wrist2.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs66/collision/wrist2.stl
wrist_3:
visual:
mesh:
package: eli_cs_robot_description
path: meshes/cs66/visual/wrist3.dae
material:
name: "LightGrey"
color: "0.7 0.7 0.7 1.0"
collision:
mesh:
package: eli_cs_robot_description
path: meshes/cs66/collision/wrist3.stl

View File

@@ -0,0 +1,6 @@
shoulder_pan_joint: 0.0
shoulder_lift_joint: -1.57
elbow_joint: 0.0
wrist_1_joint: -1.57
wrist_2_joint: 1.57
wrist_3_joint: 0.0

View File

@@ -0,0 +1,159 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://wiki.ros.org/xacro" name="elite_robot">
<xacro:macro name="elite_robot" params="mesh_path:='' parent_link:='' station_name:='' device_name:='' cs_type:='cs66' fake_dev:='true' x:=0 y:=0 z:=0 rx:=0 ry:=0 r:=0" >
<!-- robot name parameter -->
<xacro:arg name="name" default="cs"/>
<!-- import main macro -->
<xacro:include filename="${mesh_path}/devices/elite_robot/urdf/cs_macro.xacro"/>
<!-- possible 'cs_type' values: cs63, cs66, cs612, cs616, cs620, cs625 -->
<!-- the default value should raise an error in case this was called without defining the type -->
<xacro:arg name="cs_type" default="${cs_type}"/>
<!-- parameters -->
<xacro:arg name="tf_prefix" default="${station_name}${device_name}" />
<xacro:arg name="joint_limit_params" default="${mesh_path}/devices/elite_robot/config/$(arg cs_type)/joint_limits.yaml"/>
<xacro:arg name="kinematics_params" default="${mesh_path}/devices/elite_robot/config/$(arg cs_type)/default_kinematics.yaml"/>
<xacro:arg name="physical_params" default="${mesh_path}/devices/elite_robot/config/$(arg cs_type)/physical_parameters.yaml"/>
<xacro:arg name="visual_params" default="${mesh_path}/devices/elite_robot/config/$(arg cs_type)/visual_parameters.yaml"/>
<xacro:arg name="transmission_hw_interface" default=""/>
<xacro:arg name="safety_limits" default="false"/>
<xacro:arg name="safety_pos_margin" default="0.15"/>
<xacro:arg name="safety_k_position" default="20"/>
<!-- ros2_control related parameters -->
<xacro:arg name="headless_mode" default="false" />
<xacro:arg name="robot_ip" default="0.0.0.0" />
<xacro:arg name="script_filename" default=""/>
<xacro:arg name="output_recipe_filename" default=""/>
<xacro:arg name="input_recipe_filename" default=""/>
<xacro:arg name="local_ip" default="0.0.0.0"/>
<xacro:arg name="script_command_port" default="50004"/>
<xacro:arg name="reverse_port" default="50001"/>
<xacro:arg name="script_sender_port" default="50002"/>
<xacro:arg name="trajectory_port" default="50003"/>
<!-- tool communication related parameters-->
<xacro:arg name="use_tool_communication" default="false" />
<xacro:arg name="tool_voltage" default="0" />
<xacro:arg name="tool_parity" default="0" />
<xacro:arg name="tool_baud_rate" default="115200" />
<xacro:arg name="tool_stop_bits" default="1" />
<xacro:arg name="tool_tcp_port" default="54321" />
<!-- Simulation parameters -->
<xacro:arg name="use_fake_hardware" default="${fake_dev}" />
<xacro:arg name="fake_sensor_commands" default="${fake_dev}" />
<xacro:arg name="sim_gazebo" default="false" />
<xacro:arg name="sim_ignition" default="false" />
<xacro:arg name="simulation_controllers" default="" />
<!-- initial position for simulations (Fake Hardware, Gazebo, Ignition) -->
<xacro:arg name="initial_positions_file" default="${mesh_path}/devices/elite_robot/config/initial_positions.yaml"/>
<!-- convert to property to use substitution in function -->
<xacro:property name="initial_positions_file" default="$(arg initial_positions_file)"/>
<joint name="${station_name}${device_name}base_link_joint" type="fixed">
<origin xyz="${x} ${y} ${z}" rpy="${rx} ${ry} ${r}" />
<parent link="${parent_link}"/>
<child link="${station_name}${device_name}device_link"/>
<axis xyz="0 0 0"/>
</joint>
<link name="${station_name}${device_name}device_link"/>
<!-- arm -->
<xacro:cs_robot
name="$(arg name)"
tf_prefix="$(arg tf_prefix)"
parent="${station_name}${device_name}device_link"
joint_limits_parameters_file="$(arg joint_limit_params)"
kinematics_parameters_file="$(arg kinematics_params)"
physical_parameters_file="$(arg physical_params)"
visual_parameters_file="$(arg visual_params)"
transmission_hw_interface="$(arg transmission_hw_interface)"
safety_limits="$(arg safety_limits)"
safety_pos_margin="$(arg safety_pos_margin)"
safety_k_position="$(arg safety_k_position)"
use_fake_hardware="$(arg use_fake_hardware)"
fake_sensor_commands="$(arg fake_sensor_commands)"
sim_gazebo="$(arg sim_gazebo)"
sim_ignition="$(arg sim_ignition)"
headless_mode="$(arg headless_mode)"
initial_positions="${xacro.load_yaml(initial_positions_file)}"
use_tool_communication="$(arg use_tool_communication)"
tool_voltage="$(arg tool_voltage)"
tool_parity="$(arg tool_parity)"
tool_baud_rate="$(arg tool_baud_rate)"
tool_stop_bits="$(arg tool_stop_bits)"
tool_tcp_port="$(arg tool_tcp_port)"
robot_ip="$(arg robot_ip)"
script_filename="$(arg script_filename)"
output_recipe_filename="$(arg output_recipe_filename)"
input_recipe_filename="$(arg input_recipe_filename)"
local_ip="$(arg local_ip)"
script_command_port="$(arg script_command_port)"
reverse_port="$(arg reverse_port)"
script_sender_port="$(arg script_sender_port)"
trajectory_port="$(arg trajectory_port)"
mesh_path="${mesh_path}"
>
<origin xyz="0 0 0" rpy="0 0 0" /> <!-- position robot in the world -->
</xacro:cs_robot>
<link name="${station_name}${device_name}gripper">
<inertial>
<origin
xyz="-2.76718112539598E-05 0.0255270141715087 0.0270559267296449"
rpy="0 0 0" />
<mass
value="0.2571510360664" />
<inertia
ixx="0.000164806957167171"
ixy="1.52519074989277E-08"
ixz="9.6332716899636E-08"
iyy="8.72759579414916E-05"
iyz="-5.40735277087457E-07"
izz="0.000196871100878503" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="file://${mesh_path}/devices/elite_robot/meshes/gripper.STL" />
</geometry>
<material
name="">
<color
rgba="0.749019607843137 0.749019607843137 0.749019607843137 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="file://${mesh_path}/devices/elite_robot/meshes/gripper.STL" />
</geometry>
</collision>
</link>
<joint name="${station_name}${device_name}gripper_joint"
type="fixed">
<origin
xyz="0 0 -0.003"
rpy="0 0 -1.570796326589793" />
<parent
link="${station_name}${device_name}tool0" />
<child
link="${station_name}${device_name}gripper" />
<axis
xyz="0 0 0" />
</joint>
</xacro:macro>
</robot>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More