
Welcome to a short documentation on WidowX ARM¶
About¶
This documentation describes the setup of Trossen Robotics’ WidowX ARM with ROS.
It was tested on Ubuntu 16.04
and ROS Kinetic
.
The content is adapted from the original documentation from Trossen Robotics.
If you would like to setup the ARM and ID the servos then you should start with the original documentation that can be found here.
The WidowX Robot Arm Mark II is the update to Interbotix Labs’ entry level arm offering for the MX series of DYNAMIXEL Servos. The Mark II has a few improvements that we’ve made based upon our own testing as well as customer feedback. We’ve upgraded the elbow servo from an MX-28 to an MX-64 complete with custom aluminum brackets for added frame strength, replaced the Arbotix with the new Arbotix-M, and streamlined the arm structure to be lighter, simpler, and stronger. The MX series actuators provide a full 360 degree freedom of movement in the base, ultra-high resolution of 4096 positions, user-definable PID parameters, and extremely smooth interpolation. The hefty MX-64 shoulder & elbow servos gives the WidowX very strong lifting strength in a slim frame. If you are looking for medium lifting strength and desire smooth control, high accuracy and repeat-ability the WidowX is a great mid-level arm choice.
Product features¶
- Industry Leading MX-64, MX-28 and AX-12 Servos
- Solid 14cm Ball Bearing Base
- Arbotix Robocontroller for Onboard Processing
- Custom Parallel Gripper
- Mounting Brackets for Cameras & Sensors
ROS Package Includes¶
- 2x MX-64 Dynamixel Actuators
- 2x MX-28 Dynamixel Actuators
- 2x AX-12A Dynamixel Actuators
- WidowX Arm Hardware & Frame Kit
- ArbotiX Robocontroller
- 12v 10a Power Supply
- FTDI 5v Programming Cable
- Intel SR300 Camera & Stand w/ measurement tool
- Laptop - ROS pre-installed and tested
Comprehensive Kit Includes¶
- 2x MX-64 Dynamixel Actuators
- 2x MX-28 Dynamixel Actuators
- 2x AX-12A Dynamixel Actuators
- WidowX Arm Hardware & Frame Kit
- ArbotiX Robocontroller
- 12v 10a Power Supply
- FTDI 5v Programming Cable
No Servos Kit Includes¶
- WidowX Arm Hardware & Frame Kit
- ArbotiX Robocontroller
- 12v 10a Power Supply
- FTDI 5v Programming Cable
Setup With ROS¶
The documentation assumes that ROS Kinetic
is already installed on the host pc (Ubuntu 16.04). If not, follow the instructions below.
Install ROS Kinetic¶
http://wiki.ros.org/kinetic/Installation/Ubuntu
Open a terminal and type in the following
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
sudo apt update
sudo apt upgrade
sudo apt install ros-kinetic-desktop
sudo rosdep init
rosdep update
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
RealSense ROS Package Install¶
There are a few prerequisites.
wget -O enable_kernel_sources.sh http://bit.ly/en_krnl_src
bash ./enable_kernel_sources.sh
Sensor package
sudo apt install ros-kinetic-librealsense ros-kinetic-realsense-camera
sudo reboot
Kernel 4.10 installation work-around
sudo apt-get install libglfw3-dev
cd ~
git clone https://github.com/IntelRealSense/librealsense.git
cd librealsense
mkdir build && cd build
cmake ../
make && sudo make install
cd ..
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && udevadm trigger
./scripts/patch-realsense-ubuntu-xenial.sh
Additional dependencies¶
sudo apt install git htop
sudo apt install ros-kinetic-moveit ros-kinetic-pcl-ros
Setting dialout permission for Arbotix¶
Replace yourUserAccount with the system account you are using
sudo usermod -a -G dialout yourUserAccount
sudo reboot
Clone widowx_arm repository and build¶
mkdir -p ~/widowx_arm/src
cd ~/widowx_arm/src
git clone https://github.com/Interbotix/widowx_arm.git .
git clone https://github.com/Interbotix/arbotix_ros.git -b parallel_gripper
cd ~/widowx_arm
catkin_make
ROS control of the arm independent of the SR300 Sensor¶
Open up a terminal window and enter the following commands.
cd ~/widowx_arm
source devel/setup.bash
roslaunch widowx_arm_bringup arm_moveit.launch sim:=false sr300:=false

This should load RVIZ with the proper WidowX arm bringup. You can move the arm using the visual representation on screen, choosing one of the many “Planning Library” under the Context tab and then hitting “Plan and Execute” under the Planning Tab. There are also several presets you can choose from. Once you’re done, you can close the program by returning to your terminal window and pressing CTRL + C.

ROS control of the arm with the SR300 Sensor¶
Open up a terminal window and enter the following commands
cd ~/widowx_arm
source devel/setup.bash
roslaunch widowx_arm_bringup arm_moveit.launch sim:=false sr300:=true
This should load RVIZ with the proper WidowX arm bringup, as well as load in the drivers for the SR300. You should see a 3D point map representation of your workspace on the right. You can still move the arm using the visual representation on screen, and hitting “Plan and Execute” under the Planning Tab. We need to move the arm so that we can adjust the camera angle and position.

Arranging your SR300¶
Keep the previous terminal open and change a few things in RVIZ. Under the Planning tab, in the Query options you will find the “Select Goal State” option. Select the pulled_back_pose from the goal state. Press Update, then press Plan and Execute. Your arm should move back to a pulled back state, allowing the camera to see the base of the WidowX. Change your view to a side view of the arm and camera representation. Move the SR300’s angle so that the representation of the workspace is level to the base of the WidowX on-screen. Change your view to an overhead view of the workspace. Move the Camera Stand so that the outline of the base of the WidowX matches to the cutout of the WidowX base on the SR300.
Open a second Terminal window. This will be a control window, so keep it visible when possible
cd ~/widowx_arm
source devel/setup.bash
roslaunch widowx_block_manipulation block_sorting_demo.launch
This demo will allow us to do some new things that utilize the SR300’s object detection abilities! Place blocks of different colors in the workspace (default are red and green), and in the terminal, type d
for detection of the blocks and hit Enter
. Where the blocks were, there should be gray cubes shown on screen. At this point, you can either automatically sort all blocks detected by typing o
(organize) in the terminal and hitting Enter
or you can use the 3D representation of the object in RVIZ to pick and place the block wherever you like on the x and y axis.
Options

Detection of Blocks

Organize/Sort the red and green blocks

License¶
The documentation is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

Frequently Asked Questions¶
1. Where can I get more information about the TurtleBot3?¶
You can find more detailed information about the WidowX ARM in the following link: http://learn.trossenrobotics.com/interbotix/robot-arms/widowx-arm
2. Where can I order the WidowX ARM from?¶
You can order them at Trossen’s online shopping website http://www.trossenrobotics.com/widowxrobotarm
3. What changed in the documentation recently?¶
changelog.rst
Contact¶
For specific enquiries contact aravind AT dabit.industries
Changelog - [development]¶
- Applied Sphinx RTD Theme
- Added setup procedure with ROS
- Included youtube videos in about page
- Added screenshots in ROS setup page