This replaces the old gummi_description package, now separated into gummi_base_XXX and gummi_ee_XXX for easier change of end effectors.
First set up a workspace
$ mkdir -p catkin_ws/src
$ cd catkin_ws/src
Fork or clone this repository:
$ git clone https://github.com/GummiArmCE/gummi_base_template.git
Download a suitable ee package, e. g., handshake:
$ git clone https://github.com/GummiArmCE/gummi_ee_handshake.git
To actually move the robot you will need either ros-<YOUR-ROS-DISTRO>-dynamixel-motor package installed or to you can clone the git from https://github.com/arebgun/dynamixel_motor.git . You will also need the gummi_interface package and if you want to use move-it, the gummi_moveit package:
$ git clone https://github.com/arebgun/dynamixel_motor.git
$ git clone https://github.com/GummiArmCE/gummi_interface.git
$ git clone https://github.com/GummiArmCE/gummi_moveit.git
Install all dependencies with rosdep:
$ rosdep install -y --from-paths . --ignore-src --rosdistro <YOUR-ROS-DISTRO>
Run catkin_make:
$ catkin_make
And source your workspace:
$ source devel/setup.bash
If you are working with multiple bases and you don't want to create new packages for each, you may also want to add the following lines to your ~/.bashrc file:
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$(parse_git_branch)\[\033[00m\] $ "
This is a nice tweak of your shell to show the current branch in which you are working.
Rename the directory "gummi_base_template" to "gummi_base_YOUR_OWN_BASE"
$ mv gummi_base_template gummi_base_YOUR_OWN_BASE
Edit the file "gummi_base_YOUR_OWN_BASE/set_env_gummi.sh"
$ gedit gummi_base_YOUR_OWN_BASE/set_env_gummi.sh
And change the line containing "export ROS_GUMMI_BASE=template" to "export ROS_GUMMI_BASE=YOUR_OWN_BASE" (required for launch files and by yaml_gen)
Edit the file package.xml
$ gedit package.xml
And change <name>gummi_base_template</name>
to <name>gummi_base_YOUR_OWN_BASE</name>
(required finding the meshes - and textures if any- in the urdf file).
You can now proceed to change "gummi_base_YOUR_OWN_BASE/launch/controllers_base.launch" to contain the motor drivers that your base has and where they are connected in the bus and the updating the yaml definitions of joints in "gummi_base_YOUR_OWN_BASE/dynamixel"
Currently the urdf file is being generated during the catkin_make routine from the files in the xacro directory "gummi_description.urdf.xacro", "gummi_description_base.urdf.xacro" and an external file from the end effector "gummi_description_ee.urdf.xacro".
The simple setup we planned it to have all joint and link definitions for the base in the "gummi_description_base.urdf.xacro" (as well as "gummi_description_ee.urdf.xacro" containing the joints and links for the end effector only) and the file "gummi_description.urdf.xacro" would just call both and include them.
To change this to a new setup, simple either write by hand, or generate it from a solidworks model the URDF file as usual and place the joints and links from gripper up to the elbow joint (inclusive) in the end-effector xacro file and the remainder joints and links, that is, from base to elbow (exclusive) in the base urdf xacro file
TO DO:
- finish separating yaml files
- integrate alterations into gummi_interface
- First stable and tested version with the dovetail design. Tested with planning via moveit integration.
- Decided to use branches instead of new repositories to keep all the different base definitions.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.