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 so on.
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.
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'.
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
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:
- 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.
- 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
- 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.
- 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.
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.
# fetch_ros Original Readme.mdOpen ROS Components for Robots from Fetch Robotics
Please refer to our documentation page: http://docs.fetchrobotics.com/
Fetch Package | Indigo Devel | Kinetic Devel | Melodic Devel | ROS 1 (Noetic) | Dashing Devel |
---|---|---|---|---|---|
fetch_ros | EOL | ❎ not supported | 🛠️ 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.