Skip to content
forked from Avdbergnmf/abb_ws

Linking an ABB robot to a Geomagic Touch haptic device using ROS

Notifications You must be signed in to change notification settings

jdrew1303/abb_ws

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

abb_ws

Linking an ABB IRB1200 5-90 robot to a Geomagic Touch haptic device using ROS. This could relatively easily be converted to other supported ABB robots but the supporting ros packages are not included for storage reasons.

This is all the contents of the src folder for a fresh catkin workspace.

The geomagic touch packages are edited versions of the original omni packages (https://github.com/danepowell/phantom_omni)
The ABB ros packages are stripped down versions of the original (https://github.com/ros-industrial/abb)

The pathmaker_abb package is custom written by me.

---Install---
clone this git:
$ git clone git clone https://github.com/Avdbergnmf/abb_ws.git Get the ros industrial core installed:
$ git clone https://github.com/ros-industrial/industrial_core.git

If you get error: "/usr/bin/ld: cannot find "-lncurses"", you're missing the 32bit libraries. To install them:
$ sudo apt-get install lib32ncurses5-dev
$ rosdep update
$ rosdep install --from-paths ~/<catkin_ws>/src --ignore-src

Might need to build twice, while sourcing in between. Might remove this bug later.

To use the geomagic touch package you need the openhaptics and the haptic device drivers by 3ds systems:
https://3dssupport.microsoftcrmportals.com/knowledgebase/article/KA-03284/en-us
If the first 3 joints remain 0, add this line to your bashrc:
$ export LC_NUMERIC=en_US.UTF-8
Then reconnect through /opt/geomagic_touch_dveice_driver/Geomagic_Touch_Setup

---Launching---
First launch the geomagic touch package:
$ roslaunch geomagic_touch_m geomagic_touch_m.launch
Then launch the download interface, where the ip is the ip of your ABB robot.
$ roslaunch abb_irb1200_support robot_interface_download_irb1200_5_90.launch robot_ip:=192.168.125.1
Then launch the moveit planner. This launches the required move_group and opens up rviz with the robot model loaded so you can test some initial movements:
$ roslaunch abb_irb1200_5_90_moveit_config moveit_planning_execution.launch
--> to get the target_frame TF frame to show up in rviz (to see where you're moving the robot) click add->TF, then on the left panel browse to TF->frames-> and select the frames you want to see. I usually disable all, so that when starting the last node, only the target_frame is shown.
Now to launch the last node to link the ABB to the geomagic touch:
$ rosrun pathmaker_abb pathmaker_abb

---Usage---
On the geomagic touch press the white button to initially enable the link between the 2 devices. This will make the target_frame appear in the rviz scene with the ABB robot in there (if you followed all steps correctly).

  • The white button toggles the connection on/off
  • The grey button disables the connection while the button is held and also resets the target_frame to match the current abb frame.

---Notes---
This package works marginally, as the robot now moves very slowly. Reasons for this could include:

  • Every time the robot receives a new path command it will come to a standstill before launching the next trajectory
  • The planning of the inverse kinematics happens through an iterative solver, but this can also be done by setting up the equations of motion and solving analytically. This would improve the solve time drastically and might improve the refresh rate
  • The limited speed of the ABB robot itself (especially in manual mode)

About

Linking an ABB robot to a Geomagic Touch haptic device using ROS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 62.4%
  • AMPL 22.8%
  • CMake 14.8%