-
Notifications
You must be signed in to change notification settings - Fork 164
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
Adapt simulation launch files and add prefix support for simulation and MoveIt #100
Merged
alexvannobel
merged 13 commits into
feature/improve-simulation
from
feature/adapt-simulation-launch-files
Jun 16, 2020
Merged
Adapt simulation launch files and add prefix support for simulation and MoveIt #100
alexvannobel
merged 13 commits into
feature/improve-simulation
from
feature/adapt-simulation-launch-files
Jun 16, 2020
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…h the kortex_driver too, in a different mode
…- only SRDF modifications remain
gstlaurentkinova
approved these changes
Jun 16, 2020
polthergeist
approved these changes
Jun 16, 2020
alexvannobel
added a commit
that referenced
this pull request
Aug 5, 2020
* Separate generators for robot and simulation handlers (#99) * Created interface class and put the RPC handlers in robot folder * Now the robot functions interface work just like before * Added templates and generation for simulated services * Added the simulation services to the driver headers * Added newly generated files to repo * Adapt simulation launch files and add prefix support for simulation and MoveIt (#100) * Created interface class and put the RPC handlers in robot folder * Now the robot functions interface work just like before * Added templates and generation for simulated services * Added the simulation services to the driver headers * Added newly generated files to repo * Added simulation option to the driver so the gazebo package can launch the kortex_driver too, in a different mode * Adapt joint_limits files to correctly take prefix option * Change description and control files to support prefix option * Change MoveIt config launch and config files to enable prefix option - only SRDF modifications remain * Added xacro usage in SRDF files to be able to prefix joint names * Adjust ompl planning launch and config files to support prefixing joint names * Remove --inorder from xacro calls since it's default now * Create simulation handlers (#102) * Created interface class and put the RPC handlers in robot folder * Now the robot functions interface work just like before * Added templates and generation for simulated services * Added the simulation services to the driver headers * Added newly generated files to repo * Added simulation option to the driver so the gazebo package can launch the kortex_driver too, in a different mode * Adapt joint_limits files to correctly take prefix option * Change description and control files to support prefix option * Change MoveIt config launch and config files to enable prefix option - only SRDF modifications remain * Added xacro usage in SRDF files to be able to prefix joint names * Adjust ompl planning launch and config files to support prefixing joint names * Remove --inorder from xacro calls since it's default now * Set default gripper in launch files * Add namespace to launch file parameters passed to driver * Added class and implementation for simulator * Add stubs and register handlers for Action API * Add implementation for default actions and ReacAction/ReadAllActions * Added some unit tests for simulator and CreateAction implentation * Added the case where the prefix could be empty in XACRO * Added prefix support for fake controllers in MoveIt configs * Added a missing prefix value for Gen3 and fix the if and unless tags * Add test launch file to launch simulator unit tests * Don't create the gripper Move Group if no gripper on the arm * Added DeleteAction implementation and tests * Add implementation and tests for UpdateAction * Added basic frame for a threaded action executor * Added publishing for action topic before and after action execution * Added StopAction logic and tests for executing and aborting actions * Added stubs for other RPCs we want to support at first in simulation * Added implementation for other RPCs worth simulating * Added some data structure checks and TODOs in executors * Added tests for newly added RPCs * Remove merge artefacts * Implementation for angular position control, Cartesian position control and gripper position control (#105) * Created interface class and put the RPC handlers in robot folder * Now the robot functions interface work just like before * Added templates and generation for simulated services * Added the simulation services to the driver headers * Added newly generated files to repo * Added simulation option to the driver so the gazebo package can launch the kortex_driver too, in a different mode * Adapt joint_limits files to correctly take prefix option * Change description and control files to support prefix option * Change MoveIt config launch and config files to enable prefix option - only SRDF modifications remain * Added xacro usage in SRDF files to be able to prefix joint names * Adjust ompl planning launch and config files to support prefixing joint names * Remove --inorder from xacro calls since it's default now * Set default gripper in launch files * Add namespace to launch file parameters passed to driver * Added class and implementation for simulator * Add stubs and register handlers for Action API * Add implementation for default actions and ReacAction/ReadAllActions * Added some unit tests for simulator and CreateAction implentation * Added the case where the prefix could be empty in XACRO * Added prefix support for fake controllers in MoveIt configs * Added a missing prefix value for Gen3 and fix the if and unless tags * Add test launch file to launch simulator unit tests * Don't create the gripper Move Group if no gripper on the arm * Added DeleteAction implementation and tests * Add implementation and tests for UpdateAction * Added basic frame for a threaded action executor * Added publishing for action topic before and after action execution * Added StopAction logic and tests for executing and aborting actions * Added stubs for other RPCs we want to support at first in simulation * Added implementation for other RPCs worth simulating * Added some data structure checks and TODOs in executors * Added tests for newly added RPCs * Remove merge artefacts * Added implementation for ReachJointAngles action - optimal duration implementation remain * Added KDL parsing and solvers construction * Add max velocities and max accelerations to joint_limits.yaml files * Add a helper to fill KortexError and finish velocity profiles implementation for ReachJointAngles * Now use the velocity profile data to fill the trajectory * Add implementation for angular position control * Add same ROS parameters than real arm and adjust first timestamp to not be 0 * Fix MoveIt config Gen3 lite home position * Added ReachPose implementation, twist limits still hardcoded * Add twist limits files for simulation * Use the correct Cartesian velocity and acceleration values for each arm and correctly use velocity limits in constraints * Add simulated feedback support and change current state to fetch joint_states instead of controller state * Added implementation for gripper control * Fixed a Robotiq 2F-140 typo in the moveit config * Added indexes for first arm joint and gripper joint because sometimes gripper joint is at the start of joint_states and sometimes it's at the end * Address PR comments * Fix tool frame for 6DOF Gen3 arm * Simulation velocity control, documentation and examples update (#109) * Created interface class and put the RPC handlers in robot folder * Now the robot functions interface work just like before * Added templates and generation for simulated services * Added the simulation services to the driver headers * Added newly generated files to repo * Added simulation option to the driver so the gazebo package can launch the kortex_driver too, in a different mode * Adapt joint_limits files to correctly take prefix option * Change description and control files to support prefix option * Change MoveIt config launch and config files to enable prefix option - only SRDF modifications remain * Added xacro usage in SRDF files to be able to prefix joint names * Adjust ompl planning launch and config files to support prefixing joint names * Remove --inorder from xacro calls since it's default now * Set default gripper in launch files * Add namespace to launch file parameters passed to driver * Added class and implementation for simulator * Add stubs and register handlers for Action API * Add implementation for default actions and ReacAction/ReadAllActions * Added some unit tests for simulator and CreateAction implentation * Added the case where the prefix could be empty in XACRO * Added prefix support for fake controllers in MoveIt configs * Added a missing prefix value for Gen3 and fix the if and unless tags * Add test launch file to launch simulator unit tests * Don't create the gripper Move Group if no gripper on the arm * Added DeleteAction implementation and tests * Add implementation and tests for UpdateAction * Added basic frame for a threaded action executor * Added publishing for action topic before and after action execution * Added StopAction logic and tests for executing and aborting actions * Added stubs for other RPCs we want to support at first in simulation * Added implementation for other RPCs worth simulating * Added some data structure checks and TODOs in executors * Added tests for newly added RPCs * Remove merge artefacts * Added implementation for ReachJointAngles action - optimal duration implementation remain * Added KDL parsing and solvers construction * Add max velocities and max accelerations to joint_limits.yaml files * Add a helper to fill KortexError and finish velocity profiles implementation for ReachJointAngles * Now use the velocity profile data to fill the trajectory * Add implementation for angular position control * Add same ROS parameters than real arm and adjust first timestamp to not be 0 * Fix MoveIt config Gen3 lite home position * Added ReachPose implementation, twist limits still hardcoded * Add twist limits files for simulation * Use the correct Cartesian velocity and acceleration values for each arm and correctly use velocity limits in constraints * Add simulated feedback support and change current state to fetch joint_states instead of controller state * Added implementation for gripper control * Fixed a Robotiq 2F-140 typo in the moveit config * Added indexes for first arm joint and gripper joint because sometimes gripper joint is at the start of joint_states and sometimes it's at the end * Changed the way the individual position controllers are loaded and started as well as added service client in simulator to switch controllers based on RPC called * Added implementation for angular velocity control and added joint limits to simulation class. Will need a way to wrap-around angles now that velocity control for infinite spinning joint is on. * Added wrapping around in reach joint angles * Fix a problem with timestamps * Added an implementation for SendTwistCommand but not stable enough to be activated so handler is commented out * Dont start the joint_7 controller for a 6DOF robot * Changed the examples to use notifications to check whether an action is finished or not and removed the sleeps * Put back the homing script for Gazebo and removed the copyright notice since we don't use MoveIt anymore to home the arm * Adapt documentation for new simulation features * Updated the package.xml's with bumped versions and author and maintainer tags * Few minor tweaks in the examples * Added a bit of details in the documentation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I know this is a good bunch of file changes but essentially what you need to know is :
kortex_gazebo
andkortex_driver
enable the ROS Services to be run for both the real robot and the simulation now.kortex_control
,kortex_description
andkortex_moveit_config
a lot to be able to use theprefix
option in simulation and with MoveIt. This means people will be able to create for example a "right" arm and a "left" arm and the description will rename the joints, the controllers will use the renamed joints names and MoveIt will use the renamed joints and links names. This would also enable, for example, to spawn 30 arms in a simulation environment for everyone to play with.subst_value
option) and XACRO for SRDF to do it.--inorder
option is default now.The prefix implementation addresses #88
This is essentially the only commit worth taking a look at : 382909f
The rest will put you to sleep in no time and is quite trivial.
It looks like the previous PR commits are included in this and I don't really know why, because they've been merged. I'll make sure to branch out from the
feature/improve-simulation
branch next time.