Skip to content

Latest commit

 

History

History
112 lines (81 loc) · 10.3 KB

README.md

File metadata and controls

112 lines (81 loc) · 10.3 KB

fetch_ros_IRVL

ROS Components for Robots from Fetch Robotics used at the Intelligent Robotics and Vision Lab at the University of Texas at Dallas. Our Fetch Robot uses an ATI-Gamma F/T sensor at the wrist; in this forked repository you will find the updated components for our robot, such as the new .urdf, moveit configuration, and a ros package to interface with the sensor.

Table of Contents

New .Urdf

As mentioned before, our Fetch robot is equipped with an ATI-Gamma force and torque sensor at the wrist. Consequently, the original .urdf can no longer be used for the proper control of the robot. We created a new .urdf fetch.urdf to replace the original at the fetch_description base ros package located within the '/opt/ros/' directory.

IRVL Fetch Robot

Replacing the original .urdf file will make the robot boot with the new robot representation which will respect the new joint limits when using teleoperation. In the case that the robot has been calibrated the change will only take effect if the calibration is reseted to it's factory model. You can do this by running:

    calibrate_robot --reset

Check if the change took effect by running

    calibrate_robot --date

The output should be 'uncalibrated'.

Moveit Configuration

Since we have updated the .urdf file we also made modifications to the fetch_moveit_config package. First, we added the new 'ati_link' to the fetch.srdf for the simplification of the MoveIt path planning. Second, we reduced the joint velocity limits in joint_limits.yaml to more reasonable speeds.

After the changes have been made, ensure they are loaded by restarting the roscore service. NOTE: The fetch_drivers will reset; place the fetch robot in a resting position! (arm tucked, torso down) before running the command.

    sudo service roscore restart

Robot Calibration

To calibrate our updated robot we had to make some adjustments to the files used in the calibration process referred to at the Fetch and Freight manual. The calibration robot process uses the RGB-D camera to detect the positions of 4 LEDs in the Gripper while performing 99 different poses. To calibrate the new robot model we had to:

  1. Modify the calibration poses in calibration_poses.bag to ensure that the LEDs are visible by the RGB-D camera. This was done using the script modify_poses.py by adding an offset to the wrist_roll_joint.
  2. The 4 LED positions were updated in capture.yaml. The original positions are with respect to the original wrist_roll_joint; we used a simple transformation to devise the new positions. point_angle_rotation.py
  3. After modifying the files you can follow the instructions in the Fetch and Freight manual to calibrate. Note that after running the command:
    calibrate_robot --arm --install --velocity-factor=0.5

If you have sudo privilege the robot drivers will restart immediately after performing the calibration. i.e. the arm will become unactuated and fall. We also recommend using the velocity-factor argument to reduce the speed of the robot.

Notes

  • The tuck_arm routine tuck_arm.py was modified to account for our new robot model and to ensure no collisions with the installed equipment. For our robot the script was located within the '/opt/ros/melodic/lib/fetch_teleop/' directory.
  • We included our calibrated model in calibrated_files.

fetch_netft package

To interface with the ATI sensor NetFT device, we developed a ROS package that let's you activate the NetFT UDP/RDT data stream and publish the values to a rostopic. We assigned the NetFT the IP address: 10.42.42.41 on the Fetch internal network. The sensor.py script connects to the NetFT and publishes the wrench values as WrenchStamped in the /gripper/ft_sensor topic. You can initialize the sensor data stream by running the launch file:

roslaunch fetch_netft netft.launch

The published Wrench values are with respect to our fetch.urdf ati_link.

Notes

  • You can find the UDP interface documentation in the NetFT Manual.

New Deformable Fingers

We have also changed the original Fetch fingers to a adapted version of the UMI deformable fingers. Both .urdfs modeling the original fingers and the new deformable fingers are included in the fetch_description package.

Deformable Fingers Image

fetch_ros Original Readme.md

Open ROS Components for Robots from Fetch Robotics

Documentation

Please refer to our documentation page: http://docs.fetchrobotics.com/

ROS Buildfarm Development Branches

Fetch Package Indigo Devel Kinetic Devel Melodic Devel ROS 1 (Noetic) Dashing Devel
fetch_ros EOL ❎ not supported Build Status 🛠️ forthcoming 🛠️ 🚧 in planning 🚧

Kinetic support, has been skipped. Ubuntu 18.04 and 20.04 support both ROS1 and ROS2, so it was decided that effort will go towards ROS2 support in the future instead of supporting Kinetic. Noetic support is in the works, also.

ROS Buildfarm Release

Fetch Package Indigo Kinetic * Melodic Source Melodic Debian
fetch_calibration EOL Build Status Build Status
fetch_depth_layer EOL Build Status Build Status
fetch_description EOL Build Status Build Status
fetch_ikfast_plugin EOL Build Status Build Status
fetch_maps EOL Build Status Build Status
fetch_moveit_config EOL Build Status Build Status
fetch_navigation EOL Build Status Build Status
fetch_teleop EOL Build Status Build Status