- This repository is dedicated to the 3D modeling of the Fetch robot for use in the IRVL lab.
- For sensor-related configurations, ROS packages, and scripts, refer to the fetch_ros_IRVL repository which is included as a submodule here to allow seamless integration with the 3D models.
Follow these simple steps to set up the repository and integrate the 3D models with your environment.
git clone --recurse-submodules https://github.com/IRVLUTD/irvl-fetch-3d-model
cd irvl-fetch-3d-model
Make sure the required files are placed in the correct directories:
- Meshes
- Copy the following STL files to
src/fetch_ros_IRVL/fetch_description/meshes
- Copy the following STL files to
- URDFs
- Move all .urdf files from
urdf/
to src/fetch_ros_IRVL/fetch_description/robots- add a symlink from the desired .urdf to fetch.urdf within the same dir
fetch.urdf
will be read for display purposes
- Move all .urdf files from
To visualize the updated URDF with TF frames, Problem 2 from the following reference has been referred:
- 📄 CS 6301 Homework 1 (Fall 2024)
- 🔗 Course Homepage
- Once you have the
urdf_tutorial/launch/display_fetch.launch
ready
# rm if any exists
rm -rf build/ devel/;
#
catkin_make; source devel/setup.bash;
# launch the display_fetch.launch
roslaunch urdf_tutorial display_fetch.launch
run-fetch-3d-model-display-pipeline.mp4
The ATI NetB model’s origin has been shifted to its 2D centroid (ignoring height) for better alignment. Before and After:
To shift the origin of the ATI NetB model from one end to the 2D centroid (ignoring height), use the following Python script with trimesh
:
import trimesh
# Load the STL file
mesh = trimesh.load("path_to_your_input_file.stl")
# Get the centroid and create a writable copy
centroid = mesh.centroid.copy()
# Set the Z-coordinate of the centroid to 0
centroid[2] = 0.0
# Translate the mesh to align with the modified centroid
mesh.apply_translation(-centroid)
# Export the updated STL file
mesh.export("path_to_your_output_file.stl")
- The laptop mount was designed using the following components:
- 2 x
ram round plates with ball
- 1 x
ram spine
- 1 x
tray for holding the laptop
created using this script. - 1 x
lenovo legion latop 7
- 2 x
- All the previous parts have been assembled to match the shape and pose of the real laptop mount in the fetch robot at IRVL. All parts have been assembled in the Blender file to replicate the real-world setup of the Fetch robot.
mount-with-laptop-model-in-blender-meshlab-origin-shift.mp4
- RAM Mount: The RAM mount model was obtained from GrabCAD.
- Lenovo Legion Laptop:
- Primary model: GrabCAD.
- Alternative model: 3D Warehouse. [Adhere to the license]
- 9105-NETB: This model was sourced from 3D Content Central.
-
FreeCAD Installation:
Install FreeCAD for handling 3D models with the command:sudo apt-get install freecad
-
File Conversion Tools:
-
- Convert
.stp
files to.stl
. - Convert
.dae
files (e.g., laptop models) to.stl
. ⚠️ Note: The tool may fail for some file types.
- Convert
-
- Convert
.SKP
or.model
files to.stl
. - 🆓 Free users can only convert 3 files per day and upload files up to 20 MB. Paid users get increased quotas and file size limits.
- Convert
-
- This project is MIT licensed.
- But the 3D models used have their own license.
- Before using this project, please read the respective license files.