ROS1与Interbotix系列机械臂教程-仿真-使用moveit控制
文章说明
- 本教程主要介绍在gazebo中使用moveit控制机械臂
操作步骤
- 启动仿真中的moveit
$ roslaunch interbotix_xsarm_moveit_interface xsarm_moveit_interface.launch robot_model:=wx250s use_cpp_interface:=true use_fake:=true dof:=6
use_cpp_interface:=true use_fake:=true
... logging to /home/ubuntu/.ros/log/846c0ad0-bb5b-11ee-b04b-cb4a99a4e119/ubuntu-8297.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://localhost:41749/
SUMMARY
========
PARAMETERS
* /rosdistro: noetic
* /rosversion: 1.16.0
* /wx250s/joint_state_publisher/rate: 100
* /wx250s/joint_state_publisher/source_list: ['move_group/fake...
* /wx250s/move_group/allow_trajectory_execution: True
* /wx250s/move_group/capabilities:
* /wx250s/move_group/controller_list: [{'name': 'fake_i...
* /wx250s/move_group/disable_capabilities:
* /wx250s/move_group/interbotix_arm/default_planner_config: RRTConnect
* /wx250s/move_group/interbotix_arm/planner_configs: ['SBL', 'EST', 'L...
* /wx250s/move_group/interbotix_gripper/default_planner_config: RRTConnect
* /wx250s/move_group/interbotix_gripper/planner_configs: ['SBL', 'EST', 'L...
* /wx250s/move_group/jiggle_fraction: 0.05
* /wx250s/move_group/max_range: 5.0
* /wx250s/move_group/max_safe_path_cost: 1
* /wx250s/move_group/moveit_controller_manager: moveit_fake_contr...
* /wx250s/move_group/moveit_manage_controllers: True
* /wx250s/move_group/octomap_resolution: 0.025
* /wx250s/move_group/planner_configs/BFMT/balanced: 0
* /wx250s/move_group/planner_configs/BFMT/cache_cc: 1
* /wx250s/move_group/planner_configs/BFMT/extended_fmt: 1
* /wx250s/move_group/planner_configs/BFMT/heuristics: 1
* /wx250s/move_group/planner_configs/BFMT/nearest_k: 1
* /wx250s/move_group/planner_configs/BFMT/num_samples: 1000
* /wx250s/move_group/planner_configs/BFMT/optimality: 1
* /wx250s/move_group/planner_configs/BFMT/radius_multiplier: 1.0
* /wx250s/move_group/planner_configs/BFMT/type: geometric::BFMT
* /wx250s/move_group/planner_configs/BKPIECE/border_fraction: 0.9
* /wx250s/move_group/planner_configs/BKPIECE/failed_expansion_score_factor: 0.5
* /wx250s/move_group/planner_configs/BKPIECE/min_valid_path_fraction: 0.5
* /wx250s/move_group/planner_configs/BKPIECE/range: 0.0
* /wx250s/move_group/planner_configs/BKPIECE/type: geometric::BKPIECE
* /wx250s/move_group/planner_configs/BiEST/range: 0.0
* /wx250s/move_group/planner_configs/BiEST/type: geometric::BiEST
* /wx250s/move_group/planner_configs/BiTRRT/cost_threshold: 1e300
* /wx250s/move_group/planner_configs/BiTRRT/frountier_node_ratio: 0.1
* /wx250s/move_group/planner_configs/BiTRRT/frountier_threshold: 0.0
* /wx250s/move_group/planner_configs/BiTRRT/init_temperature: 100
* /wx250s/move_group/planner_configs/BiTRRT/range: 0.0
* /wx250s/move_group/planner_configs/BiTRRT/temp_change_factor: 0.1
* /wx250s/move_group/planner_configs/BiTRRT/type: geometric::BiTRRT
* /wx250s/move_group/planner_configs/EST/goal_bias: 0.05
* /wx250s/move_group/planner_configs/EST/range: 0.0
* /wx250s/move_group/planner_configs/EST/type: geometric::EST
* /wx250s/move_group/planner_configs/FMT/cache_cc: 1
* /wx250s/move_group/planner_configs/FMT/extended_fmt: 1
* /wx250s/move_group/planner_configs/FMT/heuristics: 0
* /wx250s/move_group/planner_configs/FMT/nearest_k: 1
* /wx250s/move_group/planner_configs/FMT/num_samples: 1000
* /wx250s/move_group/planner_configs/FMT/radius_multiplier: 1.1
* /wx250s/move_group/planner_configs/FMT/type: geometric::FMT
* /wx250s/move_group/planner_configs/KPIECE/border_fraction: 0.9
* /wx250s/move_group/planner_configs/KPIECE/failed_expansion_score_factor: 0.5
* /wx250s/move_group/planner_configs/KPIECE/goal_bias: 0.05
* /wx250s/move_group/planner_configs/KPIECE/min_valid_path_fraction: 0.5
* /wx250s/move_group/planner_configs/KPIECE/range: 0.0
* /wx250s/move_group/planner_configs/KPIECE/type: geometric::KPIECE
* /wx250s/move_group/planner_configs/LBKPIECE/border_fraction: 0.9
* /wx250s/move_group/planner_configs/LBKPIECE/min_valid_path_fraction: 0.5
* /wx250s/move_group/planner_configs/LBKPIECE/range: 0.0
* /wx250s/move_group/planner_configs/LBKPIECE/type: geometric::LBKPIECE
* /wx250s/move_group/planner_configs/LBTRRT/epsilon: 0.4
* /wx250s/move_group/planner_configs/LBTRRT/goal_bias: 0.05
* /wx250s/move_group/planner_configs/LBTRRT/range: 0.0
* /wx250s/move_group/planner_configs/LBTRRT/type: geometric::LBTRRT
* /wx250s/move_group/planner_configs/LazyPRM/range: 0.0
* /wx250s/move_group/planner_configs/LazyPRM/type: geometric::LazyPRM
* /wx250s/move_group/planner_configs/LazyPRMstar/type: geometric::LazyPR...
* /wx250s/move_group/planner_configs/PDST/type: geometric::PDST
* /wx250s/move_group/planner_configs/PRM/max_nearest_neighbors: 10
* /wx250s/move_group/planner_configs/PRM/type: geometric::PRM
* /wx250s/move_group/planner_configs/PRMstar/type: geometric::PRMstar
* /wx250s/move_group/planner_configs/ProjEST/goal_bias: 0.05
* /wx250s/move_group/planner_configs/ProjEST/range: 0.0
* /wx250s/move_group/planner_configs/ProjEST/type: geometric::ProjEST
* /wx250s/move_group/planner_configs/RRT/goal_bias: 0.05
* /wx250s/move_group/planner_configs/RRT/range: 0.0
* /wx250s/move_group/planner_configs/RRT/type: geometric::RRT
* /wx250s/move_group/planner_configs/RRTConnect/range: 0.0
* /wx250s/move_group/planner_configs/RRTConnect/type: geometric::RRTCon...
* /wx250s/move_group/planner_configs/RRTstar/delay_collision_checking: 1
* /wx250s/move_group/planner_configs/RRTstar/goal_bias: 0.05
* /wx250s/move_group/planner_configs/RRTstar/range: 0.0
* /wx250s/move_group/planner_configs/RRTstar/type: geometric::RRTstar
* /wx250s/move_group/planner_configs/SBL/range: 0.0
* /wx250s/move_group/planner_configs/SBL/type: geometric::SBL
* /wx250s/move_group/planner_configs/SPARS/dense_delta_fraction: 0.001
* /wx250s/move_group/planner_configs/SPARS/max_failures: 1000
* /wx250s/move_group/planner_configs/SPARS/sparse_delta_fraction: 0.25
* /wx250s/move_group/planner_configs/SPARS/stretch_factor: 3.0
* /wx250s/move_group/planner_configs/SPARS/type: geometric::SPARS
* /wx250s/move_group/planner_configs/SPARStwo/dense_delta_fraction: 0.001
* /wx250s/move_group/planner_configs/SPARStwo/max_failures: 5000
* /wx250s/move_group/planner_configs/SPARStwo/sparse_delta_fraction: 0.25
* /wx250s/move_group/planner_configs/SPARStwo/stretch_factor: 3.0
* /wx250s/move_group/planner_configs/SPARStwo/type: geometric::SPARStwo
* /wx250s/move_group/planner_configs/STRIDE/degree: 16
* /wx250s/move_group/planner_configs/STRIDE/estimated_dimension: 0.0
* /wx250s/move_group/planner_configs/STRIDE/goal_bias: 0.05
* /wx250s/move_group/planner_configs/STRIDE/max_degree: 18
* /wx250s/move_group/planner_configs/STRIDE/max_pts_per_leaf: 6
* /wx250s/move_group/planner_configs/STRIDE/min_degree: 12
* /wx250s/move_group/planner_configs/STRIDE/min_valid_path_fraction: 0.2
* /wx250s/move_group/planner_configs/STRIDE/range: 0.0
* /wx250s/move_group/planner_configs/STRIDE/type: geometric::STRIDE
* /wx250s/move_group/planner_configs/STRIDE/use_projected_distance: 0
* /wx250s/move_group/planner_configs/TRRT/frountierNodeRatio: 0.1
* /wx250s/move_group/planner_configs/TRRT/frountier_threshold: 0.0
* /wx250s/move_group/planner_configs/TRRT/goal_bias: 0.05
* /wx250s/move_group/planner_configs/TRRT/init_temperature: 10e-6
* /wx250s/move_group/planner_configs/TRRT/k_constant: 0.0
* /wx250s/move_group/planner_configs/TRRT/max_states_failed: 10
* /wx250s/move_group/planner_configs/TRRT/min_temperature: 10e-10
* /wx250s/move_group/planner_configs/TRRT/range: 0.0
* /wx250s/move_group/planner_configs/TRRT/temp_change_factor: 2.0
* /wx250s/move_group/planner_configs/TRRT/type: geometric::TRRT
* /wx250s/move_group/planning_plugin: ompl_interface/OM...
* /wx250s/move_group/planning_scene_monitor/publish_geometry_updates: True
* /wx250s/move_group/planning_scene_monitor/publish_planning_scene: True
* /wx250s/move_group/planning_scene_monitor/publish_state_updates: True
* /wx250s/move_group/planning_scene_monitor/publish_transforms_updates: True
* /wx250s/move_group/request_adapters: default_planner_r...
* /wx250s/move_group/sensors: []
* /wx250s/move_group/start_state_max_bounds_error: 0.1
* /wx250s/move_group/trajectory_execution/allowed_execution_duration_scaling: 4.0
* /wx250s/move_group/trajectory_execution/allowed_goal_duration_margin: 0.5
* /wx250s/move_group/trajectory_execution/allowed_start_tolerance: 0.01
* /wx250s/robot_description: <?xml version="1....
* /wx250s/robot_description_kinematics/interbotix_arm/kinematics_solver: lma_kinematics_pl...
* /wx250s/robot_description_kinematics/interbotix_arm/kinematics_solver_search_resolution: 0.005
* /wx250s/robot_description_kinematics/interbotix_arm/kinematics_solver_timeout: 0.005
* /wx250s/robot_description_kinematics/interbotix_arm/position_only_ik: False
* /wx250s/robot_description_planning/default_acceleration_scaling_factor: 1.0
* /wx250s/robot_description_planning/default_velocity_scaling_factor: 1.0
* /wx250s/robot_description_planning/joint_limits/elbow/has_acceleration_limits: True
* /wx250s/robot_description_planning/joint_limits/elbow/has_velocity_limits: True
* /wx250s/robot_description_planning/joint_limits/elbow/max_acceleration: 5
* /wx250s/robot_description_planning/joint_limits/elbow/max_velocity: 2.35
* /wx250s/robot_description_planning/joint_limits/forearm_roll/has_acceleration_limits: True
* /wx250s/robot_description_planning/joint_limits/forearm_roll/has_velocity_limits: True
* /wx250s/robot_description_planning/joint_limits/forearm_roll/max_acceleration: 5
* /wx250s/robot_description_planning/joint_limits/forearm_roll/max_velocity: 2.35
* /wx250s/robot_description_planning/joint_limits/left_finger/has_acceleration_limits: True
* /wx250s/robot_description_planning/joint_limits/left_finger/has_velocity_limits: True
* /wx250s/robot_description_planning/joint_limits/left_finger/max_acceleration: 0.01
* /wx250s/robot_description_planning/joint_limits/left_finger/max_velocity: 1
* /wx250s/robot_description_planning/joint_limits/right_finger/has_acceleration_limits: True
* /wx250s/robot_description_planning/joint_limits/right_finger/has_velocity_limits: True
* /wx250s/robot_description_planning/joint_limits/right_finger/max_acceleration: 0.01
* /wx250s/robot_description_planning/joint_limits/right_finger/max_velocity: 1
* /wx250s/robot_description_planning/joint_limits/shoulder/has_acceleration_limits: True
* /wx250s/robot_description_planning/joint_limits/shoulder/has_velocity_limits: True
* /wx250s/robot_description_planning/joint_limits/shoulder/max_acceleration: 5
* /wx250s/robot_description_planning/joint_limits/shoulder/max_velocity: 2.35
* /wx250s/robot_description_planning/joint_limits/waist/has_acceleration_limits: True
* /wx250s/robot_description_planning/joint_limits/waist/has_velocity_limits: True
* /wx250s/robot_description_planning/joint_limits/waist/max_acceleration: 5
* /wx250s/robot_description_planning/joint_limits/waist/max_velocity: 2.35
* /wx250s/robot_description_planning/joint_limits/wrist_angle/has_acceleration_limits: True
* /wx250s/robot_description_planning/joint_limits/wrist_angle/has_velocity_limits: True
* /wx250s/robot_description_planning/joint_limits/wrist_angle/max_acceleration: 5
* /wx250s/robot_description_planning/joint_limits/wrist_angle/max_velocity: 2.35
* /wx250s/robot_description_planning/joint_limits/wrist_rotate/has_acceleration_limits: True
* /wx250s/robot_description_planning/joint_limits/wrist_rotate/has_velocity_limits: True
* /wx250s/robot_description_planning/joint_limits/wrist_rotate/max_acceleration: 5
* /wx250s/robot_description_planning/joint_limits/wrist_rotate/max_velocity: 2.35
* /wx250s/robot_description_semantic: <?xml version="1....
* /wx250s/rviz_ubuntu_8297_2613924948350264319/interbotix_arm/kinematics_solver: lma_kinematics_pl...
* /wx250s/rviz_ubuntu_8297_2613924948350264319/interbotix_arm/kinematics_solver_search_resolution: 0.005
* /wx250s/rviz_ubuntu_8297_2613924948350264319/interbotix_arm/kinematics_solver_timeout: 0.005
* /wx250s/rviz_ubuntu_8297_2613924948350264319/interbotix_arm/position_only_ik: False
NODES
/wx250s/
joint_state_publisher (joint_state_publisher/joint_state_publisher)
move_group (moveit_ros_move_group/move_group)
moveit_interface (interbotix_moveit_interface/moveit_interface)
moveit_interface_gui (interbotix_moveit_interface/moveit_interface_gui)
robot_state_publisher (robot_state_publisher/robot_state_publisher)
rviz_ubuntu_8297_2613924948350264319 (rviz/rviz)
auto-starting new master
process[master]: started with pid [8310]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to 846c0ad0-bb5b-11ee-b04b-cb4a99a4e119
process[rosout-1]: started with pid [8320]
started core service [/rosout]
process[wx250s/joint_state_publisher-2]: started with pid [8327]
process[wx250s/robot_state_publisher-3]: started with pid [8328]
process[wx250s/move_group-4]: started with pid [8329]
process[wx250s/rviz_ubuntu_8297_2613924948350264319-5]: started with pid [8330]
process[wx250s/moveit_interface-6]: started with pid [8331]
process[wx250s/moveit_interface_gui-7]: started with pid [8337]
[ WARN] [1706171224.536054981]: Falling back to using the move_group node's namespace (deprecated Melodic behavior).
[ INFO] [1706171224.543181585]: Loading robot model 'wx250s'...
[ INFO] [1706171224.543225180]: No root/virtual joint specified in SRDF. Assuming fixed joint
[ INFO] [1706171224.571768279]: waitForService: Service [/wx250s/get_planning_scene] has not been advertised, waiting...
[ INFO] [1706171224.640911280]: Publishing maintained planning scene on 'monitored_planning_scene'
[ INFO] [1706171224.642752990]: Listening to 'joint_states' for joint states
[ INFO] [1706171224.645900736]: Listening to '/wx250s/attached_collision_object' for attached collision objects
[ INFO] [1706171224.645947305]: Starting planning scene monitor
[ INFO] [1706171224.647585199]: Listening to '/wx250s/planning_scene'
[ INFO] [1706171224.647620885]: Starting world geometry update monitor for collision objects, attached objects, octomap updates.
[ INFO] [1706171224.649170628]: Listening to '/wx250s/collision_object'
[ INFO] [1706171224.650972708]: Listening to '/wx250s/planning_scene_world' for planning scene world geometry
[ INFO] [1706171224.655343641]: rviz version 1.14.20
[ INFO] [1706171224.655392053]: compiled against Qt version 5.12.8
[ INFO] [1706171224.655455189]: compiled against OGRE version 1.9.0 (Ghadamon)
[ INFO] [1706171224.656751452]: Loading planning pipeline ''
[ INFO] [1706171224.663402798]: Forcing OpenGl version 0.
[ INFO] [1706171224.705329301]: Using planning interface 'OMPL'
[ INFO] [1706171224.707797715]: Param 'default_workspace_bounds' was not set. Using default value: 10
[ INFO] [1706171224.708118674]: Param 'start_state_max_bounds_error' was set to 0.1
[ INFO] [1706171224.708409644]: Param 'start_state_max_dt' was not set. Using default value: 0.5
[ INFO] [1706171224.708731938]: Param 'start_state_max_dt' was not set. Using default value: 0.5
[ INFO] [1706171224.709016090]: Param 'jiggle_fraction' was set to 0.05
[ INFO] [1706171224.709314445]: Param 'max_sampling_attempts' was not set. Using default value: 100
[ INFO] [1706171224.709365131]: Using planning request adapter 'Add Time Parameterization'
[ INFO] [1706171224.709402513]: Using planning request adapter 'Fix Workspace Bounds'
[ INFO] [1706171224.709446600]: Using planning request adapter 'Fix Start State Bounds'
[ INFO] [1706171224.709481239]: Using planning request adapter 'Fix Start State In Collision'
[ INFO] [1706171224.709494626]: Using planning request adapter 'Fix Start State Path Constraints'
[ INFO] [1706171224.714593208]: Fake controller 'fake_interbotix_arm_controller' with joints [ waist shoulder elbow forearm_roll wrist_angle wrist_rotate ]
[ INFO] [1706171224.714966906]: Fake controller 'fake_interbotix_gripper_controller' with joints [ left_finger ]
[ INFO] [1706171224.715286977]: Returned 2 controllers in list
[ INFO] [1706171224.724965478]: Trajectory execution is managing controllers
[ INFO] [1706171224.725016230]: MoveGroup debug mode is OFF
Loading 'move_group/ApplyPlanningSceneService'...
Loading 'move_group/ClearOctomapService'...
Loading 'move_group/MoveGroupCartesianPathService'...
Loading 'move_group/MoveGroupExecuteTrajectoryAction'...
Loading 'move_group/MoveGroupGetPlanningSceneService'...
Loading 'move_group/MoveGroupKinematicsService'...
Loading 'move_group/MoveGroupMoveAction'...
Loading 'move_group/MoveGroupPickPlaceAction'...
[ INFO] [1706171224.759504864]: waitForService: Service [/wx250s/get_planning_scene] is now available.
[ INFO] [1706171224.768626250]: Loading robot model 'wx250s'...
[ INFO] [1706171224.768684228]: No root/virtual joint specified in SRDF. Assuming fixed joint
Loading 'move_group/MoveGroupPlanService'...
Loading 'move_group/MoveGroupQueryPlannersService'...
Loading 'move_group/MoveGroupStateValidationService'...
[ INFO] [1706171224.773301243]:
********************************************************
* MoveGroup using:
* - ApplyPlanningSceneService
* - ClearOctomapService
* - CartesianPathService
* - ExecuteTrajectoryAction
* - GetPlanningSceneService
* - KinematicsService
* - MoveAction
* - PickPlaceAction
* - MotionPlanService
* - QueryPlannersService
* - StateValidationService
********************************************************
[ INFO] [1706171224.773614600]: MoveGroup context using planning plugin ompl_interface/OMPLPlanner
[ INFO] [1706171224.773647988]: MoveGroup context initialization complete
You can start planning now!
[ INFO] [1706171225.523774319]: Stereo is NOT SUPPORTED
[ INFO] [1706171225.523875395]: OpenGL device: SVGA3D; build: RELEASE; LLVM;
[ INFO] [1706171225.523911268]: OpenGl version: 2.1 (GLSL 1.2).
[ INFO] [1706171225.977496484]: Ready to take commands for planning group interbotix_arm.
[ INFO] [1706171226.486626401]: Reference frame: world
[ INFO] [1706171226.486838584]: End effector link: wx250s/ee_gripper_link
[ INFO] [1706171229.156993809]: Loading robot model 'wx250s'...
[ INFO] [1706171229.157075574]: No root/virtual joint specified in SRDF. Assuming fixed joint
[ INFO] [1706171229.240663197]: Starting planning scene monitor
[ INFO] [1706171229.242394099]: Listening to '/wx250s/move_group/monitored_planning_scene'
[ INFO] [1706171229.283486107]: Constructing new MoveGroup connection for group 'interbotix_arm' in namespace ''
[ INFO] [1706171230.500019661]: Ready to take commands for planning group interbotix_arm.
- moveit启动成功之后,会弹出一个gui窗口
可以通过调整gui中滑块来指定夹具的位置和方向
Plan Pose
- MoveIt尝试规划夹具移动所需位置和方向的轨迹Plan Position
- MoveIt尝试规划夹具移动所需位置的轨迹,忽略具体方向Plan Orientation
-MoveIt尝试规划夹具移动所需方向的轨迹,忽略具体位置Execute
- 执行规划到的轨迹Reset
- 重置gui中的所有参数值为0
有时候MoveIt会出现无法成功有效轨迹的情况。其主要有两个可能:一是机械臂无法在物理上到达所需的位置,二是MoveIt生成的随机轨迹是不能执行的。如果很明显该位置在物理上可以到达,请多点击按钮重新规划轨迹
指定位置和方向先比较于仅是指定位置时,那找到有效的轨迹要困难得多,特别是对于较低自由度的机械臂
- 通过下图,可更一步了解启动文件的其他参数
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号