-
 

moveit_python package from moveit_python repo

moveit_python

Package Summary

Tags No category tags.
Version 0.4.5
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/mikeferguson/moveit_python.git
VCS Type git
VCS Version ros1
Last Updated 2023-01-07
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A pure-python interaface to the MoveIt! ROS API.

Additional Links

Maintainers

  • Michael Ferguson

Authors

  • Michael Ferguson

moveit_python

This is a set of pure-python bindings to the ROS interface of MoveIt! based on the earlier moveit_utils package that was developed as part of the chess_player package.

Overview

There are three interfaces currently:

  • MoveGroupInterface – used to move the arm using the move_group action.
  • PlanningSceneInterface – used to add/remove collision and attached objects. Can also set the colors of objects.
  • PickPlaceInterface – used to interface to the pick and place actions.

MoveGroupInterface

The MoveGroupInterface is quite easy to use:

import rospy
from moveit_python import *

rospy.init_node("moveit_py")
g = MoveGroupInterface("planning_group_name", "base_link")

Obviously, you might need different values for base_link, and your planning group is probably not called “planning_group_name”.

PlanningSceneInterface

The PlanningSceneInterface allows you to easily insert and remove objects from the MoveIt! planning scene. Starting with version 0.3.0, this module will try to use the newer service-based approach to apply planning scene updates, as this is much more robust than publishing messages over topics asynchronously.

import rospy
from moveit_python import *

rospy.init_node("moveit_py")
# create a planning scene interface, provide name of root link
p = PlanningSceneInterface("base_link")

# add a cube of 0.1m size, at [1, 0, 0.5] in the base_link frame
p.addCube("my_cube", 0.1, 1, 0, 0.5)

# do something

# remove the cube
p.removeCollisionObject("my_cube")

If for some reason you would prefer to not use the service, simply set “use_service” to false in the various add/remove calls. Calling waitForSync will republish messages as needed to synchronize the planning scene between your script and MoveIt.

p.addCube("my_cube", 0.1, 1, 0, 0.5, use_service=False)
p.addCube("my_other_cube", 0.1, 2, 0, 0.5, use_service=False)
p.waitForSync()

PickPlaceInterface

import rospy
from moveit_python import *
from moveit_msgs.msg import Grasp, PlaceLocation

rospy.init_node("moveit_py")
# provide arm group and gripper group names
# also takes a third parameter "plan_only" which defaults to False
p = PickPlaceInterface("arm", "gripper")

g = Grasp()
# fill in g
# setup object named object_name using PlanningSceneInterface
p.pickup("object_name", [g, ], support_name = "supporting_surface")

l = PlaceLocation()
# fill in l
p.place("object_name" [l, ], goal_is_eef = True, support_name = "supporting_surface")

Migration from moveit_utils

  • GraspingInterface renamed to PickPlaceInterface
    • The pick/place functions now return the entire action result, in moveit_utils they returned only the error_code. To access the error code as it used to be returned, you would use result.error_code.val
  • ObjectManager renamed to PlanningSceneInterface
    • remove function is now removeCollisionObject and removeAttachedObject
  • ArmInterface renamed to MoveGroupInterface
CHANGELOG

Changelog for package moveit_python

0.4.5 (2023-01-03)

  • fix CI after adding setup tools dependency
  • Contributors: Michael Ferguson

0.4.4 (2022-12-23)

  • use setuptools (#33) setup from distutils is deprecated and will be removed eventually. It already breaks on Debian testing.
  • Contributors: Michael Görner

0.4.3 (2022-01-14)

  • fix: Add [attached_object_touch_links]{.title-ref} to pickup (#31)
  • Contributors: Kai Waelti

0.4.2 (2021-06-28)

  • New cone primitive and box primitive frame fix (#30)
    • Box primitive frame independent of planning scene
    • Added cone solid primitive
  • Contributors: Kiran Prasad

0.4.1 (2021-02-11)

  • add support for objects not in fixed_frame
  • Contributors: Michael Ferguson

0.4.0 (2021-01-17)

  • various fixes for noetic/python3 (#28)
  • Contributors: Michael Ferguson

0.3.6 (2020-12-25)

  • update package.xml for python3 support
  • Contributors: Michael Ferguson

0.3.5 (2020-12-25)

  • use "is None"
  • Fixed a comparison and logical statement order issue. (#26)
  • fix pyassimp indices bug (#27)
  • Contributors: Karl Kangur, Michael Ferguson, Shingo Kitagawa

0.3.4 (2020-04-22)

  • Fixed error message when removing attached object. (#25) Co-authored-by: Karl Kangur <<karl.kangur@exwzd.com>>
  • Merge pull request #24 from v4hn/pr-master-python3 python3 compatible API & syntax
  • python3 compatible API & syntax
  • Contributors: Karl Kangur, Michael Ferguson, v4hn

0.3.3 (2019-11-21)

  • add sphere to planning scene interface
  • add move_group parameter to MoveGroup class
  • Contributors: Michael Ferguson, arwtyxouymz

0.3.2 (2019-11-14)

  • enable pyassimp for melodic
  • update maintainer email
  • Contributors: Michael Ferguson, Shingo Kitagawa

0.3.1 (2018-08-13)

  • add missing namespace to apply service
  • Contributors: Michael Ferguson

0.3.0 (2018-07-31)

0.2.17 (2016-08-23)

  • Merge pull request #9 from mikeferguson/pyassimp_fix pyassimp is broken in 16.04, temporary work around so we can release
  • Contributors: Michael Ferguson

0.2.16 (2015-11-02)

  • fix error message to have proper function name
  • Contributors: Michael Ferguson

0.2.15 (2015-08-20)

  • Fix types in move_group_interface
  • add planning_scene_diff as optional field
  • Contributors: Michael Ferguson, Mikkel Rath Pedersen

0.2.14 (2015-05-22)

  • add no-wait behavior for move, pick, and place
  • updates for compliance with PEP8
  • Contributors: Aaron Blasdel, Michael Ferguson

0.2.13 (2015-04-18)

  • better handle removal of objects
  • place has no attached_object_touch_links
  • Contributors: Michael Ferguson

0.2.12 (2015-04-11)

  • fixup planner id
  • Contributors: Michael Ferguson

0.2.11 (2015-04-08)

  • fix spelling issue in velocity scaling factor
  • Contributors: Michael Ferguson

0.2.10 (2015-04-06)

  • implement kwargs for pick&place interface
  • add max_velocity_scaling_factor as kwarg
  • allow overriding allowed_planning_time
  • add FakeGroupInterface
  • add clear() method to planning scene interface
  • Contributors: Michael Ferguson

0.2.9 (2015-03-28)

  • add rotate_pose_msg_about_origin
  • Contributors: Michael Ferguson

0.2.8 (2015-03-21)

  • expose num_attempts through kw_args
  • Contributors: Michael Ferguson

0.2.7 (2014-11-19)

  • enable removing attached objects
  • Contributors: Michael Ferguson

0.2.6 (2014-11-16)

  • use kw_args for group interface, add a number of args supported
  • a couple of fixes for is_diff
  • Contributors: Michael Ferguson

0.2.5 (2014-07-09)

  • add scripts for dumping/loading planning scene
  • documentation cleanup
  • Contributors: Michael Ferguson

0.2.4 (2014-06-03)

  • add list and remove object scripts, closes #2
  • properly initialize planning scene interface, fixes #1
  • add planner_id logic to move group interface
  • remove default support name
  • fix comment on result type
  • add missing import
  • upstream the retry logic
  • Contributors: Michael Ferguson

0.2.3 (2014-05-26)

  • fix bug in mesh generation
  • Contributors: Michael Ferguson

0.2.2 (2014-05-21)

  • pass full result in pick and place
  • Contributors: Michael Ferguson

0.2.1 (2014-05-19)

  • fix pyassimp rosdep
  • Contributors: Michael Ferguson

0.2.0 (2014-05-19)

  • Initial release after forking from moveit_utils
  • Contributors: Michael Ferguson

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged moveit_python at Robotics Stack Exchange

moveit_python package from moveit_python repo

moveit_python

Package Summary

Tags No category tags.
Version 0.4.5
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/mikeferguson/moveit_python.git
VCS Type git
VCS Version ros1
Last Updated 2023-01-07
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A pure-python interaface to the MoveIt! ROS API.

Additional Links

Maintainers

  • Michael Ferguson

Authors

  • Michael Ferguson

moveit_python

This is a set of pure-python bindings to the ROS interface of MoveIt! based on the earlier moveit_utils package that was developed as part of the chess_player package.

Overview

There are three interfaces currently:

  • MoveGroupInterface – used to move the arm using the move_group action.
  • PlanningSceneInterface – used to add/remove collision and attached objects. Can also set the colors of objects.
  • PickPlaceInterface – used to interface to the pick and place actions.

MoveGroupInterface

The MoveGroupInterface is quite easy to use:

import rospy
from moveit_python import *

rospy.init_node("moveit_py")
g = MoveGroupInterface("planning_group_name", "base_link")

Obviously, you might need different values for base_link, and your planning group is probably not called “planning_group_name”.

PlanningSceneInterface

The PlanningSceneInterface allows you to easily insert and remove objects from the MoveIt! planning scene. Starting with version 0.3.0, this module will try to use the newer service-based approach to apply planning scene updates, as this is much more robust than publishing messages over topics asynchronously.

import rospy
from moveit_python import *

rospy.init_node("moveit_py")
# create a planning scene interface, provide name of root link
p = PlanningSceneInterface("base_link")

# add a cube of 0.1m size, at [1, 0, 0.5] in the base_link frame
p.addCube("my_cube", 0.1, 1, 0, 0.5)

# do something

# remove the cube
p.removeCollisionObject("my_cube")

If for some reason you would prefer to not use the service, simply set “use_service” to false in the various add/remove calls. Calling waitForSync will republish messages as needed to synchronize the planning scene between your script and MoveIt.

p.addCube("my_cube", 0.1, 1, 0, 0.5, use_service=False)
p.addCube("my_other_cube", 0.1, 2, 0, 0.5, use_service=False)
p.waitForSync()

PickPlaceInterface

import rospy
from moveit_python import *
from moveit_msgs.msg import Grasp, PlaceLocation

rospy.init_node("moveit_py")
# provide arm group and gripper group names
# also takes a third parameter "plan_only" which defaults to False
p = PickPlaceInterface("arm", "gripper")

g = Grasp()
# fill in g
# setup object named object_name using PlanningSceneInterface
p.pickup("object_name", [g, ], support_name = "supporting_surface")

l = PlaceLocation()
# fill in l
p.place("object_name" [l, ], goal_is_eef = True, support_name = "supporting_surface")

Migration from moveit_utils

  • GraspingInterface renamed to PickPlaceInterface
    • The pick/place functions now return the entire action result, in moveit_utils they returned only the error_code. To access the error code as it used to be returned, you would use result.error_code.val
  • ObjectManager renamed to PlanningSceneInterface
    • remove function is now removeCollisionObject and removeAttachedObject
  • ArmInterface renamed to MoveGroupInterface
CHANGELOG

Changelog for package moveit_python

0.4.5 (2023-01-03)

  • fix CI after adding setup tools dependency
  • Contributors: Michael Ferguson

0.4.4 (2022-12-23)

  • use setuptools (#33) setup from distutils is deprecated and will be removed eventually. It already breaks on Debian testing.
  • Contributors: Michael Görner

0.4.3 (2022-01-14)

  • fix: Add [attached_object_touch_links]{.title-ref} to pickup (#31)
  • Contributors: Kai Waelti

0.4.2 (2021-06-28)

  • New cone primitive and box primitive frame fix (#30)
    • Box primitive frame independent of planning scene
    • Added cone solid primitive
  • Contributors: Kiran Prasad

0.4.1 (2021-02-11)

  • add support for objects not in fixed_frame
  • Contributors: Michael Ferguson

0.4.0 (2021-01-17)

  • various fixes for noetic/python3 (#28)
  • Contributors: Michael Ferguson

0.3.6 (2020-12-25)

  • update package.xml for python3 support
  • Contributors: Michael Ferguson

0.3.5 (2020-12-25)

  • use "is None"
  • Fixed a comparison and logical statement order issue. (#26)
  • fix pyassimp indices bug (#27)
  • Contributors: Karl Kangur, Michael Ferguson, Shingo Kitagawa

0.3.4 (2020-04-22)

  • Fixed error message when removing attached object. (#25) Co-authored-by: Karl Kangur <<karl.kangur@exwzd.com>>
  • Merge pull request #24 from v4hn/pr-master-python3 python3 compatible API & syntax
  • python3 compatible API & syntax
  • Contributors: Karl Kangur, Michael Ferguson, v4hn

0.3.3 (2019-11-21)

  • add sphere to planning scene interface
  • add move_group parameter to MoveGroup class
  • Contributors: Michael Ferguson, arwtyxouymz

0.3.2 (2019-11-14)

  • enable pyassimp for melodic
  • update maintainer email
  • Contributors: Michael Ferguson, Shingo Kitagawa

0.3.1 (2018-08-13)

  • add missing namespace to apply service
  • Contributors: Michael Ferguson

0.3.0 (2018-07-31)

0.2.17 (2016-08-23)

  • Merge pull request #9 from mikeferguson/pyassimp_fix pyassimp is broken in 16.04, temporary work around so we can release
  • Contributors: Michael Ferguson

0.2.16 (2015-11-02)

  • fix error message to have proper function name
  • Contributors: Michael Ferguson

0.2.15 (2015-08-20)

  • Fix types in move_group_interface
  • add planning_scene_diff as optional field
  • Contributors: Michael Ferguson, Mikkel Rath Pedersen

0.2.14 (2015-05-22)

  • add no-wait behavior for move, pick, and place
  • updates for compliance with PEP8
  • Contributors: Aaron Blasdel, Michael Ferguson

0.2.13 (2015-04-18)

  • better handle removal of objects
  • place has no attached_object_touch_links
  • Contributors: Michael Ferguson

0.2.12 (2015-04-11)

  • fixup planner id
  • Contributors: Michael Ferguson

0.2.11 (2015-04-08)

  • fix spelling issue in velocity scaling factor
  • Contributors: Michael Ferguson

0.2.10 (2015-04-06)

  • implement kwargs for pick&place interface
  • add max_velocity_scaling_factor as kwarg
  • allow overriding allowed_planning_time
  • add FakeGroupInterface
  • add clear() method to planning scene interface
  • Contributors: Michael Ferguson

0.2.9 (2015-03-28)

  • add rotate_pose_msg_about_origin
  • Contributors: Michael Ferguson

0.2.8 (2015-03-21)

  • expose num_attempts through kw_args
  • Contributors: Michael Ferguson

0.2.7 (2014-11-19)

  • enable removing attached objects
  • Contributors: Michael Ferguson

0.2.6 (2014-11-16)

  • use kw_args for group interface, add a number of args supported
  • a couple of fixes for is_diff
  • Contributors: Michael Ferguson

0.2.5 (2014-07-09)

  • add scripts for dumping/loading planning scene
  • documentation cleanup
  • Contributors: Michael Ferguson

0.2.4 (2014-06-03)

  • add list and remove object scripts, closes #2
  • properly initialize planning scene interface, fixes #1
  • add planner_id logic to move group interface
  • remove default support name
  • fix comment on result type
  • add missing import
  • upstream the retry logic
  • Contributors: Michael Ferguson

0.2.3 (2014-05-26)

  • fix bug in mesh generation
  • Contributors: Michael Ferguson

0.2.2 (2014-05-21)

  • pass full result in pick and place
  • Contributors: Michael Ferguson

0.2.1 (2014-05-19)

  • fix pyassimp rosdep
  • Contributors: Michael Ferguson

0.2.0 (2014-05-19)

  • Initial release after forking from moveit_utils
  • Contributors: Michael Ferguson

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged moveit_python at Robotics Stack Exchange