Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

💥 Adds new push, slide and pick and place task environments #26

Merged
merged 5 commits into from
Jun 4, 2020

Conversation

rickstaa
Copy link
Owner

@rickstaa rickstaa commented Jun 4, 2020

Adds 3 new task environments to the panda_openai_sim package:

  • A push environment in which the robot has to push a block to the goal position.
  • A slide environment in which the robot has to slide a block to a goal position.
  • A pick and place environment in which the robot has to pick up a block and put it in a goal
    position.

💥 NOTE:
While doing this I had to introduce a lot of breaking changes for the new environments to work. As a result some of the code in this pull request is not back compatibile.

parameters

Features:
 - A get_controlled_joint service has been added which can be used
 to retreive the joints that are controlled by a control_type.
 - Added a get random joint positions services which can be used
 to request random valid joint positions.
 - A 'goal_smaple_region' and 'target_marker' rviz marker were added.

Small features:
 - The 'joint_positions_2_follow_joint_trajectory_goal' function now
 also takes a 'SetJointPositionRequest' message.
- The '_set_action' function now also takes joint positions, joint
 efforts and joint trajectories.

Bug Fix:
 - Fixed a small bug in the 'set_init_pose' function.
 - Fixed a type check error in the 'control_switcher' class.

Breaking changes:
 - In earlier commits, ROS parameters were used to set values in
 the PandaTaskEnv environment. In this commit, however, I decided to
 switch to using one central YAML configuration file. I believe by doing
 this, it is more evident for users where they can change environment
 parameters. Additionally, this makes the panda_task_env script less
 complex. Consequently, the 'ddpg_config.yaml' and 'her_config.yaml'
 files have been removed as well as the PandaTaskEnv 'get_parms' and
 '_get_parms' functions.
Features:
 - A method was added to the PandaTaskEnv which validates the
 constructor input arguments.i
 - A '_spawn_object' and '_set_model_state' function were added to the
 GazeboGoalEnvironment such that we can spawn and change the position
 of objects in the simulation.

Changes:
 - Removed get_params and _get_params functions since the ROS
 parameters are no longer used.

Bug fix:
 - Fixed a bug in the init_set_pose function
…ices.

Improvements:
 - Improved input argeument validation function.
 - Improved the random ee pose and random joint positions services such
 that users can now also specify joint limits and bounding regions when
 requesting a random position/pose.

Bug Fixes:
 - Fixed a bug in the PandaTaskEnv and GazeboGoalEnvironment which
 caused the 'joint_states', 'model_states' and 'link_states' to be
 never updated since the rospy.spin() was never called. To do this
 subscribers were replaced by properties in which the
 'rospy.wait_for_message' function is used.
 - Fixed a bug in the 'moveit_planner_service' which caused the
 retval to never return to the user.
Main Features:
 - The 'PandaTaskEnv' now automatically determines the size of the
 acion space based on the constructor input arguments.
 - The 'goal_sample' function was updated such that is samples within
 the goal sample region.

Small features:
 - Added a boolean which allows the user to specify wheter the
 robot pose has to be reset when the environment is reset.
 - Added a 'env_config.yaml' file which can be used to set a
 number of important parameters for the 'PandaTaskEnv'.
 - The 'set_ee_pose', 'set_joint_positions' and
 'set_joint_efforts' services now also takes a list of values as an input.

Breaking Changes:
 - Due to the fact that the python package structure and the
 package name has been changed the code in this commit is
 not fully back compatible with earlier commits.

Other changes:
 - Cleaned up the code in all the functions and scripts.
 - Improved docstrings.
🙈 Updates .gitignore
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant