feat(gemini2): add OrbbecSDK_ROS2/
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
project(orbbec_description)
|
||||
|
||||
find_package(ament_cmake REQUIRED)
|
||||
|
||||
# Install files
|
||||
install(DIRECTORY
|
||||
launch
|
||||
meshes
|
||||
urdf
|
||||
rviz
|
||||
DESTINATION share/${PROJECT_NAME})
|
||||
|
||||
ament_package()
|
||||
@@ -0,0 +1,33 @@
|
||||
# Copyright 2023 Intel Corporation. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import os
|
||||
import xacro
|
||||
import tempfile
|
||||
|
||||
def to_urdf(xacro_path, parameters=None):
|
||||
"""Convert the given xacro file to URDF file.
|
||||
* xacro_path -- the path to the xacro file
|
||||
* parameters -- to be used when xacro file is parsed.
|
||||
"""
|
||||
with tempfile.NamedTemporaryFile(prefix="%s_" % os.path.basename(xacro_path), delete=False) as xacro_file:
|
||||
urdf_path = xacro_file.name
|
||||
|
||||
# open and process file
|
||||
doc = xacro.process_file(xacro_path, mappings=parameters)
|
||||
# open the output file
|
||||
with open(urdf_path, 'w') as urdf_file:
|
||||
urdf_file.write(doc.toprettyxml(indent=' '))
|
||||
|
||||
return urdf_path
|
||||
@@ -0,0 +1,55 @@
|
||||
# Copyright 2023 Intel Corporation. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# /* Author: Doron Hirshberg */
|
||||
import os
|
||||
import launch
|
||||
from launch_ros.actions import Node
|
||||
import launch.events
|
||||
from ament_index_python.packages import get_package_share_directory
|
||||
import sys
|
||||
sys.path.append(os.path.dirname(os.path.realpath(__file__)))
|
||||
from launch_utils import to_urdf
|
||||
|
||||
|
||||
def generate_launch_description():
|
||||
available_urdf_files = [f for f in os.listdir(os.path.join(get_package_share_directory('orbbec_description'), 'urdf'))]
|
||||
params = dict([aa for aa in [aa.split(':=') for aa in sys.argv] if len(aa) == 2])
|
||||
if ('model' not in params or params['model'] not in available_urdf_files):
|
||||
print('USAGE:')
|
||||
print('ros2 launch orbbec_description view_model.launch.py model:=<model>')
|
||||
print('Available argumants for <model> are as follows:')
|
||||
print('\n'.join(available_urdf_files))
|
||||
return launch.LaunchDescription()
|
||||
|
||||
rviz_config_dir = os.path.join(get_package_share_directory('orbbec_description'), 'rviz', 'urdf.rviz')
|
||||
xacro_path = os.path.join(get_package_share_directory('orbbec_description'), 'urdf', params['model'])
|
||||
urdf = to_urdf(xacro_path, {'use_nominal_extrinsics': 'true', 'add_plug': 'true'})
|
||||
rviz_node = Node(
|
||||
package='rviz2',
|
||||
executable='rviz2',
|
||||
name='rviz2',
|
||||
output='screen',
|
||||
arguments=['-d', rviz_config_dir],
|
||||
parameters=[{'use_sim_time': False}]
|
||||
)
|
||||
model_node = Node(
|
||||
name='model_node',
|
||||
package='robot_state_publisher',
|
||||
executable='robot_state_publisher',
|
||||
namespace='',
|
||||
output='screen',
|
||||
arguments=[urdf]
|
||||
)
|
||||
return launch.LaunchDescription([rviz_node, model_node])
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0"?>
|
||||
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
|
||||
<package format="3">
|
||||
<name>orbbec_description</name>
|
||||
<version>0.0.0</version>
|
||||
<description>TODO: Package description</description>
|
||||
<maintainer email="jian.dong@pobox.com">toosimple</maintainer>
|
||||
<license>Apache-2.0</license>
|
||||
|
||||
<buildtool_depend>ament_cmake</buildtool_depend>
|
||||
|
||||
<test_depend>ament_lint_auto</test_depend>
|
||||
<test_depend>ament_lint_common</test_depend>
|
||||
|
||||
<export>
|
||||
<build_type>ament_cmake</build_type>
|
||||
</export>
|
||||
</package>
|
||||
@@ -0,0 +1,216 @@
|
||||
Panels:
|
||||
- Class: rviz_common/Displays
|
||||
Help Height: 78
|
||||
Name: Displays
|
||||
Property Tree Widget:
|
||||
Expanded:
|
||||
- /Global Options1
|
||||
- /Status1
|
||||
- /Grid1
|
||||
- /RobotModel1
|
||||
- /RobotModel1/Description Topic1
|
||||
Splitter Ratio: 0.5
|
||||
Tree Height: 1079
|
||||
- Class: rviz_common/Selection
|
||||
Name: Selection
|
||||
- Class: rviz_common/Tool Properties
|
||||
Expanded:
|
||||
- /2D Goal Pose1
|
||||
- /Publish Point1
|
||||
Name: Tool Properties
|
||||
Splitter Ratio: 0.5886790156364441
|
||||
- Class: rviz_common/Views
|
||||
Expanded:
|
||||
- /Current View1
|
||||
Name: Views
|
||||
Splitter Ratio: 0.5
|
||||
- Class: rviz_common/Time
|
||||
Experimental: false
|
||||
Name: Time
|
||||
SyncMode: 0
|
||||
SyncSource: ""
|
||||
Visualization Manager:
|
||||
Class: ""
|
||||
Displays:
|
||||
- Alpha: 0.5
|
||||
Cell Size: 1
|
||||
Class: rviz_default_plugins/Grid
|
||||
Color: 160; 160; 164
|
||||
Enabled: true
|
||||
Line Style:
|
||||
Line Width: 0.029999999329447746
|
||||
Value: Lines
|
||||
Name: Grid
|
||||
Normal Cell Count: 0
|
||||
Offset:
|
||||
X: 0
|
||||
Y: 0
|
||||
Z: 0
|
||||
Plane: XY
|
||||
Plane Cell Count: 10
|
||||
Reference Frame: <Fixed Frame>
|
||||
Value: true
|
||||
- Alpha: 1
|
||||
Class: rviz_default_plugins/RobotModel
|
||||
Collision Enabled: false
|
||||
Description File: ""
|
||||
Description Source: Topic
|
||||
Description Topic:
|
||||
Depth: 5
|
||||
Durability Policy: Volatile
|
||||
History Policy: Keep Last
|
||||
Reliability Policy: Reliable
|
||||
Value: /robot_description
|
||||
Enabled: true
|
||||
Links:
|
||||
All Links Enabled: true
|
||||
Expand Joint Details: false
|
||||
Expand Link Details: false
|
||||
Expand Tree: false
|
||||
Link Tree Style: Links in Alphabetic Order
|
||||
base_link:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
camera_bottom_screw_frame:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
Value: true
|
||||
camera_color_frame:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
Value: true
|
||||
camera_color_optical_frame:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
Value: true
|
||||
camera_depth_frame:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
Value: true
|
||||
camera_depth_optical_frame:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
Value: true
|
||||
camera_infra2_frame:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
Value: true
|
||||
camera_infra2_optical_frame:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
Value: true
|
||||
camera_infra_1_frame:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
Value: true
|
||||
camera_infra_1_optical_frame:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
Value: true
|
||||
camera_link:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
Value: true
|
||||
Mass Properties:
|
||||
Inertia: false
|
||||
Mass: false
|
||||
Name: RobotModel
|
||||
TF Prefix: ""
|
||||
Update Interval: 0
|
||||
Value: true
|
||||
Visual Enabled: true
|
||||
Enabled: true
|
||||
Global Options:
|
||||
Background Color: 48; 48; 48
|
||||
Fixed Frame: base_link
|
||||
Frame Rate: 30
|
||||
Name: root
|
||||
Tools:
|
||||
- Class: rviz_default_plugins/Interact
|
||||
Hide Inactive Objects: true
|
||||
- Class: rviz_default_plugins/MoveCamera
|
||||
- Class: rviz_default_plugins/Select
|
||||
- Class: rviz_default_plugins/FocusCamera
|
||||
- Class: rviz_default_plugins/Measure
|
||||
Line color: 128; 128; 0
|
||||
- Class: rviz_default_plugins/SetInitialPose
|
||||
Covariance x: 0.25
|
||||
Covariance y: 0.25
|
||||
Covariance yaw: 0.06853891909122467
|
||||
Topic:
|
||||
Depth: 5
|
||||
Durability Policy: Volatile
|
||||
History Policy: Keep Last
|
||||
Reliability Policy: Reliable
|
||||
Value: /initialpose
|
||||
- Class: rviz_default_plugins/SetGoal
|
||||
Topic:
|
||||
Depth: 5
|
||||
Durability Policy: Volatile
|
||||
History Policy: Keep Last
|
||||
Reliability Policy: Reliable
|
||||
Value: /goal_pose
|
||||
- Class: rviz_default_plugins/PublishPoint
|
||||
Single click: true
|
||||
Topic:
|
||||
Depth: 5
|
||||
Durability Policy: Volatile
|
||||
History Policy: Keep Last
|
||||
Reliability Policy: Reliable
|
||||
Value: /clicked_point
|
||||
Transformation:
|
||||
Current:
|
||||
Class: rviz_default_plugins/TF
|
||||
Value: true
|
||||
Views:
|
||||
Current:
|
||||
Class: rviz_default_plugins/Orbit
|
||||
Distance: 0.20926910638809204
|
||||
Enable Stereo Rendering:
|
||||
Stereo Eye Separation: 0.05999999865889549
|
||||
Stereo Focal Distance: 1
|
||||
Swap Stereo Eyes: false
|
||||
Value: false
|
||||
Focal Point:
|
||||
X: 0
|
||||
Y: 0
|
||||
Z: 0
|
||||
Focal Shape Fixed Size: true
|
||||
Focal Shape Size: 0.05000000074505806
|
||||
Invert Z Axis: false
|
||||
Name: Current View
|
||||
Near Clip Distance: 0.009999999776482582
|
||||
Pitch: 0.08039925247430801
|
||||
Target Frame: <Fixed Frame>
|
||||
Value: Orbit (rviz)
|
||||
Yaw: 0.08857899904251099
|
||||
Saved: ~
|
||||
Window Geometry:
|
||||
Displays:
|
||||
collapsed: false
|
||||
Height: 1376
|
||||
Hide Left Dock: false
|
||||
Hide Right Dock: false
|
||||
QMainWindow State: 000000ff00000000fd000000040000000000000207000004c2fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000004c2000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000004c2fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003d000004c2000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000009b80000003efc0100000002fb0000000800540069006d00650100000000000009b8000002eb00fffffffb0000000800540069006d0065010000000000000450000000000000000000000696000004c200000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
|
||||
Selection:
|
||||
collapsed: false
|
||||
Time:
|
||||
collapsed: false
|
||||
Tool Properties:
|
||||
collapsed: false
|
||||
Views:
|
||||
collapsed: false
|
||||
Width: 2488
|
||||
X: 72
|
||||
Y: 27
|
||||
@@ -0,0 +1,325 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- This URDF was automatically created by SolidWorks to URDF Exporter! Originally created by
|
||||
Stephen Brawner (brawner@gmail.com)
|
||||
Commit Version: 1.6.0-4-g7f85cfe Build Version: 1.6.7995.38578
|
||||
For more information, please see http://wiki.ros.org/sw_urdf_exporter -->
|
||||
<robot xmlns:xacro="http://ros.org/wiki/xacro" name="gemini_335_336">
|
||||
<xacro:property name="mesh_path" value="package://orbbec_description/meshes/gemini335_336/" />
|
||||
|
||||
<link name="camera_link">
|
||||
<inertial>
|
||||
<origin xyz="0.00277269933215555 -1.06084680351007E-05 0.012801025085723" rpy="0 0 0" />
|
||||
<mass value="0.0186143499064346" />
|
||||
<inertia ixx="1.38922229644605E-05" ixy="-4.74617876641156E-09"
|
||||
ixz="1.99175628166615E-08"
|
||||
iyy="1.70686808598814E-06" iyz="-7.18717290327325E-09" izz="1.31766831843134E-05" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}camera_link.STL" />
|
||||
</geometry>
|
||||
<material name="">
|
||||
<color rgba="1 1 1 1" />
|
||||
</material>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}camera_link.STL" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
<link name="camera_bottom_screw_frame">
|
||||
<inertial>
|
||||
<origin xyz="0.00255168206289301 -0.00123934714960528 0.0118889875786098" rpy="0 0 0" />
|
||||
<mass value="0.00564476880678651" />
|
||||
<inertia ixx="3.07690693820862E-06" ixy="-1.85045956307764E-08"
|
||||
ixz="-9.2792327175816E-09"
|
||||
iyy="2.27632852811487E-07" iyz="1.65233162864392E-08" izz="2.93985735090777E-06" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}camera_bottom_screw_frame.STL" />
|
||||
</geometry>
|
||||
<material name="">
|
||||
<color rgba="0.792156862745098 0.819607843137255 0.933333333333333 1" />
|
||||
</material>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}camera_bottom_screw_frame.STL" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
<joint name="camera_bottom_screw_frame_joint" type="fixed">
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<parent link="camera_link" />
|
||||
<child link="camera_bottom_screw_frame" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
|
||||
<link name="camera_infra_1_frame">
|
||||
<inertial>
|
||||
<origin xyz="-0.00158020887627678 -1.52683853303637E-08 -1.4860800305164E-07"
|
||||
rpy="0 0 0" />
|
||||
<mass value="0.000453168790516429" />
|
||||
<inertia ixx="4.34108781911687E-09" ixy="-3.69655517007001E-13"
|
||||
ixz="-1.45486421873185E-13"
|
||||
iyy="4.84012226840139E-09" iyz="1.92888940614786E-14" izz="4.84044260907388E-09" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}camera_infra_1_frame.STL" />
|
||||
</geometry>
|
||||
<material name="">
|
||||
<color rgba="0.501960784313725 0.250980392156863 0.250980392156863 1" />
|
||||
</material>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}camera_infra_1_frame.STL" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
<joint name="camera_infra_1_joint" type="fixed">
|
||||
<origin xyz="0.01587 -0.025 0.0125" rpy="0 0 0" />
|
||||
<parent link="camera_bottom_screw_frame" />
|
||||
<child link="camera_infra_1_frame" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
|
||||
<link name="camera_infra_1_optical_frame">
|
||||
<inertial>
|
||||
<origin xyz="1.52683853338331E-08 1.48608003051636E-07 -0.00158020887627678" rpy="0 0 0" />
|
||||
<mass value="0.000453168790516429" />
|
||||
<inertia ixx="4.84012226840139E-09" ixy="1.92888940614797E-14"
|
||||
ixz="3.69655517006993E-13"
|
||||
iyy="4.84044260907388E-09" iyz="1.45486421873192E-13" izz="4.34108781911687E-09" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}camera_infra_1_optical_frame.STL" />
|
||||
</geometry>
|
||||
<material name="">
|
||||
<color rgba="0.501960784313725 0.250980392156863 0.250980392156863 1" />
|
||||
</material>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}camera_infra_1_optical_frame.STL" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
<joint name="camera_infra_1_optical_joint" type="fixed">
|
||||
<origin xyz="0.01587 -0.025 0.0125" rpy="-1.5707963267949 0 -1.5707963267949" />
|
||||
<parent link="camera_bottom_screw_frame" />
|
||||
<child link="camera_infra_1_optical_frame" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
|
||||
<link name="camera_infra2_frame">
|
||||
<inertial>
|
||||
<origin xyz="-0.00158020887627678 -1.52683853303637E-08 -1.48608003050581E-07"
|
||||
rpy="0 0 0" />
|
||||
<mass value="0.000453168790516429" />
|
||||
<inertia ixx="4.34108781911687E-09" ixy="-3.69655517007898E-13"
|
||||
ixz="-1.45486421873762E-13"
|
||||
iyy="4.84012226840139E-09" iyz="1.92888940594506E-14" izz="4.84044260907389E-09" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}camera_infra2_frame.STL" />
|
||||
</geometry>
|
||||
<material name="">
|
||||
<color rgba="0.501960784313725 0.250980392156863 0.250980392156863 1" />
|
||||
</material>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}camera_infra2_frame.STL" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
<joint name="camera_infra2_joint" type="fixed">
|
||||
<origin xyz="0.01587 0.025 0.0125" rpy="0 0 0" />
|
||||
<parent link="camera_bottom_screw_frame" />
|
||||
<child link="camera_infra2_frame" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
|
||||
<link name="camera_infra2_optical_frame">
|
||||
<inertial>
|
||||
<origin xyz="1.52683853268942E-08 1.4860800305058E-07 -0.00158020887627678" rpy="0 0 0" />
|
||||
<mass value="0.000453168790516429" />
|
||||
<inertia ixx="4.84012226840139E-09" ixy="1.92888940594538E-14"
|
||||
ixz="3.69655517007897E-13"
|
||||
iyy="4.84044260907389E-09" iyz="1.45486421873764E-13" izz="4.34108781911687E-09" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}camera_infra2_optical_frame.STL" />
|
||||
</geometry>
|
||||
<material name="">
|
||||
<color rgba="0.501960784313725 0.250980392156863 0.250980392156863 1" />
|
||||
</material>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}camera_infra2_optical_frame.STL" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
<joint name="camera_infra2_optical_joint" type="fixed">
|
||||
<origin xyz="0.01587 0.025 0.0125" rpy="-1.5707963267949 0 -1.5707963267949" />
|
||||
<parent link="camera_bottom_screw_frame" />
|
||||
<child link="camera_infra2_optical_frame" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
|
||||
<link name="camera_color_frame">
|
||||
<inertial>
|
||||
<origin xyz="-0.00177079701156752 -2.20101367029782E-07 2.09893364599916E-07"
|
||||
rpy="0 0 0" />
|
||||
<mass value="0.000139779365329478" />
|
||||
<inertia ixx="6.69130695410276E-10" ixy="-1.53742421247628E-13"
|
||||
ixz="-2.28137695085953E-14"
|
||||
iyy="6.11277085561398E-10" iyz="4.18921196289284E-14" izz="6.11078036871936E-10" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}camera_color_frame.STL" />
|
||||
</geometry>
|
||||
<material name="">
|
||||
<color rgba="0.501960784313725 0.250980392156863 0.250980392156863 1" />
|
||||
</material>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}camera_color_frame.STL" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
<joint name="camera_color_joint" type="fixed">
|
||||
<origin xyz="0.017533 0.010995 0.012505" rpy="0 0 0" />
|
||||
<parent link="camera_bottom_screw_frame" />
|
||||
<child link="camera_color_frame" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
|
||||
<link name="camera_color_optical_frame">
|
||||
<inertial>
|
||||
<origin xyz="2.20101367029782E-07 -2.09893364599916E-07 -0.00177079701156752"
|
||||
rpy="0 0 0" />
|
||||
<mass value="0.000139779365329478" />
|
||||
<inertia ixx="6.11277085561398E-10" ixy="4.18921196289284E-14"
|
||||
ixz="1.53742421247628E-13"
|
||||
iyy="6.11078036871936E-10" iyz="2.28137695085953E-14" izz="6.69130695410276E-10" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}camera_color_optical_frame.STL" />
|
||||
</geometry>
|
||||
<material name="">
|
||||
<color rgba="0.501960784313725 0.250980392156863 0.250980392156863 1" />
|
||||
</material>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}camera_color_optical_frame.STL" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
<joint name="camera_color_optical_joint" type="fixed">
|
||||
<origin xyz="0.017533 0.010995 0.012505" rpy="-1.5707963267949 0 -1.5707963267949" />
|
||||
<parent link="camera_bottom_screw_frame" />
|
||||
<child link="camera_color_optical_frame" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
|
||||
<link name="camera_depth_frame">
|
||||
<inertial>
|
||||
<origin xyz="-0.00158020887627678 -1.52683853338331E-08 -1.48608003051662E-07"
|
||||
rpy="0 0 0" />
|
||||
<mass value="0.000453168790516429" />
|
||||
<inertia ixx="4.34108781911687E-09" ixy="-3.69655517006982E-13"
|
||||
ixz="-1.45486421873185E-13"
|
||||
iyy="4.84012226840139E-09" iyz="1.92888940614707E-14" izz="4.84044260907388E-09" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}camera_depth_frame.STL" />
|
||||
</geometry>
|
||||
<material name="">
|
||||
<color rgba="0.501960784313725 0.250980392156863 0.250980392156863 1" />
|
||||
</material>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}camera_depth_frame.STL" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
<joint name="camera_depth_joint" type="fixed">
|
||||
<origin xyz="0.01587 -0.025 0.0125" rpy="0 0 0" />
|
||||
<parent link="camera_bottom_screw_frame" />
|
||||
<child link="camera_depth_frame" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
|
||||
<link name="camera_depth_optical_frame">
|
||||
<inertial>
|
||||
<origin xyz="1.52683853338331E-08 1.4860800305165E-07 -0.00158020887627678" rpy="0 0 0" />
|
||||
<mass value="0.000453168790516429" />
|
||||
<inertia ixx="4.84012226840139E-09" ixy="1.9288894061467E-14" ixz="3.69655517006976E-13"
|
||||
iyy="4.84044260907388E-09" iyz="1.454864218732E-13" izz="4.34108781911687E-09" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}camera_depth_optical_frame.STL" />
|
||||
</geometry>
|
||||
<material name="">
|
||||
<color rgba="0.501960784313725 0.250980392156863 0.250980392156863 1" />
|
||||
</material>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}camera_depth_optical_frame.STL" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
<joint name="camera_depth_optical_joint" type="fixed">
|
||||
<origin xyz="0.01587 -0.025 0.0125" rpy="-1.5707963267949 0 -1.5707963267949" />
|
||||
<parent link="camera_bottom_screw_frame" />
|
||||
<child link="camera_depth_optical_frame" />
|
||||
<axis xyz="0 0 0" />
|
||||
</joint>
|
||||
</robot>
|
||||
@@ -0,0 +1,126 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot name="femto_bolt" xmlns:xacro="http://wiki.ros.org/xacro">
|
||||
|
||||
<!--
|
||||
This is the URDF model for the Orbbec Femto Bolt camera
|
||||
-->
|
||||
|
||||
<!-- Include files -->
|
||||
|
||||
<!-- Properties -->
|
||||
<xacro:property name="M_PI" value="3.1415926535897931" />
|
||||
|
||||
<!-- Dimensions from the provided specifications -->
|
||||
<xacro:property name="cam_width" value="0.1153"/>
|
||||
<xacro:property name="cam_height" value="0.06495"/>
|
||||
<xacro:property name="cam_depth" value="0.04026"/>
|
||||
<xacro:property name="mesh_path" value="package://orbbec_description/meshes/femto_bolt/" />
|
||||
|
||||
<!-- The following values are approximate but the camera node
|
||||
publishes TF values with actual calibrated camera extrinsic values -->
|
||||
<xacro:property name="base_link_to_link_x" value="0.03645"/>
|
||||
<xacro:property name="base_link_to_link_y" value="0.00198"/>
|
||||
<xacro:property name="base_link_to_link_z" value="0.021"/>
|
||||
<xacro:property name="depth_to_ir_offset" value="0.0"/>
|
||||
<xacro:property name="camera_link_to_depth_rotation_roll" value="-0.0063718"/>
|
||||
<xacro:property name="camera_link_to_depth_rotation_pitch" value="0.1061316"/>
|
||||
<xacro:property name="camera_link_to_depth_rotation_yaw" value="0.000231"/>
|
||||
<xacro:property name="depth_to_color_offset_x" value="-0.0021445322036743163"/>
|
||||
<xacro:property name="depth_to_color_offset_y" value="-0.03267627716064453"/>
|
||||
<xacro:property name="depth_to_color_offset_z" value="-0.0010942233800888062"/>
|
||||
<xacro:property name="depth_to_color_rotation_roll" value="0.006371800289866152"/>
|
||||
<xacro:property name="depth_to_color_rotation_pitch" value="-0.10613163835054795"/>
|
||||
<xacro:property name="depth_to_color_rotation_yaw" value="-0.00023102465978322808"/>
|
||||
|
||||
<xacro:macro name="femto_bolt" params="prefix parent *origin use_nominal_extrinsics:=true">
|
||||
|
||||
<!-- camera with origin at bottom screw mount -->
|
||||
<joint name="${prefix}_base_joint" type="fixed">
|
||||
<xacro:insert_block name="origin" />
|
||||
<parent link="${parent}"/>
|
||||
<child link="${prefix}_base_link" />
|
||||
</joint>
|
||||
|
||||
<link name="${prefix}_base_link" >
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}femto_bolt.stl" />
|
||||
</geometry>
|
||||
<material name="">
|
||||
<color rgba="0.792156862745098 0.819607843137255 0.933333333333333 1" />
|
||||
</material>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz="0 0 0" rpy="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="${mesh_path}femto_bolt.stl" />
|
||||
</geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<!-- The following are not reliable values, and should not be used for modeling -->
|
||||
<mass value="0.2"/>
|
||||
<origin xyz="0 0 0" rpy="0 0 0"/>
|
||||
<inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
<!-- Camera Link -->
|
||||
<joint name="${prefix}_link_joint" type="fixed">
|
||||
<origin xyz="${base_link_to_link_x} ${base_link_to_link_y} ${base_link_to_link_z}" rpy="0 0 0"/>
|
||||
<parent link="${prefix}_base_link"/>
|
||||
<child link="${prefix}_link"/>
|
||||
</joint>
|
||||
|
||||
<link name="${prefix}_link" />
|
||||
|
||||
<!-- Use the nominal extrinsics between camera frames if the calibrated extrinsics aren't being published. e.g. running the device in simulation -->
|
||||
<xacro:if value="${use_nominal_extrinsics}">
|
||||
<!-- Depth Camera Frame -->
|
||||
<joint name="${prefix}_depth_joint" type="fixed">
|
||||
<origin xyz="0 0 0" rpy="${camera_link_to_depth_rotation_roll} ${camera_link_to_depth_rotation_pitch} ${camera_link_to_depth_rotation_yaw}"/>
|
||||
<parent link="${prefix}_link"/>
|
||||
<child link="${prefix}_depth_frame" />
|
||||
</joint>
|
||||
<link name="${prefix}_depth_frame"/>
|
||||
|
||||
<joint name="${prefix}_depth_optical_joint" type="fixed">
|
||||
<origin xyz="0 0 0" rpy="${-M_PI/2} 0 ${-M_PI/2}" />
|
||||
<parent link="${prefix}_depth_frame" />
|
||||
<child link="${prefix}_depth_optical_frame" />
|
||||
</joint>
|
||||
<link name="${prefix}_depth_optical_frame"/>
|
||||
|
||||
<!-- IR Camera Frame -->
|
||||
<joint name="${prefix}_ir_joint" type="fixed">
|
||||
<origin xyz="0 ${depth_to_ir_offset} 0" rpy="0 0 0" />
|
||||
<parent link="${prefix}_depth_frame" />
|
||||
<child link="${prefix}_ir_frame" />
|
||||
</joint>
|
||||
<link name="${prefix}_ir_frame"/>
|
||||
|
||||
<joint name="${prefix}_ir_optical_joint" type="fixed">
|
||||
<origin xyz="0 0 0" rpy="${-M_PI/2} 0 ${-M_PI/2}" />
|
||||
<parent link="${prefix}_ir_frame"/>
|
||||
<child link="${prefix}_ir_optical_frame"/>
|
||||
</joint>
|
||||
<link name="${prefix}_ir_optical_frame"/>
|
||||
|
||||
<!-- Color Camera Frame -->
|
||||
<joint name="${prefix}_color_joint" type="fixed">
|
||||
<origin xyz="${depth_to_color_offset_x} ${depth_to_color_offset_y} ${depth_to_color_offset_z}"
|
||||
rpy="${depth_to_color_rotation_roll} ${depth_to_color_rotation_pitch} ${depth_to_color_rotation_yaw}" />
|
||||
<parent link="${prefix}_depth_frame"/>
|
||||
<child link="${prefix}_color_frame"/>
|
||||
</joint>
|
||||
<link name="${prefix}_color_frame"/>
|
||||
|
||||
<joint name="${prefix}_color_optical_joint" type="fixed">
|
||||
<origin xyz="0 0 0" rpy="${-M_PI/2} 0 ${-M_PI/2}" />
|
||||
<parent link="${prefix}_color_frame"/>
|
||||
<child link="${prefix}_color_optical_frame"/>
|
||||
</joint>
|
||||
<link name="${prefix}_color_optical_frame"/>
|
||||
</xacro:if>
|
||||
</xacro:macro>
|
||||
</robot>
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- This URDF was automatically created by SolidWorks to URDF Exporter! Originally created by Stephen Brawner (brawner@gmail.com)
|
||||
Commit Version: 1.6.0-4-g7f85cfe Build Version: 1.6.7995.38578
|
||||
For more information, please see http://wiki.ros.org/sw_urdf_exporter -->
|
||||
<robot name="gemini_335" xmlns:xacro="http://ros.org/wiki/xacro">
|
||||
<xacro:include filename="_gemini_335_336.urdf.xacro"/>
|
||||
<!-- Define a virtual root link -->
|
||||
<link name="base_link"/>
|
||||
|
||||
<!-- Connect the virtual root to the actual base link -->
|
||||
<joint name="base_link_to_camera_link" type="fixed">
|
||||
<parent link="base_link"/>
|
||||
<child link="camera_link"/>
|
||||
<origin xyz="0 0 0" rpy="0 0 0"/>
|
||||
</joint>
|
||||
</robot>
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- This URDF was automatically created by SolidWorks to URDF Exporter! Originally created by Stephen Brawner (brawner@gmail.com)
|
||||
Commit Version: 1.6.0-4-g7f85cfe Build Version: 1.6.7995.38578
|
||||
For more information, please see http://wiki.ros.org/sw_urdf_exporter -->
|
||||
<robot name="gemini_336" xmlns:xacro="http://ros.org/wiki/xacro">
|
||||
<xacro:include filename="_gemini_335_336.urdf.xacro"/>
|
||||
<!-- Define a virtual root link -->
|
||||
<link name="base_link"/>
|
||||
|
||||
<!-- Connect the virtual root to the actual base link -->
|
||||
<joint name="base_link_to_camera_link" type="fixed">
|
||||
<parent link="base_link"/>
|
||||
<child link="camera_link"/>
|
||||
<origin xyz="0 0 0" rpy="0 0 0"/>
|
||||
</joint>
|
||||
</robot>
|
||||
Reference in New Issue
Block a user