mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-10-04 20:17:47 +08:00
fix: pass robot description as a parameter
This commit is contained in:
@@ -12,22 +12,13 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
import os
|
|
||||||
import xacro
|
import xacro
|
||||||
import tempfile
|
|
||||||
|
|
||||||
def to_urdf(xacro_path, parameters=None):
|
def to_urdf(xacro_path, parameters=None):
|
||||||
"""Convert the given xacro file to URDF file.
|
"""Convert the given xacro file to a URDF string.
|
||||||
* xacro_path -- the path to the xacro file
|
* xacro_path -- the path to the xacro file
|
||||||
* parameters -- to be used when xacro file is parsed.
|
* 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)
|
doc = xacro.process_file(xacro_path, mappings=parameters)
|
||||||
# open the output file
|
return doc.toprettyxml(indent=' ')
|
||||||
with open(urdf_path, 'w') as urdf_file:
|
|
||||||
urdf_file.write(doc.toprettyxml(indent=' '))
|
|
||||||
|
|
||||||
return urdf_path
|
|
||||||
|
|||||||
@@ -35,7 +35,8 @@ def generate_launch_description():
|
|||||||
|
|
||||||
rviz_config_dir = os.path.join(get_package_share_directory('orbbec_description'), 'rviz', 'urdf.rviz')
|
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'])
|
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'})
|
robot_description = to_urdf(
|
||||||
|
xacro_path, {'use_nominal_extrinsics': 'true', 'add_plug': 'true'})
|
||||||
rviz_node = Node(
|
rviz_node = Node(
|
||||||
package='rviz2',
|
package='rviz2',
|
||||||
executable='rviz2',
|
executable='rviz2',
|
||||||
@@ -50,6 +51,6 @@ def generate_launch_description():
|
|||||||
executable='robot_state_publisher',
|
executable='robot_state_publisher',
|
||||||
namespace='',
|
namespace='',
|
||||||
output='screen',
|
output='screen',
|
||||||
arguments=[urdf]
|
parameters=[{'robot_description': robot_description}]
|
||||||
)
|
)
|
||||||
return launch.LaunchDescription([rviz_node, model_node])
|
return launch.LaunchDescription([rviz_node, model_node])
|
||||||
|
|||||||
Reference in New Issue
Block a user