moveit_python package from moveit_python repo

moveit_python

Package Summary

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

Repository Summary

Checkout URI https://github.com/mikeferguson/moveit_python.git
VCS Type git
VCS Version master
Last Updated 2019-11-15
Dev Status DEVELOPED
Released RELEASED

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.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

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

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 answers.ros.org

moveit_python package from moveit_python repo

moveit_python

Package Summary

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

Repository Summary

Checkout URI https://github.com/mikeferguson/moveit_python.git
VCS Type git
VCS Version master
Last Updated 2019-11-15
Dev Status DEVELOPED
Released RELEASED

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.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

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

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 answers.ros.org

moveit_python package from moveit_python repo

moveit_python

Package Summary

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

Repository Summary

Checkout URI https://github.com/mikeferguson/moveit_python.git
VCS Type git
VCS Version master
Last Updated 2019-11-15
Dev Status DEVELOPED
Released RELEASED

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.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

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

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 answers.ros.org

moveit_python package from moveit_python repo

moveit_python

Package Summary

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

Repository Summary

Checkout URI https://github.com/mikeferguson/moveit_python.git
VCS Type git
VCS Version master
Last Updated 2019-11-15
Dev Status DEVELOPED
Released RELEASED

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.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

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

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 answers.ros.org

moveit_python package from moveit_python repo

moveit_python

Package Summary

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

Repository Summary

Checkout URI https://github.com/mikeferguson/moveit_python.git
VCS Type git
VCS Version master
Last Updated 2019-11-15
Dev Status DEVELOPED
Released RELEASED

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.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

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

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 answers.ros.org

moveit_python package from moveit_python repo

moveit_python

Package Summary

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

Repository Summary

Checkout URI https://github.com/mikeferguson/moveit_python.git
VCS Type git
VCS Version master
Last Updated 2019-11-15
Dev Status DEVELOPED
Released RELEASED

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.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

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Dependant Packages

No known dependants.

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 answers.ros.org