URDF机器人模型ROS1&2案例
【摘要】
2020版如下:
☞ ROS机器人URDF建模
这里,简单补充一下win10/11版本的。
************************************************************************ Visual Studio 2019 Developer Command Pro...
2020版如下:
这里,简单补充一下win10/11版本的。
-
**********************************************************************
-
** Visual Studio 2019 Developer Command Prompt v16.9.3
-
** Copyright (c) 2021 Microsoft Corporation
-
**********************************************************************
-
-
C:\ros_ws>cd urdf_tutorial
-
-
C:\ros_ws\urdf_tutorial>colcon build
-
[2.418s] root DEBUG Using proactor: IocpProactor
-
Starting >>> urdf_tutorial
-
Finished <<< urdf_tutorial [5.92s]
-
-
Summary: 1 package finished [6.26s]
-
-
C:\ros_ws\urdf_tutorial>
galactic:
-
from ament_index_python.packages import get_package_share_path
-
-
from launch import LaunchDescription
-
from launch.actions import DeclareLaunchArgument
-
from launch.conditions import IfCondition, UnlessCondition
-
from launch.substitutions import Command, LaunchConfiguration
-
-
from launch_ros.actions import Node
-
from launch_ros.parameter_descriptions import ParameterValue
-
-
def generate_launch_description():
-
urdf_tutorial_path = get_package_share_path('urdf_tutorial')
-
default_model_path = urdf_tutorial_path / 'urdf/01-myfirst.urdf'
-
default_rviz_config_path = urdf_tutorial_path / 'rviz/urdf.rviz'
-
-
gui_arg = DeclareLaunchArgument(name='gui', default_value='true', choices=['true', 'false'],
-
description='Flag to enable joint_state_publisher_gui')
-
model_arg = DeclareLaunchArgument(name='model', default_value=str(default_model_path),
-
description='Absolute path to robot urdf file')
-
rviz_arg = DeclareLaunchArgument(name='rvizconfig', default_value=str(default_rviz_config_path),
-
description='Absolute path to rviz config file')
-
-
robot_description = ParameterValue(Command(['xacro ', LaunchConfiguration('model')]),
-
value_type=str)
-
-
robot_state_publisher_node = Node(
-
package='robot_state_publisher',
-
executable='robot_state_publisher',
-
parameters=[{'robot_description': robot_description}]
-
)
-
-
# Depending on gui parameter, either launch joint_state_publisher or joint_state_publisher_gui
-
joint_state_publisher_node = Node(
-
package='joint_state_publisher',
-
executable='joint_state_publisher',
-
condition=UnlessCondition(LaunchConfiguration('gui'))
-
)
-
-
joint_state_publisher_gui_node = Node(
-
package='joint_state_publisher_gui',
-
executable='joint_state_publisher_gui',
-
condition=IfCondition(LaunchConfiguration('gui'))
-
)
-
-
rviz_node = Node(
-
package='rviz2',
-
executable='rviz2',
-
name='rviz2',
-
output='screen',
-
arguments=['-d', LaunchConfiguration('rvizconfig')],
-
)
-
-
return LaunchDescription([
-
gui_arg,
-
model_arg,
-
rviz_arg,
-
joint_state_publisher_node,
-
joint_state_publisher_gui_node,
-
robot_state_publisher_node,
-
rviz_node
-
])
注意和foxy版本差异性!
-
import launch
-
from launch.substitutions import Command, LaunchConfiguration
-
import launch_ros
-
import os
-
-
-
def generate_launch_description():
-
pkg_share = launch_ros.substitutions.FindPackageShare(package='urdf_tutorial').find('urdf_tutorial')
-
default_model_path = os.path.join(pkg_share, 'urdf/01-myfirst.urdf')
-
default_rviz_config_path = os.path.join(pkg_share, 'rviz/urdf.rviz')
-
-
robot_state_publisher_node = launch_ros.actions.Node(
-
package='robot_state_publisher',
-
executable='robot_state_publisher',
-
parameters=[{'robot_description': Command(['xacro ', LaunchConfiguration('model')])}]
-
)
-
joint_state_publisher_node = launch_ros.actions.Node(
-
package='joint_state_publisher',
-
executable='joint_state_publisher',
-
name='joint_state_publisher',
-
condition=launch.conditions.UnlessCondition(LaunchConfiguration('gui'))
-
)
-
joint_state_publisher_gui_node = launch_ros.actions.Node(
-
package='joint_state_publisher_gui',
-
executable='joint_state_publisher_gui',
-
name='joint_state_publisher_gui',
-
condition=launch.conditions.IfCondition(LaunchConfiguration('gui'))
-
)
-
rviz_node = launch_ros.actions.Node(
-
package='rviz2',
-
executable='rviz2',
-
name='rviz2',
-
output='screen',
-
arguments=['-d', LaunchConfiguration('rvizconfig')],
-
)
-
-
return launch.LaunchDescription([
-
launch.actions.DeclareLaunchArgument(name='gui', default_value='True',
-
description='Flag to enable joint_state_publisher_gui'),
-
launch.actions.DeclareLaunchArgument(name='model', default_value=default_model_path,
-
description='Absolute path to robot urdf file'),
-
launch.actions.DeclareLaunchArgument(name='rvizconfig', default_value=default_rviz_config_path,
-
description='Absolute path to rviz config file'),
-
joint_state_publisher_node,
-
joint_state_publisher_gui_node,
-
robot_state_publisher_node,
-
rviz_node
-
])
两点提示:
输入:
path = "/Users/krunal/Desktop/code/" print(os.path.join(path, "pyt", "database", "app.py"))
输出:
/Users/krunal/Desktop/code/pyt/database/app.py
SyntaxError
default_model_path = os.path.join('C:\ros_ws\urdf_tutorial\src', 'urdf\01-myfirst.urdf') ^ SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 9-10: truncated \uXXXX escape
\\
文章来源: zhangrelay.blog.csdn.net,作者:zhangrelay,版权归原作者所有,如需转载,请联系作者。
原文链接:zhangrelay.blog.csdn.net/article/details/123365594
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)