MoveIt!生成的机器人**_moveit_config包中config文件和launch文件

这篇具有很好参考价值的文章主要介绍了MoveIt!生成的机器人**_moveit_config包中config文件和launch文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ros版本:noetic
官方教程地址MoveIt1
官方教程地址MoveIt2
安装MoveIt!
通过以下命令安装MoveI!

 sudo apt install ros-noetic-moveit

MoveIt

MoveIt!生成的机器人**_moveit_config包中config文件和launch文件,ROS,笔记,机器人

MoveIt!生成的机器人**_moveit_config包中config文件和launch文件,ROS,笔记,机器人

follow_joint_trajectory
允许客户端向机器人控制器发送关节轨迹。
轨迹以关节位置、速度和加速度的列表形式指定,控制器将尝试尽可能精确地跟踪轨迹。
JointTrajectoryAction:
关节轨迹动作组,包括空间轨迹的接收,机械臂对规划轨迹的执行结果等信息。
Joint States Topic:
关节状态话题,描述机械臂中,各个关节执行的角度状态。

MoveIt!生成的机器人**_moveit_config包中config文件和launch文件,ROS,笔记,机器人
MoveIt!生成的机器人**_moveit_config包中config文件和launch文件,ROS,笔记,机器人

move_group 通过参数服务器(param server)获取以下信息:

    URDF:robot_description 参数,获取机器人 URDF 模型信息
    SRDF:robot_description_semantic参数,获取机器人模型的配置信息,SRDF 是通过 MoveIt Setup Assistant 生成的;
    MoveIt configuration:机器人的其他配置信息,如关节限位、运动学插件、运动规划插件等,Config files for these components are automatically generated by the MoveIt setup assistant and stored in the config directory of the corresponding MoveIt config package for the robot.

config文件

以JAKA zu12 为例
MoveIt!生成的机器人**_moveit_config包中config文件和launch文件,ROS,笔记,机器人

MoveIt!生成的机器人**_moveit_config包中config文件和launch文件,ROS,笔记,机器人

srdf

SRDF文件(Systematic Robot Description Format)是一种机器人描述文件格式,用于描述机器人的运动学和动力学模型。SRDF文件由一系列XML元素组成,每个元素描述机器人的某个方面。 SRDF文件可以用于在机器人仿真器中创建机器人模型,也可以用于在机器人控制器中编写控制代码。

cartesian_limits.yaml

Limits for the cartesian position of the robot
机器人笛卡尔位置的限制

joint_limits.yaml

The joint_limits.yaml file contains the joint limits for the robot. The joint limits are the maximum and minimum values that the joints can move to. The joint limits are used to prevent the robot from moving into a position where it could damage itself.

文件 joint_limits.yaml 包含了机器人的关节限制。关节限制是关节可以移动到的最大和最小值。关节限制用于防止机器人移动到可能损坏自身的位置。

fake_controllers.yam

The fake_controllers.yaml file contains the parameters for the fake controllers. The fake controllers are used to simulate the behavior of the real controllers. The parameters in the fake_controllers.yaml file control the behavior of the fake controllers, such as the maximum velocity and acceleration of the robot.

文件 fake_controllers.yaml 包含了假控制器的参数。假控制器用于模拟真实控制器的行为。fake_controllers.yaml 文件中的参数控制了假控制器的行为,例如机器人的最大速度和加速度。

simple_moveit_controllers.yaml

The simple_moveit_controllers.yaml file contains the parameters for the simple MoveIt controllers. The simple MoveIt controllers are used to control the robot in the MoveIt environment. The parameters in the simple_moveit_controllers.yaml file control the behavior of the simple MoveIt controllers, such as the maximum velocity and acceleration of the robot.

文件 simple_moveit_controllers.yaml 包含了简单的 MoveIt 控制器的参数。简单的 MoveIt 控制器用于在 MoveIt 环境中控制机器人。simple_moveit_controllers.yaml 文件中的参数控制了简单的 MoveIt 控制器的行为,例如机器人的最大速度和加速度。

gazebo_controllers.yaml

The gazebo_controllers.yaml file contains the parameters for the gazebo controllers. The gazebo controllers are used to control the robot in the Gazebo simulator. The parameters in the gazebo_controllers.yaml file control the behavior of the gazebo controllers, such as the maximum velocity and acceleration of the robot.

文件 gazebo_controllers.yaml 包含了 gazebo 控制器的参数。gazebo 控制器用于在 Gazebo 仿真器中控制机器人。gazebo_controllers.yaml 文件中的参数控制了 gazebo 控制器的行为,例如机器人的最大速度和加速度。

1. ros_controllers.yaml

The ros_controllers.yaml file contains the parameters for the ROS controllers. The ROS controllers are used to control the robot in the ROS environment. The parameters in the ros_controllers.yaml file control the behavior of the ROS controllers, such as the maximum velocity and acceleration of the robot.

文件 ros_controllers.yaml 包含了 ROS 控制器的参数。ROS 控制器用于在 ROS 环境中控制机器人。ros_controllers.yaml 文件中的参数控制了 ROS 控制器的行为,例如机器人的最大速度和加速度。

#Simulation settings for using moveit_sim_controllers
moveit_sim_hw_interface:
  joint_model_group: jaka_zu12
  joint_model_group_pose: zero
# Settings for ros_control_boilerplate control loop
generic_hw_control_loop:
  loop_hz: 300
  cycle_time_error_threshold: 0.01
# Settings for ros_control hardware interface
hardware_interface:
  joints:
    - joint_1
    - joint_2
    - joint_3
    - joint_4
    - joint_5
    - joint_6
  sim_control_mode: 1  # 0: position, 1: velocity
# Publish all joint states
# Creates the /joint_states topic necessary in ROS
joint_state_controller:
  type: joint_state_controller/JointStateController
  publish_rate: 50
controller_list:
  - name: jaka_zu12_controller
    action_ns: follow_joint_trajectory
    type: FollowJointTrajectory
    default: true
    joints:
      - joint_1
      - joint_2
      - joint_3
      - joint_4
      - joint_5
      - joint_6
jaka_zu12_controller:
  type: position_controllers/JointTrajectoryController
  joints:
      - joint_1
      - joint_2
      - joint_3
      - joint_4
      - joint_5
      - joint_6
  constraints:
      goal_time: 0.6
      stopped_velocity_tolerance: 0
      joint_1: {trajectory: 0.1, goal: 0}
      joint_2: {trajectory: 0.1, goal: 0}
      joint_3: {trajectory: 0.1, goal: 0}
      joint_4: {trajectory: 0.1, goal: 0}
      joint_5: {trajectory: 0.1, goal: 0}
      joint_6: {trajectory: 0.1, goal: 0}
  gains:
      joint_1: {p: 100, d: 1, i: 1, i_clamp: 1}
      joint_2: {p: 100, d: 1, i: 1, i_clamp: 1}
      joint_3: {p: 100, d: 1, i: 1, i_clamp: 1}
      joint_4: {p: 100, d: 1, i: 1, i_clamp: 1}
      joint_5: {p: 100, d: 1, i: 1, i_clamp: 1}
      joint_6: {p: 100, d: 1, i: 1, i_clamp: 1}
  stop_trajectory_duration: 0.5
  state_publish_rate:  25
  action_monitor_rate: 1

kinematics.yaml

The kinematics.yaml file contains the kinematic parameters for the robot. The kinematic parameters are used to calculate the position and orientation of the robot’s joints given the joint angles.

文件 kinematics.yaml 包含了机器人的运动学参数。运动学参数用于计算给定关节角度时机器人关节的位置和方向。

sensors_3d.yaml

The sensors_3d.yaml file contains the parameters for the 3D sensors. The 3D sensors are used to detect objects in the environment. The parameters in the sensors_3d.yaml file control the behavior of the 3D sensors, such as the range and resolution of the sensors.
文件 sensors_3d.yaml 包含了 3D 传感器的参数。3D 传感器用于检测环境中的物体。sensors_3d.yaml 文件中的参数控制了 3D 传感器的行为,例如传感器的范围和分辨率。

ompl_planning.yaml

The ompl_planning.yaml file contains the parameters for the OMPL planner. The OMPL planner is a sampling-based planner that uses a variety of heuristics to find a collision-free path between the start and goal states. The parameters in the ompl_planning.yaml file control the behavior of the OMPL planner, such as the number of iterations to run the planner for, the maximum time to run the planner for, and the maximum number of nodes to expand in the planner.

文件 ompl_planning.yaml 包含了 OMPL 规划器的参数。OMPL 规划器是一种基于采样的规划器,它使用各种启发式方法来找到起点和目标状态之间的无碰撞路径。ompl_planning.yaml 文件中的参数控制了 OMPL 规划器的行为,例如运行规划器的迭代次数、运行规划器的最大时间以及规划器中要扩展的最大节点数。

chomp_planning.yaml

The chomp_planning.yaml file contains the parameters for the CHOMP planner. The CHOMP planner is a sampling-based planner that uses a heuristic to quickly find a collision-free path between the start and goal states. The parameters in the chomp_planning.yaml file control the behavior of the CHOMP planner, such as the number of iterations to run the planner for, the maximum time to run the planner for, and the maximum number of nodes to expand in the planner.

文件 chomp_planning.yaml 包含了 CHOMP 规划器的参数。CHOMP 规划器是一种基于采样的规划器,它使用启发式方法快速找到起点和目标状态之间的无碰撞路径。chomp_planning.yaml 文件中的参数控制了 CHOMP 规划器的行为,例如运行规划器的迭代次数、运行规划器的最大时间以及规划器中要扩展的最大节点数。

stomp_planning.yaml

stomp_planning.yaml is a configuration file used for path planning. STOMP (Stochastic Trajectory Optimization for Motion Planning) is an optimization-based motion planning algorithm used to generate motion trajectories for robots or vehicles in complex environments. The stomp_planning.yaml file contains the parameter settings for the STOMP algorithm and the description of the planning environment. By adjusting these parameters, the results of path planning can be influenced.

stomp_planning.yaml是一个用于路径规划的配置文件。STOMP(Stochastic Trajectory Optimization for Motion Planning)是一种基于优化的运动规划算法,用于在复杂环境中生成机器人或车辆的运动轨迹。stomp_planning.yaml文件包含了STOMP算法的参数设置和规划环境的描述,通过调整这些参数可以影响路径规划的结果。

OMPL与CHOMP STOMP

OMPL是一个开源的运动规划库,提供了多种规划算法的实现。它具有灵活性和可扩展性,可以适应不同的问题和需求。OMPL支持多种搜索策略和采样方法,可以在不同的场景中进行定制和调整。

CHOMP(Covariant Hamiltonian Optimization for Motion Planning)是一种优化运动规划算法,用于解决机器人运动路径规划问题。它的目标是找到在给定环境中,从初始状态到目标状态的最佳运动轨迹。用于解决机器人运动路径规划问题。它的目标是找到在给定环境中,从初始状态到目标状态的最佳运动轨迹。
CHOMP算法基于拉格朗日动力学优化,它将运动规划问题转化为一个优化问题,通过迭代优化来求解最佳轨迹。它使用了一种称为“协变哈密顿优化”的技术,该技术能够考虑到机器人的动力学约束和环境的碰撞避免。
CHOMP算法的基本思想是通过迭代优化来不断改进轨迹,直到找到一个满足约束条件且最优的轨迹。在每次迭代中,它通过计算当前轨迹的梯度来更新轨迹,并使用线性二次规划来处理碰撞避免约束。
CHOMP算法的优点是能够处理复杂的运动规划问题,同时考虑到了机器人的动力学约束和环境的碰撞避免。它在实际应用中被广泛用于机器人运动控制、自动驾驶汽车和无人机路径规划等领域。

STOMP(Stochastic Trajectory Optimization for Motion Planning)是一种基于概率的运动规划算法,用于解决机器人运动路径规划问题。它的目标是找到在给定环境中,从初始状态到目标状态的一条最优概率轨迹。
STOMP算法的基本思想是通过随机采样来生成候选轨迹,然后对这些候选轨迹进行评估,并选择最优的轨迹作为最终结果。在评估候选轨迹时,STOMP算法使用了一种称为“概率优化”的技术,该技术能够考虑到机器人的动力学约束和环境的碰撞避免。
STOMP算法的优点是能够处理复杂的运动规划问题,并且能够在较短的时间内找到较优的轨迹。它在实际应用中被广泛用于机器人运动控制、自动驾驶汽车和无人机路径规划等领域。

launch文件

以节卡为例
MoveIt!生成的机器人**_moveit_config包中config文件和launch文件,ROS,笔记,机器人
MoveIt!生成的机器人**_moveit_config包中config文件和launch文件,ROS,笔记,机器人

2. jaka_zu12_moveit_controller_manager.launch.xml

控制器的管理者会将ros_controllers加载到参数服务器

<launch>
  <arg name="execution_type" />

  <!-- loads moveit_controller_manager on the parameter server which is taken as argument  在作为参数的 参数服务器 上加载moveit_controller_manager
    if no argument is passed, moveit_simple_controller_manager will be set 如果没有传递参数,moveit_simple_controller_manager将被设置 -->
    
  <arg name="moveit_controller_manager" default="moveit_simple_controller_manager/MoveItSimpleControllerManager" />
  <param name="moveit_controller_manager" value="$(arg moveit_controller_manager)"/>

  <!-- loads ros_controllers to the param server 将ros_controllers加载到参数服务器 -->
  <rosparam file="$(find jaka_zu12_moveit_config)/config/ros_controllers.yaml"/>
</launch>

3. trajectory_execution.launch.xml

启动控制器管理者

<launch>

  <!-- This file makes it easy to include the settings for trajectory execution  -->

  <arg name="execution_type" default="interpolate" />

  <!-- Flag indicating whether MoveIt! is allowed to load/unload  or switch controllers -->
  <arg name="moveit_manage_controllers" default="true"/>
  <param name="moveit_manage_controllers" value="$(arg moveit_manage_controllers)"/>

  <!-- When determining the expected duration of a trajectory, this multiplicative factor is applied to get the allowed duration of execution 在确定轨迹的预期持续时间时,应用此乘法因子来获得允许的执行持续时间-->
  <param name="trajectory_execution/allowed_execution_duration_scaling" value="1.2"/> <!-- default 1.2 -->
  <!-- Allow more than the expected execution time before triggering a trajectory cancel (applied after scaling) 在触发轨迹取消之前允许超过预期的执行时间(在缩放后应用) -->
  <param name="trajectory_execution/allowed_goal_duration_margin" value="0.5"/> <!-- default 0.5 -->
  <!-- Allowed joint-value tolerance for validation that trajectory's first point matches current robot state 允许关节值公差验证轨迹的第一个点与当前机器人状态匹配 -->
  <param name="trajectory_execution/allowed_start_tolerance" value="0.01"/> <!-- default 0.01 -->

  <!-- Load the robot specific controller manager; this sets the moveit_controller_manager ROS parameter 加载机器人特定控制器管理器;这将设置moveit_controller_manager ROS参数 -->
  <arg name="moveit_controller_manager" default="jaka_zu12" />
  <include file="$(find jaka_zu12_moveit_config)/launch/$(arg moveit_controller_manager)_moveit_controller_manager.launch.xml">
    <arg name="execution_type" value="$(arg execution_type)" />
  </include>

</launch>

4. move_group.launch

加载trajectory_execution.launch.xml文件

<launch>

  <!-- GDB Debug Option GDB调试选项-->
  <arg name="debug" default="false" />
  <arg unless="$(arg debug)" name="launch_prefix" value="" />
  <arg     if="$(arg debug)" name="launch_prefix"
           value="gdb -x $(find jaka_zu12_moveit_config)/launch/gdb_settings.gdb --ex run --args" />

  <!-- Verbose Mode Option 详细模式选项 -->
  <arg name="info" default="$(arg debug)" />
  <arg unless="$(arg info)" name="command_args" value="" />
  <arg     if="$(arg info)" name="command_args" value="--debug" />

  <!-- move_group settings -->
  <arg name="pipeline" default="ompl" />
  <arg name="allow_trajectory_execution" default="true"/>
  <arg name="fake_execution" default="false"/> #修改为false,下面为真实的机器人运动,而不是假的#
  <arg name="execution_type" default="interpolate"/> <!-- set to 'last point' to skip intermediate trajectory in fake execution -->
  <arg name="max_safe_path_cost" default="1"/>
  <arg name="jiggle_fraction" default="0.05" />
  <arg name="publish_monitored_planning_scene" default="true"/>

  <arg name="capabilities" default=""/>
  <arg name="disable_capabilities" default=""/>
  <!-- load these non-default MoveGroup capabilities (space seperated)加载这些非默认的MoveGroup功能(空格分隔) -->
  <!--
  <arg name="capabilities" value="
                a_package/AwsomeMotionPlanningCapability
                another_package/GraspPlanningPipeline
                " />
  -->

  <!-- 禁止这些默认的移动组功能(空格分隔) -->
  <!--
  <arg name="disable_capabilities" value="
                move_group/MoveGroupKinematicsService
                move_group/ClearOctomapService
                " />
  -->

  <arg name="load_robot_description" default="true" />
  <!-- load URDF, SRDF and joint_limits configuration 加载URDF, SRDF和joint_limits配置-->
  <include file="$(find jaka_zu12_moveit_config)/launch/planning_context.launch">
    <arg name="load_robot_description" value="$(arg load_robot_description)" />
  </include>

  <!-- Planning Functionality 规划功能-->
  <include ns="move_group" file="$(find jaka_zu12_moveit_config)/launch/planning_pipeline.launch.xml">
    <arg name="pipeline" value="$(arg pipeline)" />
    <param name="capabilities" value="$(arg capabilities)"/>
    <param name="disable_capabilities" value="$(arg disable_capabilities)"/>
  </include>

  <!-- Trajectory Execution Functionality 轨迹执行功能-->
  <include ns="move_group" file="$(find jaka_zu12_moveit_config)/launch/trajectory_execution.launch.xml" if="$(arg allow_trajectory_execution)">
    <arg name="moveit_manage_controllers" value="true" />
    <arg name="moveit_controller_manager" value="jaka_zu12" unless="$(arg fake_execution)"/>
    <arg name="moveit_controller_manager" value="fake" if="$(arg fake_execution)"/>
    <arg name="execution_type" value="$(arg execution_type)" />
  </include>

  <!-- Sensors Functionality 传感器功能-->
  <include ns="move_group" file="$(find jaka_zu12_moveit_config)/launch/sensor_manager.launch.xml" if="$(arg allow_trajectory_execution)">
    <arg name="moveit_sensor_manager" value="jaka_zu12" />
  </include>

  <!-- Start the actual move_group node/action server 启动实际的move_group节点/动作服务器 -->
  <node name="move_group" launch-prefix="$(arg launch_prefix)" pkg="moveit_ros_move_group" type="move_group" respawn="false" output="screen" args="$(arg command_args)">
    <!-- Set the display variable, in case OpenGL code is used internally -->
    <env name="DISPLAY" value="$(optenv DISPLAY :0)" />

    <param name="allow_trajectory_execution" value="$(arg allow_trajectory_execution)"/>
    <param name="max_safe_path_cost" value="$(arg max_safe_path_cost)"/>
    <param name="jiggle_fraction" value="$(arg jiggle_fraction)" />


    <!-- Publish the planning scene of the physical robot so that rviz plugin can know actual robot -->
    <!--  发布物理机器人的规划场景,使rviz插件能够了解实际机器人 -->
    <param name="planning_scene_monitor/publish_planning_scene" value="$(arg publish_monitored_planning_scene)" />
    <param name="planning_scene_monitor/publish_geometry_updates" value="$(arg publish_monitored_planning_scene)" />
    <param name="planning_scene_monitor/publish_state_updates" value="$(arg publish_monitored_planning_scene)" />
    <param name="planning_scene_monitor/publish_transforms_updates" value="$(arg publish_monitored_planning_scene)" />
  </node>

</launch>

5.6. demo.launch

move_group.launch
moveit_rviz.launch
moveit.rviz
default_warehouse_db.launch

<launch>

  <!-- specify the planning pipeline 指定规划管道 -->
  <arg name="pipeline" default="ompl" />

  <!-- By default, we do not start a database (it can be large) 默认情况下,我们不启动数据库(它可能很大)。 -->
  <arg name="db" default="false" />
  <!-- Allow user to specify database location -->
  <arg name="db_path" default="$(find jaka_zu12_moveit_config)/default_warehouse_mongo_db" />

  <!-- By default, we are not in debug mode 默认情况下,我们不处于调试模式 -->
  <arg name="debug" default="false" />

  <!-- By default, we will load or override the robot_description 默认情况下,我们将加载或覆盖 robot_description -->
  <arg name="load_robot_description" default="true"/>

  <!-- Set execution mode for fake execution controllers 设置假执行控制器的执行模式 -->
  <arg name="execution_type" default="interpolate" />

  <!--
  By default, hide joint_state_publisher's GUI

  MoveIt!'s "demo" mode replaces the real robot driver with the joint_state_publisher.
  The latter one maintains and publishes the current joint configuration of the simulated robot.
  It also provides a GUI to move the simulated robot around "manually".
  This corresponds to moving around the real robot without the use of MoveIt.
  
 	默认情况下,隐藏joint_state_publisher的GUI
 	 
	MoveIt !的“demo”模式用joint_state_publisher替换了真正的机器人驱动程序。
	后者维护和发布仿真机器人的当前关节构型。
	它还提供了一个GUI来“手动”移动模拟机器人。
`	这相当于在不使用MoveIt的情况下移动真实的机器人。

  -->
  <arg name="use_gui" default="false" />
  <arg name="use_rviz" default="true" />

  <!-- If needed, broadcast static tf for robot root如果需要,为机器人根广播静态tf -->


  <!-- 6. We do not have a robot connected, so publish fake joint states 6. 我们没有机器人连接,所以发布假的联合状态 (6)joint_state_publisheri订阅话题名配置 -->
  <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" unless="$(arg use_gui)">
  
  <!-- <rosparam param="source_list" [move_group/fake_controller_joint_states]</rosparam>  -->
  <rosparam param="source_list">[/joint_states]</rosparam>
  </node>
  
  <!-- <node name="joint_state_publisher" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" if="$(arg use_gui)">
  <rosparam param="source_list">[move_group/fake_controller_joint_states]</rosparam>
  </node> -->

  <!-- Given the published joint states, publish tf for the robot links 给定已发布的关节状态,发布机器人链接的tf -->
  <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" respawn="true" output="screen" />

  <!-- Run the main MoveIt! executable without trajectory execution (we do not have controllers configured by default) 运行主MoveIt!可执行的,没有轨迹执行(我们没有默认配置的控制器) -->
  <include file="$(find jaka_zu12_moveit_config)/launch/move_group.launch">
    <arg name="allow_trajectory_execution" value="true"/>
    <arg name="fake_execution" value="false"/>     <------------------ 5. false
    <arg name="execution_type" value="$(arg execution_type)"/>
    <arg name="info" value="true"/>
    <arg name="debug" value="$(arg debug)"/>
    <arg name="pipeline" value="$(arg pipeline)"/>
    <arg name="load_robot_description" value="$(arg load_robot_description)"/>
  </include>

  <!-- Run Rviz and load the default config to see the state of the move_group node -->
  <include file="$(find jaka_zu12_moveit_config)/launch/moveit_rviz.launch" if="$(arg use_rviz)">
    <arg name="rviz_config" value="$(find jaka_zu12_moveit_config)/launch/moveit.rviz"/>
    <arg name="debug" value="$(arg debug)"/>
  </include>

  <!-- If database loading was enabled, start mongodb as well -->
  <include file="$(find jaka_zu12_moveit_config)/launch/default_warehouse_db.launch" if="$(arg db)">
    <arg name="moveit_warehouse_database_path" value="$(arg db_path)"/>
  </include>

</launch>

demo_gazebo.launch

jaka_zu12.urdf
gazebo.launch
move_group.launch
moveit_rviz.launch
moveit.rviz
default_warehouse_db.launch文章来源地址https://www.toymoban.com/news/detail-766973.html

<launch>

  <!-- By default, we do not start a database (it can be large) 默认情况下,我们不启动数据库(它可能很大)。-->
  <arg name="db" default="false" />
  <!-- Allow user to specify database location -->
  <arg name="db_path" default="$(find jaka_zu12_moveit_config)/default_warehouse_mongo_db" />

  <!-- By default, we are not in debug mode 默认情况下,我们不处于调试模式 -->
  <arg name="debug" default="false" />

  <!-- By default, we won't load or override the robot_description 默认情况下,我们不会加载或覆盖robot_description -->
  <arg name="load_robot_description" default="false"/>

  <!--
  By default, hide joint_state_publisher's GUI

  MoveIt!'s "demo" mode replaces the real robot driver with the joint_state_publisher.
  The latter one maintains and publishes the current joint configuration of the simulated robot.
  It also provides a GUI to move the simulated robot around "manually".
  This corresponds to moving around the real robot without the use of MoveIt.
  -->
  <arg name="use_gui" default="false" />

  <!-- Gazebo specific options  Gazebo 特定选项 -->
  <arg name="gazebo_gui" default="true"/>
  <arg name="paused" default="false"/>
  <!-- By default, use the urdf location provided from the package -->
  <arg name="urdf_path" default="$(find jaka_description)/urdf/jaka_zu12.urdf"/>

  <!-- launch the gazebo simulator and spawn the robot  gazebo模拟器并生成机器人 -->
  <include file="$(find jaka_zu12_moveit_config)/launch/gazebo.launch" >
    <arg name="paused" value="$(arg paused)"/>
    <arg name="gazebo_gui" value="$(arg gazebo_gui)"/>
    <arg name="urdf_path" value="$(arg urdf_path)"/>
  </include>

  <!-- If needed, broadcast static tf for robot root 如果需要,为机器人根广播静态tf -->
  

  <!-- We do not have a robot connected, so publish fake joint states -->
  <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" unless="$(arg use_gui)">
    <rosparam param="source_list">[move_group/fake_controller_joint_states]</rosparam>
    <rosparam param="source_list">[/joint_states]</rosparam>
  </node>
  <node name="joint_state_publisher" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" if="$(arg use_gui)">
    <rosparam param="source_list">[move_group/fake_controller_joint_states]</rosparam>
    <rosparam param="source_list">[/joint_states]</rosparam>
  </node>

  <!-- Given the published joint states, publish tf for the robot links 给定已发布的关节状态,发布机器人链接的tf -->
  <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" respawn="true" output="screen" />

  <!-- Run the main MoveIt! executable without trajectory execution (we do not have controllers configured by default) 运行主MoveIt!可执行的,没有轨迹执行(我们没有默认配置的控制器) -->
  <include file="$(find jaka_zu12_moveit_config)/launch/move_group.launch">
    <arg name="allow_trajectory_execution" value="true"/>
    <arg name="fake_execution" value="false"/>
    <arg name="info" value="true"/>
    <arg name="debug" value="$(arg debug)"/>
    <arg name="load_robot_description" value="$(arg load_robot_description)"/>
  </include>

  <!-- Run Rviz and load the default config to see the state of the move_group node 运行Rviz并加载默认配置以查看move_group节点的状态 -->
  <include file="$(find jaka_zu12_moveit_config)/launch/moveit_rviz.launch">
    <arg name="rviz_config" value="$(find jaka_zu12_moveit_config)/launch/moveit.rviz"/>
    <arg name="debug" value="$(arg debug)"/>
  </include>

  <!-- If database loading was enabled, start mongodb as well 如果启用了数据库加载,也要启动mongodb -->
  <include file="$(find jaka_zu12_moveit_config)/launch/default_warehouse_db.launch" if="$(arg db)">
    <arg name="moveit_warehouse_database_path" value="$(arg db_path)"/>
  </include>

</launch>

到了这里,关于MoveIt!生成的机器人**_moveit_config包中config文件和launch文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器人轨迹生成:轨迹规划与路径规划

    机器人轨迹生成涉及到轨迹规划和路径规划两个关键概念,它们是机器人运动控制中的重要组成部分。下面对轨迹规划和路径规划进行深入比较。 轨迹规划(Trajectory Planning): 定义:轨迹规划是指在机器人运动中确定机器人末端或关节的期望轨迹。它是在特定的工作空间中

    2024年02月12日
    浏览(52)
  • linorobot机器人-自动生成-不可用

    好像还是比较混乱。 具体信息参考其官网。 Linorobot是一套开源的ROS兼容机器人,旨在为学生、开发者和研究人员提供一个低成本的平台,以便在ROS(机器人操作系统)的基础上创建新的激动人心的应用。Linorobot支持可从零开始构建的不同机器人底盘,包括2WD、4WD、Mecanum Dr

    2024年02月16日
    浏览(42)
  • MOVEIT初次安装及配置使用

    之后运行 roslaunch moveit_setup_assistant setup_assistant.launch 指令后报错如下 检查后发现原因在于没有配置环境变量 配置后可正常运行 运行好的urdf模型一般是放在功能包里的,所以需要先将该功能包放到工作空间下,编译后配置好该工作空间的环境变量即可在moveit_setup_assistant下对

    2024年02月09日
    浏览(40)
  • ROS Moveit 全网最详细教程

    Moveit的使用、配置和原理相关的内容较多,特别是assistant生成的 moveit_config 包,内容较多,在配置时容易让用户搞不清关系,导致配置过程艰难、漫长。 同时互联网的Moveit文档较为杂乱,配置方法也有区别,因此笔者在学习过程中梳理出了Moveit的使用、配置和原理教程,希望

    2024年02月13日
    浏览(36)
  • 使用Discord机器人和Midjourney构建图像生成服务

    前言         探讨如何利用Discord机器人和Midjourney工具构建一个图像生成服务,使用户能够通过发送消息来生成图像,而无需直接与Midjourney进行交互 准备工作 确保您拥有一个 Discord 账号,并能够创建一个 Discord 服务器。 注册并获取一个 Discord 机器人的令牌(Token),以便用

    2024年02月22日
    浏览(36)
  • 使用 ChatGPT 在几秒钟内生成鼠标移动机器人

    在本教程中,我们利用 OpenAI 的语言模型 ChatGPT 的强大功能为鼠标移动机器人生成 Python 代码。 代码应每 2 秒将鼠标指针移动到屏幕上的随机位置。 如何在指定时间自动打开计算机 凭借基于自然语言输入生成代码的能力,ChatGPT 为希望快速实现某些功能而无需从头编写代码的

    2024年02月09日
    浏览(48)
  • MOVEit再现新漏洞,多个版本受影响

    今年6月,文件共享工具MOVEit Transfer曾曝出SQL 注入漏洞,能让远程攻击者访问其数据库并执行任意代码。最近,MOVEit Transfer 母公司Progress Software又披露了三个新漏洞。 这三个漏洞分别是 CVE-2023-36932、CVE-2023-36933 和 CVE-2023-36934,其中CVE-2023-36932和 CVE-2023-36934都和SQL 注入漏洞漏洞

    2024年02月16日
    浏览(32)
  • ROS Moveit 配置全网最详细教程

    Moveit的使用、配置和原理相关的内容较多,特别是assistant生成的 moveit_config 包,内容较多,在配置时容易让用户搞不清关系,导致配置过程艰难、漫长。 同时互联网的Moveit文档较为杂乱,配置方法也有区别,因此笔者在学习过程中梳理出了Moveit的使用、配置和原理教程,希望

    2024年02月05日
    浏览(47)
  • 谷歌AI机器人Bard新增生成、调试和代码解释功能

    据悉,这次谷歌开发的AI聊天机器人Bard目前竟然可以帮助软件开发人员编程,包括生成代码、包括生成代码、调试和代码解释。 另据谷歌研究产品负责人Paige Bailey介绍说,编码一直是谷歌从用户那里收到的最重要的请求之一,也正是基于这种需求逐渐对Ai机器人进行升级。目前

    2024年02月13日
    浏览(43)
  • Moveit + Gazebo:搭建双臂仿真平台(方案一)

    环境ubuntu20.04 ROS-noetic         国内少有搭建Moveit和Gazebo联合仿真的教程,对于搭建双臂等复杂的仿真平台更是鲜有资料,因此想要把自己的见解分享出来供大家参考,共同提高。         本文提出了两种方法实现Moveit 对双臂的规划,并在gazebo中进行仿真         

    2023年04月08日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包