Skip to content

Commit

Permalink
readme finish for 3d printing
Browse files Browse the repository at this point in the history
Former-commit-id: 9324734e67e417f46e284aa0661098b1517fbcda
  • Loading branch information
IrvingF7 committed Oct 18, 2024
1 parent 9ca61c8 commit 2cdd8fe
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 4 deletions.
9 changes: 6 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
:new: [2024-10-15] *Installation for Everything Robotics Updated. More Documentation Ongoing for VLM Reasoning and Real World Experiment. The README Needs a Lot of Cleaning*
**More Documentation Ongoing for VLM Reasoning and Real World Experiment. The README Needs a Lot of Cleaning and Update**

:new: [2024-10-17] *Installation for Hardware Integration/3D Printing Updated.*
:new: [2024-10-15] *Installation for Robotics Software Updated.*
:new: [2024-10-11] *Made Public*
# FusionSense
### [[Page](https://ai4ce.github.io/FusionSense/)] | [[Paper](https://arxiv.org/abs/2410.08282)] | [[Video](https://youtu.be/thC0PeAQxe0)]
Expand All @@ -15,11 +17,12 @@ FusionSense is a novel 3D reconstruction framework that enables robots to fuse p
## Preparation

### Step 0: Install Everything Robotics
We utilize a depth camera mounted on a robot arm powered by `ROS2` to acquire pictures with accurate pose information. We also used a tactile sensor for <b>Active Touch Selection</b>.
We used a depth camera mounted on a robot arm powered by `ROS2` to acquire pictures with accurate pose information. We also used a tactile sensor for <b>Active Touch Selection</b>.

If you have no need for this part, feel free to jump into [Step 1](https://github.com/ai4ce/FusionSense/blob/main/README.md#step-1-install-3d-gaussian-dependencies-and-nerfstudio) for the 3D Gaussian pipeline of <b>Robust Global Shape Representation</b> and <b>Local Geometric Optimization</b>.

For installing everything robotics, please see this [documentation](./instructions/install_robotics.md).
- For installing robotics software, please see [Robotics Software Installation](./instructions/install_robotics.md).
- For hardware integration, please see [3D Printing Instructions](./instructions/3d_printing.md).

### Step 1: Install 3D Gaussian Dependencies and Nerfstudio
**Note:** Because our major dependencies, `Nerfstudio` and `Grounded-SAM-2`, officially support two different CUDA version (11.8 vs. 12.1), we will have to create two separate environments. We hope to resolve this in the future when `Nerfstudio` bump its official CUDA support version.
Expand Down
27 changes: 26 additions & 1 deletion instructions/3d_printing.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,29 @@
## Object
- The `.stl` for printing the Stanford Bunny can be found at `/assets/3d_printing/object/stanford_bunny.stl`.
- The print file can be found at `/assets/3d_printing/object/stanford_bunny.form`
- The printing is done on a Formlabs Form 3 SLA 3D printer. The material for the transparent bunny is Clear Resin V4. The material for the black bunny is Black Resin V4.
- The printing is done on a Formlabs Form 3 SLA 3D printer. The material used are:
- Transparent bunny: Clear Resin V4
- Black Bunny: Black Resin V4
- Reflective Bunny: Tough 2000 V1 + Generic reflective paint from Amazon
- Some tips for printing:
1. Try to align the supports at the bottom of the bunny, which is invisible during experiment and won't be touched, because supports will leave some artifacts (bump) on the surface.
2. Try not to use the cure station for the transparent bunny, because curing will cause the clear resin to become yellowish.
3. For the same reason, we did not cure the black and reflective bunnies as we want to maintain maximum comparability between them. Instead, we use a fan to blow on the three bunnies for 24 hours.

## Camera and Tactile Sensor Mount
- The `.stl` files for the mount that connect the sensor/camera to the robot are located at:
- `/assets/3d_printing/sensor_mount/xArm6_Interface_V2.STL`
- `/assets/3d_printing/sensor_mount/xArm6_Sensor_Mount_V2.STL`
- The design source file from Solidworks is also in the same folder
- The interface is to connect to the robot EEF flange, while the mount will carry the camera and the sensor. The mount will be insert on top of the interface.
- The assembly file, which put the models of mount, interface, sensor and camera together, can be found in the `/assets/3d_printing/sensor_mount/assembly` folder.
- This can be used for visualization in RViz, or for collision avoidance. For collision avoidance, I recommend downsample the assembly stl to reduce face number. There is a sample in the provided xArm ROS2 package
- Two M2 screws to connect the GelSight Mini tactile sensor. Two M3 screws to connect the Intel RealSense D405 camera.
- **Important:** The dimension of the mount is measured in Solidworks and put to the configuration file in the [RealSense interface package](https://github.com/ai4ce/realsense_ROS2_interface) and the [GelSight tactile sensor interface package](https://github.com/ai4ce/gelsight_ROS2_interface), so that we can accurately acquire the pose of camera and the sensor in the world coordinate by adding offsets to the EEF's coordinate.
- Therefore, if you modify the parts' dimension, please update the configuration in the ROS2 packages accordingly. Specifically, the `realsense_ROS2_interface/realsense_capture/config/calibration.yaml` and `gelsight_ROS2_interface/gelsight_capture/config/gsmini.yaml`.

## Object Mounting Platform
- The `.stl` file for the mounting platform that connect the object to the tripod can be found at:
- `/assets/3d_printing/tripod_mount/Tripod_Plate_180MM_V2.STL`
- `/assets/3d_printing/tripod_mount/Tripod_Plate_180MM_V2_LID.STL`
- The `Tripod_Plate_180MM_V2.STL` can be inserted into the groove of the Arca-Swiss plate as we mentioned in the Appendix of the Arxiv paper. The `LID` then connect to the former so object can be fastened on this platform.
9 changes: 9 additions & 0 deletions instructions/install_robotics.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,20 @@
# Robotics Software Installation

## ROS 2
1. Install ROS2 Humble according to the [official instruction](https://docs.ros.org/en/humble/Installation.html).
- Note that while this project is developed under Humble, we do not explicitly use any Humble-specific feature, so other distro should work in principle.

## RealSense D405 Depth Camera
2. Install the [RealSense depth camera interface package](https://github.com/ai4ce/realsense_ROS2_interface). This is a custom ROS2 package built upon Intel's official ROS2 wrapper.

## GelSight Mini Tactile Sensor
3. Install the [GelSight tactile sensor interface package](https://github.com/ai4ce/gelsight_ROS2_interface).
- **Unfortunately**, this package is built upon a codebase that has not been open-source. We will update the link when the dependency is fully-open within a few weeks. Stay tuned!
- Note that this is not the same as the official GelSight implementation. We made some tweaks and (hopefully) improvement, so it's strongly encouraged that you use our own package.

**Note:** See [3D Printing Instructions](3d_printing.md) for some caveats on the dimension of the camera/sensor mount and the world-frame coordinates of the camera and the tactile sensor.

## Robot Servoing and Teleoperation.
4. Install the [Ufactory xArm6 servoing and teleoperation package](https://github.com/ai4ce/xarm_ros2). This is a custom ROS2 package built upon the official UFactory ROS2 packages.
- We also have a [UR10e equivalent](https://github.com/ai4ce/ur_ros2) available.
- If you are using a different robot, while we may not have a ROS2 package readily available, as long as your robot works with MoveIt 2, you should be able to adapt my code fairly easily.

0 comments on commit 2cdd8fe

Please sign in to comment.