做网站赚钱的案例,宿迁房产网信息网,网站带app建设,网站是可以做的吗文章目录 开发环境SolidWords插件使用生成urdf文件之后的处理CMakeLists文件修改package.xml变更Launch更改运行 开发环境
Linux系统#xff1a;Ubuntu 22.04 Ros2版本#xff1a;humble Solidwords版本#xff1a;2023 #xff08;2019以上版本应该都是可以的#xff09… 文章目录 开发环境SolidWords插件使用生成urdf文件之后的处理CMakeLists文件修改package.xml变更Launch更改运行 开发环境
Linux系统Ubuntu 22.04 Ros2版本humble Solidwords版本2023 2019以上版本应该都是可以的 SolidWords插件sw_urdf_exporter 下载
SolidWords插件使用
该功能已经有很多教程这里不再累述。请移步此处链接
生成urdf文件之后的处理
CMakeLists文件修改
ROS2中已经没有catkin_make这样的工具统一使用colcon来进行编译可以看到cmake文件中包含了catkin_make。所以需要先更改此处的文件。更改之前的文件为
cmake_minimum_required(VERSION 2.8.3)project(QY2023-00019)find_package(catkin REQUIRED)catkin_package()find_package(roslaunch)foreach(dir config launch meshes urdf)install(DIRECTORY ${dir}/DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/${dir})
endforeach(dir)需变更为项目名与需要构建成的包名一致
cmake_minimum_required(VERSION 3.5)project(urdf_robot)find_package(ament_cmake REQUIRED)install(DIRECTORY images launch meshes rviz urdfDESTINATION share/${PROJECT_NAME}
)if(BUILD_TESTING)find_package(ament_lint_auto REQUIRED)ament_lint_auto_find_test_dependencies()
endif()ament_package()package.xml变更
默认的报名直接使用3D模型的名称这里主要是更改下包名称和版本以及一些过时的依赖信息。sw导出的package.xml
package format2nameQY2023-00019/nameversion1.0.0/versiondescriptionpURDF Description package for QY2023-00019/ppThis package contains configuration data, 3D models and launch files
for QY2023-00019 robot/p/descriptionauthorTODO/authormaintainer emailTODOemail.com /licenseBSD/licensebuildtool_dependcatkin/buildtool_dependdependroslaunch/dependdependrobot_state_publisher/dependdependrviz/dependdependjoint_state_publisher_gui/dependdependgazebo/dependexportarchitecture_independent //export
/package更改之后的需要主要的是exec_depend项使用了urdf_launch。需要先下载编译安装运行这个包链接地址
?xml version1.0?
?xml-model hrefhttp://download.ros.org/schema/package_format3.xsd schematypenshttp://www.w3.org/2001/XMLSchema?
package format3nameurdf_robot/nameversion1.1.0/versiondescriptionThis package contains a number of URDF robot./descriptionmaintainer emaildavidvlugmail.comqhf/maintainerlicenseBSD 3-clause/licenseurlhttp://ros.org/wiki/urdf_tutorial/urlauthor emaildavidvlugmail.comDavid V. Lu!!/authorbuildtool_dependament_cmake/buildtool_dependexec_dependurdf_launch/exec_dependtest_dependament_lint_auto/test_dependexportbuild_typeament_cmake/build_typegazebo_ros gazebo_model_path${prefix}/..//export
/package这两项完成之后应当就能顺利使用colcon build编译编译完成后记得source install里面的setup.bash的路径。最后可以使用ros2 pkg list 来检查下是否已经顺利将包安装到环境中。
Launch更改
使用sw_urdf_exporter插件导出的只有*.launch文件所以需要自己写一个python的启动文件。我这里就直接参考了官方的urdf_tutorial的包源码地址。记得切换下ROS2分支。以下是参考的display.launch.py文件需要更改的部分已经用中文注释。新建这样的py文件放到导出的urdf文件夹中即可
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription
from launch.substitutions import LaunchConfiguration, PathJoinSubstitution
from launch_ros.substitutions import FindPackageShare
def generate_launch_description():ld LaunchDescription()urdf_robot_path FindPackageShare(urdf_robot) #urdf_robot更改为自己的包名default_model_path PathJoinSubstitution([urdf, QY2023-00019.urdf]) #QY2023-00019.urdf更改为自己的urdf文件default_rviz_config_path PathJoinSubstitution([urdf_robot_path, rviz, urdf.rviz])# These parameters are maintained for backwards compatibilitygui_arg DeclareLaunchArgument(namegui, default_valuetrue, choices[true, false],descriptionFlag to enable joint_state_publisher_gui)ld.add_action(gui_arg)rviz_arg DeclareLaunchArgument(namervizconfig, default_valuedefault_rviz_config_path,descriptionAbsolute path to rviz config file)ld.add_action(rviz_arg)# This parameter has changed its meaning slightly from previous versionsld.add_action(DeclareLaunchArgument(namemodel, default_valuedefault_model_path,descriptionPath to robot urdf file relative to urdf_robot package))ld.add_action(IncludeLaunchDescription(PathJoinSubstitution([FindPackageShare(urdf_launch), launch, display.launch.py]),launch_arguments{urdf_package: urdf_robot,urdf_package_path: LaunchConfiguration(model),rviz_config: LaunchConfiguration(rvizconfig),jsp_gui: LaunchConfiguration(gui)}.items()))return ld运行
编译后使用一下命令行即可运行
ros2 launch urdf_robot display.launch.py其中urdf_robot为自己命名的包名display.launch.py为上述所说的启动文件名。 运行之后还会报一个错误此错误是由于.urdf文件路径描述ROS1中语法在ROS2中不能识别的原因所以还需要做将.urdf中关于模型文件的路径更改。 更改前 geometrymeshfilenamepackage://QY2023-00019/meshes/base_link.STL //geometry更改后 geometrymeshfilenamefile://$(find urdf_robot)/meshes/base_link.STL //geometry所有的路径都做这样的修改。然后重新编译运行即可。