URDF机器人模型ROS1&2案例

举报
zhangrelay 发表于 2022/03/10 00:16:13 2022/03/10
【摘要】 2020版如下: ☞  ROS机器人URDF建模 这里,简单补充一下win10/11版本的。 ************************************************************************ Visual Studio 2019 Developer Command Pro...

2020版如下:

☞  ROS机器人URDF建模


这里,简单补充一下win10/11版本的。


  
  1. **********************************************************************
  2. ** Visual Studio 2019 Developer Command Prompt v16.9.3
  3. ** Copyright (c) 2021 Microsoft Corporation
  4. **********************************************************************
  5. C:\ros_ws>cd urdf_tutorial
  6. C:\ros_ws\urdf_tutorial>colcon build
  7. [2.418s] root DEBUG Using proactor: IocpProactor
  8. Starting >>> urdf_tutorial
  9. Finished <<< urdf_tutorial [5.92s]
  10. Summary: 1 package finished [6.26s]
  11. C:\ros_ws\urdf_tutorial>

galactic:


  
  1. from ament_index_python.packages import get_package_share_path
  2. from launch import LaunchDescription
  3. from launch.actions import DeclareLaunchArgument
  4. from launch.conditions import IfCondition, UnlessCondition
  5. from launch.substitutions import Command, LaunchConfiguration
  6. from launch_ros.actions import Node
  7. from launch_ros.parameter_descriptions import ParameterValue
  8. def generate_launch_description():
  9. urdf_tutorial_path = get_package_share_path('urdf_tutorial')
  10. default_model_path = urdf_tutorial_path / 'urdf/01-myfirst.urdf'
  11. default_rviz_config_path = urdf_tutorial_path / 'rviz/urdf.rviz'
  12. gui_arg = DeclareLaunchArgument(name='gui', default_value='true', choices=['true', 'false'],
  13. description='Flag to enable joint_state_publisher_gui')
  14. model_arg = DeclareLaunchArgument(name='model', default_value=str(default_model_path),
  15. description='Absolute path to robot urdf file')
  16. rviz_arg = DeclareLaunchArgument(name='rvizconfig', default_value=str(default_rviz_config_path),
  17. description='Absolute path to rviz config file')
  18. robot_description = ParameterValue(Command(['xacro ', LaunchConfiguration('model')]),
  19. value_type=str)
  20. robot_state_publisher_node = Node(
  21. package='robot_state_publisher',
  22. executable='robot_state_publisher',
  23. parameters=[{'robot_description': robot_description}]
  24. )
  25. # Depending on gui parameter, either launch joint_state_publisher or joint_state_publisher_gui
  26. joint_state_publisher_node = Node(
  27. package='joint_state_publisher',
  28. executable='joint_state_publisher',
  29. condition=UnlessCondition(LaunchConfiguration('gui'))
  30. )
  31. joint_state_publisher_gui_node = Node(
  32. package='joint_state_publisher_gui',
  33. executable='joint_state_publisher_gui',
  34. condition=IfCondition(LaunchConfiguration('gui'))
  35. )
  36. rviz_node = Node(
  37. package='rviz2',
  38. executable='rviz2',
  39. name='rviz2',
  40. output='screen',
  41. arguments=['-d', LaunchConfiguration('rvizconfig')],
  42. )
  43. return LaunchDescription([
  44. gui_arg,
  45. model_arg,
  46. rviz_arg,
  47. joint_state_publisher_node,
  48. joint_state_publisher_gui_node,
  49. robot_state_publisher_node,
  50. rviz_node
  51. ])

注意和foxy版本差异性!


  
  1. import launch
  2. from launch.substitutions import Command, LaunchConfiguration
  3. import launch_ros
  4. import os
  5. def generate_launch_description():
  6. pkg_share = launch_ros.substitutions.FindPackageShare(package='urdf_tutorial').find('urdf_tutorial')
  7. default_model_path = os.path.join(pkg_share, 'urdf/01-myfirst.urdf')
  8. default_rviz_config_path = os.path.join(pkg_share, 'rviz/urdf.rviz')
  9. robot_state_publisher_node = launch_ros.actions.Node(
  10. package='robot_state_publisher',
  11. executable='robot_state_publisher',
  12. parameters=[{'robot_description': Command(['xacro ', LaunchConfiguration('model')])}]
  13. )
  14. joint_state_publisher_node = launch_ros.actions.Node(
  15. package='joint_state_publisher',
  16. executable='joint_state_publisher',
  17. name='joint_state_publisher',
  18. condition=launch.conditions.UnlessCondition(LaunchConfiguration('gui'))
  19. )
  20. joint_state_publisher_gui_node = launch_ros.actions.Node(
  21. package='joint_state_publisher_gui',
  22. executable='joint_state_publisher_gui',
  23. name='joint_state_publisher_gui',
  24. condition=launch.conditions.IfCondition(LaunchConfiguration('gui'))
  25. )
  26. rviz_node = launch_ros.actions.Node(
  27. package='rviz2',
  28. executable='rviz2',
  29. name='rviz2',
  30. output='screen',
  31. arguments=['-d', LaunchConfiguration('rvizconfig')],
  32. )
  33. return launch.LaunchDescription([
  34. launch.actions.DeclareLaunchArgument(name='gui', default_value='True',
  35. description='Flag to enable joint_state_publisher_gui'),
  36. launch.actions.DeclareLaunchArgument(name='model', default_value=default_model_path,
  37. description='Absolute path to robot urdf file'),
  38. launch.actions.DeclareLaunchArgument(name='rvizconfig', default_value=default_rviz_config_path,
  39. description='Absolute path to rviz config file'),
  40. joint_state_publisher_node,
  41. joint_state_publisher_gui_node,
  42. robot_state_publisher_node,
  43. rviz_node
  44. ])

两点提示:

输入:

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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。