Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Meb/dev #13

Open
wants to merge 164 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
164 commits
Select commit Hold shift + click to select a range
28c71ba
Update README.md
qleml Nov 12, 2024
452c4f6
Update README.md
qleml Nov 12, 2024
2f8f42e
Update README.md
qleml Nov 12, 2024
610e822
Update README.md
qleml Nov 12, 2024
d9ad05e
Update README.md
qleml Nov 12, 2024
0022ab3
Merge branch 'srl-ethz:main' into main
qleml Nov 13, 2024
3ba8b8d
Commented pin-joint equivalent
Aristotelis-Sib Nov 13, 2024
9322b6e
Merge remote-tracking branch 'origin/HEAD'
Aristotelis-Sib Nov 13, 2024
60cf280
chores and orca1
qleml Nov 14, 2024
1dc3ca2
Merge branch 'main' of https://github.com/DexterousDynamos/rwr_system
Aristotelis-Sib Nov 14, 2024
649c8e9
recorded rosbag of mano and wrist
maximilianeberlein Nov 14, 2024
190ccec
fix mujoco xml file structure
maximilianeberlein Nov 14, 2024
f04a8ce
Merge branch 'main' of https://github.com/DexterousDynamos/rwr_system
Aristotelis-Sib Nov 15, 2024
9447965
improve mujoco files
maximilianeberlein Nov 15, 2024
e8a54db
Merge branch 'main' of github.com:DexterousDynamos/rwr_system
maximilianeberlein Nov 15, 2024
8adfc2f
clean up and rokoko/retarget changes for pipeline setup
maximilianeberlein Nov 15, 2024
c99ca86
orca1 URDF model
Aristotelis-Sib Nov 15, 2024
2334566
full pipeline with retarget & rosbag integration, only handcontroller…
maximilianeberlein Nov 16, 2024
8dd5bd4
Added gitignore
Aristotelis-Sib Nov 16, 2024
bea2127
Update README.md
maximilianeberlein Nov 16, 2024
7889fe6
Update README.md
maximilianeberlein Nov 16, 2024
975b408
Update README.md
maximilianeberlein Nov 16, 2024
98aa1fe
delete unnecessary prints in terminal
maximilianeberlein Nov 16, 2024
a9f2aab
Merge branch 'main' of github.com:DexterousDynamos/rwr_system
maximilianeberlein Nov 16, 2024
fa9f58c
Debud code for Max
Aristotelis-Sib Nov 16, 2024
976d0b2
First working prototype (super super bad committed)
Aristotelis-Sib Nov 16, 2024
219678f
Merge branch 'main' of https://github.com/DexterousDynamos/rwr_system…
Aristotelis-Sib Nov 18, 2024
db15978
Hand Controller Fix
Aristotelis-Sib Nov 19, 2024
e811fd6
Hand Controller Proper Implementation
Aristotelis-Sib Nov 19, 2024
b1ec800
Colcon packages
qleml Nov 19, 2024
4eb6617
Comment fixes
Aristotelis-Sib Nov 20, 2024
e19cb4d
Merge branch 'main' of https://github.com/srl-ethz/rwr_system into sr…
maximilianeberlein Nov 20, 2024
fdeef2f
Merge branch 'srl-ethz-main'
maximilianeberlein Nov 20, 2024
56862dc
Merge branch 'main' of github.com:DexterousDynamos/rwr_system
maximilianeberlein Nov 20, 2024
a749e5f
wrist addition in cfg file
maximilianeberlein Nov 21, 2024
398be53
refactor: limits for our model
qleml Nov 21, 2024
d4cb222
Place where the rotation should be
qleml Nov 21, 2024
2d3bec5
adjust confg no-wrist config
qleml Nov 21, 2024
168395b
feat: rotation of the fingers from rokoko, to align them
qleml Nov 21, 2024
77d084c
Merge branch 'main' of https://github.com/DexterousDynamos/rwr_system…
Aristotelis-Sib Nov 22, 2024
badbd81
Delete old files of lab
Aristotelis-Sib Nov 22, 2024
008846b
Kinda working Teleoperation (thumb problem)
Aristotelis-Sib Nov 24, 2024
f395f46
Manual Calibration Script
Aristotelis-Sib Nov 24, 2024
c826c7b
wrist implementation (not fully finished)
maximilianeberlein Nov 25, 2024
e2713d1
Merge branch 'wrist_implementation'
maximilianeberlein Nov 25, 2024
c9276d6
update mujoco/urdf files with latest hardware design
maximilianeberlein Nov 25, 2024
c6e4a32
Merge remote-tracking branch 'origin/main' into hand_control_debug
maximilianeberlein Nov 25, 2024
225f269
Merge branch 'main' of https://github.com/DexterousDynamos/rwr_system…
Aristotelis-Sib Nov 25, 2024
21549ec
fix hand_defs.yaml values for latest hardware setup
maximilianeberlein Nov 25, 2024
e5ebcce
Merge branch 'hand_control_debug' of https://github.com/DexterousDyna…
Aristotelis-Sib Nov 25, 2024
009d97f
Merge pull request #2 from DexterousDynamos/hand_control_debug
Aristotelis-Sib Nov 25, 2024
922cc30
Merge branch 'main' of https://github.com/srl-ethz/rwr_system
maximilianeberlein Nov 25, 2024
92c7ad0
make our code work with the new merge (retargeting changes)
maximilianeberlein Nov 25, 2024
a8fd5bf
orca2 introduction to main preparations
maximilianeberlein Nov 25, 2024
5b74126
orca2 introduction to main (only retargeting and viz side)
maximilianeberlein Nov 26, 2024
429ec15
Added dummyDynamixel Client for testing
Aristotelis-Sib Nov 26, 2024
c8f097f
auto calibration beta
Aristotelis-Sib Nov 26, 2024
5a1ec28
franka arm control
maximilianeberlein Nov 26, 2024
e9e9cd0
Move calibration stuff in seperate class
Aristotelis-Sib Nov 26, 2024
bb16eb1
franka arm control
maximilianeberlein Nov 26, 2024
866c1e3
Auto calibration (except for thumb)
Aristotelis-Sib Nov 26, 2024
5ca9796
Minor cleanup
Aristotelis-Sib Nov 26, 2024
385530d
Auto calibration both current and position based
Aristotelis-Sib Nov 27, 2024
cfb1333
Small cleanup
Aristotelis-Sib Nov 27, 2024
861d688
.
ArturoRoberti Nov 29, 2024
60b6811
Merge branch 'main' of github.com:DexterousDynamos/rwr_system
ArturoRoberti Nov 29, 2024
3810125
Merge pull request #4 from srl-ethz/main
qleml Nov 29, 2024
10a5d75
Fix filepath name
Aristotelis-Sib Nov 29, 2024
04ea84e
Merge branch 'main' of https://github.com/DexterousDynamos/rwr_system…
Aristotelis-Sib Nov 29, 2024
568aae6
Hand_defs dir of wrist
Aristotelis-Sib Nov 29, 2024
7342092
changes
qleml Nov 29, 2024
25f410a
Merge branch 'main' of github.com:DexterousDynamos/rwr_system
qleml Nov 29, 2024
eaefc4e
Merge branch 'main' of github.com:DexterousDynamos/rwr_system into ha…
qleml Nov 29, 2024
124bea5
Motor Mapping Fix
Aristotelis-Sib Nov 29, 2024
e17d2b3
Merge branch 'hand_control_debug' of https://github.com/DexterousDyna…
Aristotelis-Sib Nov 29, 2024
c2cab40
change initial position of franka for experiments
qleml Dec 2, 2024
b679615
cam_ids
qleml Dec 2, 2024
fcaeaac
Merge branch 'main' of https://github.com/DexterousDynamos/rwr_system…
Aristotelis-Sib Dec 2, 2024
a403021
Merge branch 'main' of github.com:DexterousDynamos/rwr_system
ArturoRoberti Dec 3, 2024
9bc80d7
Reverted initial position
ArturoRoberti Dec 3, 2024
8562d81
Merge pull request #5 from srl-ethz/main
ArturoRoberti Dec 3, 2024
f9f8b05
fix: writer set to None after being destroyed
qleml Dec 4, 2024
8d35585
Merge branch 'main' of github.com:DexterousDynamos/rwr_system
qleml Dec 4, 2024
94ad81a
disable vizualization nodes, cleanup
qleml Dec 4, 2024
7791bfc
track wrist, for smoother franka movement
qleml Dec 4, 2024
21f81c1
feat: wrist cam working, streaming only color
qleml Dec 4, 2024
0521f1e
Prob working self calibration
Aristotelis-Sib Dec 4, 2024
cd93de1
Merge https://github.com/DexterousDynamos/rwr_system into hand_contro…
Aristotelis-Sib Dec 4, 2024
e255753
clean up
qleml Dec 4, 2024
13a9f53
Small fixes
Aristotelis-Sib Dec 5, 2024
87fdd02
Code cleanup and added comments
Aristotelis-Sib Dec 5, 2024
a571b22
feat: sensor implementation in ros
qleml Dec 5, 2024
2e4c004
feat: sensor calibration complete
qleml Dec 5, 2024
3dee7f7
fix: initial camera pose
qleml Dec 5, 2024
6154f38
still buggy: sensor viz
qleml Dec 5, 2024
6d3ee9d
Merge branch 'main' of https://github.com/srl-ethz/rwr_system into sr…
maximilianeberlein Dec 6, 2024
9b707db
Merge branch 'srl-ethz-main2'
maximilianeberlein Dec 6, 2024
d5102dd
orca2.1: urdf file update with skin
maximilianeberlein Dec 6, 2024
430d8fd
bug fixes viz
maximilianeberlein Dec 6, 2024
2f5bd05
model inference clean up
qleml Dec 6, 2024
2bda95e
fingertip positioning fixes
maximilianeberlein Dec 6, 2024
123bcaf
Merge branch 'main' of github.com:DexterousDynamos/rwr_system
maximilianeberlein Dec 6, 2024
79cb5b0
Merge branch 'main' of https://github.com/DexterousDynamos/rwr_system…
Aristotelis-Sib Dec 6, 2024
79d2b78
New DIP angles
Aristotelis-Sib Dec 6, 2024
23ef12a
Merge branch 'srl-ethz:main' into main
ArturoRoberti Dec 6, 2024
8405e74
logger fix changes
Dec 6, 2024
aeb2fe8
Merge branch 'main' of https://github.com/DexterousDynamos/rwr_system…
qleml Dec 6, 2024
082e850
Added wrist stuff
ArturoRoberti Dec 7, 2024
ef0e2cf
More fixes
Aristotelis-Sib Dec 7, 2024
5161d0c
changes to fix hand for hardware presentation
maximilianeberlein Dec 9, 2024
f5d7529
Merge branch 'main' of github.com:DexterousDynamos/rwr_system into cc…
maximilianeberlein Dec 9, 2024
f8d8f1e
Merge branch 'main' of https://github.com/DexterousDynamos/rwr_system…
Aristotelis-Sib Dec 10, 2024
844789c
Add calibration as perm file
Aristotelis-Sib Dec 10, 2024
08679cd
Fixes and throw proper error when missing file
Aristotelis-Sib Dec 10, 2024
e494ccf
Minor fixes
Aristotelis-Sib Dec 10, 2024
df5c551
add fingerKinematics ass backup
Aristotelis-Sib Dec 11, 2024
ed27a20
changed hand control
ArturoRoberti Dec 11, 2024
2605090
Changedexperiments
ArturoRoberti Dec 11, 2024
78efca6
Merge pull request #8 from DexterousDynamos/changedhand
qleml Dec 11, 2024
962be07
Final additions
Aristotelis-Sib Dec 11, 2024
1354ff8
Merge branch 'main' of https://github.com/DexterousDynamos/rwr_system…
Aristotelis-Sib Dec 11, 2024
5761db1
Merge branch 'main' into ar/dev
qleml Dec 12, 2024
0b35ebc
Merge pull request #7 from DexterousDynamos/ar/dev
qleml Dec 12, 2024
06f6793
Merge branch 'main' into hand_control_debug
qleml Dec 12, 2024
68a279a
Merge pull request #9 from DexterousDynamos/hand_control_debug
qleml Dec 12, 2024
b699212
morgen stund hand gold im mund
qleml Dec 12, 2024
6d267fe
Merge branch 'main' of github.com:DexterousDynamos/rwr_system
qleml Dec 12, 2024
dae93fe
output folder to save in drive
qleml Dec 12, 2024
15ad30e
remove projection matrix for wrist
qleml Dec 12, 2024
b5c8210
imrpove thumb retargeter
qleml Dec 12, 2024
bda57fe
Merge pull request #10 from DexterousDynamos/cc/dev
qleml Dec 12, 2024
f2efd58
thumb and retarget improvements
qleml Dec 13, 2024
9f32ed1
Merge branch 'main' into cc/teleop_challenge
qleml Dec 13, 2024
533e49d
Merge pull request #12 from DexterousDynamos/cc/teleop_challenge
qleml Dec 13, 2024
75597c3
new feat, grayscale
qleml Dec 14, 2024
6afb261
remove time sleep
qleml Dec 14, 2024
143891a
output names changes and location
qleml Dec 14, 2024
f8ac9a0
useful files for processing
qleml Dec 14, 2024
1543629
Merge pull request #13 from DexterousDynamos/cc/dev
qleml Dec 14, 2024
43a6059
Ignore temporary folders
qleml Dec 14, 2024
b88b25e
Merge branch 'main' of github.com:DexterousDynamos/rwr_system
qleml Dec 14, 2024
bf87655
feat: separate processing node for color masking
qleml Dec 14, 2024
5f148a6
Merge pull request #14 from DexterousDynamos/cc/dev
qleml Dec 14, 2024
0a1b07a
fix, publish also resized image
qleml Dec 14, 2024
6b3be41
Updated sensing and visualization nodes, synchronized data, and impro…
maximilianeberlein Feb 14, 2025
3645018
sensor ros implementation finish
maximilianeberlein Feb 14, 2025
5ef7bb9
new rosbags + viz optimization
maximilianeberlein Dec 8, 2024
85ab1ce
ROS sensing integration
maximilianeberlein Feb 14, 2025
ab68efc
Merge remote-tracking branch 'origin/main' into cc/sensing
maximilianeberlein Feb 14, 2025
c5a164d
Merge pull request #16 from orcahand/cc/sensing
maximilianeberlein Feb 14, 2025
a87d87f
small merge correction
maximilianeberlein Feb 14, 2025
a6624b2
Merge pull request #17 from orcahand/meb/dev2
maximilianeberlein Feb 14, 2025
7650059
paper: reliability test
maximilianeberlein Feb 16, 2025
7e1da74
Merge branch 'meb/dev' of github.com:DexterousDynamos/rwr_system into…
maximilianeberlein Feb 16, 2025
d1ed446
paper: scalar param for grasping
maximilianeberlein Feb 16, 2025
03a2e33
paper: accuracy test for index finger (todo: mocap)
maximilianeberlein Feb 16, 2025
0d8aec1
new orca urdf model (test)
maximilianeberlein Feb 18, 2025
528ba80
paper: ROS integration - rosbag recording of camera frames and comman…
maximilianeberlein Feb 18, 2025
41c878d
paper: NEW URDF 100% working
maximilianeberlein Feb 20, 2025
234f6fd
paper: retargeter fix + name change
maximilianeberlein Feb 20, 2025
7e828c6
Delete src/viz/models/orca_v1/urdf directory
qleml Feb 24, 2025
a2d00ab
paper: RL policy rollout
maximilianeberlein Feb 27, 2025
add8267
Paper: RL bug fix - now ready to go
maximilianeberlein Feb 27, 2025
9cf8c44
sweep for accuracy test
maximilianeberlein Feb 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
__pycache__/
*.npz
*.egg-info
.vscode/c_cpp_properties.json
.vscode/settings.json
log/COLCON_IGNORE
log/latest
log/latest_list
log/list_2024-11-15_22-39-05/logger_all.log
*/build/*
*/install/*
*/log/*
T_cam*
recordings/*
cal.yaml
*/temp/*
36 changes: 29 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,20 @@
# RWR System


Welcome to the RWR System repository. This repository contains the code and resources for the RWR class. Please note that there are several TODOs throughout the codebase that need to be addressed. Additionally, some configurations and settings may need to be adjusted to work with your specific setup.

**Disclaimer:** This repository is a work in progress and will be constantly updated and fixed. For any issues or questions, please use Slack to communicate or submit an issue on GitHub.
# Our Code Implemenations

1. Retargeting Visualization for Rokoko rosbag recordings
```bash
ros2 launch experiments rosbag_retargeting_rviz_orca.launch.py
```

2. Live Retargeting Visualization of Rokoko or MediaPipe
```bash
ros2 launch experiments retargeting_rviz_orca.launch.py
```


## Getting Started

Expand All @@ -15,25 +27,35 @@ To get started with the RWR System, follow these steps:
2. Clone the repository inside the `src` directory of your ROS 2 workspace:
```bash
cd ~/ros2_ws/src
git clone https://github.com/yourusername/rwr_system.git
git clone git@github.com:DexterousDynamos/rwr_system.git
```
3. Navigate to the project directory:
```bash
cd rwr_system
```

4. Activate your ROS 2 environment (assuming you are using mamba):
4. Create and Activate your ROS 2 environment.
```bash
mamba activate ros2
mamba create -n rwr_system python=3.10
mamba activate rwr_system

# this adds the conda-forge channel to the new created environment configuration
conda config --env --add channels conda-forge
# and the robostack channel
conda config --env --add channels robostack-staging
# remove the defaults channel just in case, this might return an error if it is not in the list which is ok
conda config --env --remove channels defaults

mamba install ros-humble-desktop
```

If you don't have a ROS 2 environment, follow this guide: [Getting Started with RoboStack](https://robostack.github.io/GettingStarted.html)
For more detailed information, follow this guide: [Getting Started with RoboStack](https://robostack.github.io/GettingStarted.html)

5. Install the necessary dependencies:
6. Install the necessary dependencies:
```bash
pip install -e .[all]
```
this will install the faive_system package in your enviroment, and all the required dependencies specified in the `project.toml` file
this will install the faive_system package in your enviroment, and all the required dependencies specified in the `pyproject.toml` file


## Main TODOs for RWR students
Expand Down
5 changes: 5 additions & 0 deletions experiments/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,11 @@ install(PROGRAMS
DESTINATION lib/${PROJECT_NAME}
)

install(PROGRAMS
run_rl_policy.py
DESTINATION lib/${PROJECT_NAME}
)


# install the launch file
install(DIRECTORY
Expand Down
Binary file not shown.
22 changes: 17 additions & 5 deletions experiments/cfgs/retargeter_adjustment.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,20 @@
thumb: null
index: null
middle: null
ring: null
thumb:
translation : [0.0, 0.0, 0.0]
rotation : [0.0, 0.5, -0.5]
scale : [1.0, 1.0, 1.0]
index:
translation : [0.0, 0.0, 0.0]
rotation : [0.0, 0.0, -0.2]
scale : [1.1, 1.1, 1.1]
middle:
translation : [0.0, 0.0, 0.0]
rotation : [0.0, 0.0, 0.0]
scale : [1.1, 1.1, 1.1]
ring:
translation : [0.0, 0.0, 0.0]
rotation : [0.0, 0.0, 0.0]
scale : [1.1, 1.1, 1.1]
pinky:
translation : [0.0, 0.0, 0.0]
rotation : [0.0, 0.0, 0.0]
scale : [1.0, 1.0, 1.0]
scale : [1.1, 1.1, 1.1]
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ lr: 2.5
use_scalar_distance_palm: False
loss_coeffs: [5.0, 5.0, 5.0, 5.0, 5.0,]
joint_regularizers: # tuples (joint_name, zero_value, weight) for regularizing joints to zero
- [index_abd_virt, 0, 0.00001]
- [middle_abd_virt, 0, 0.00001]
- [ring_abd_virt, 0, 0.00001]
- [pinky_abd_virt, 0, 0.00001]
- [index_abd, 0, 0.000001]
- [middle_abd, 0, 0.000001]
- [ring_abd, 0, 0.000001]
- [pinky_abd, 0, 0.000001]
122 changes: 122 additions & 0 deletions experiments/launch/accuracy_test.launch.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
from launch import LaunchDescription
from launch_ros.actions import Node
from launch.actions import ExecuteProcess, TimerAction
import os
from ament_index_python.packages import get_package_share_directory
from datetime import datetime

# select the cameras to be used

cameras = {"front_view": True, "side_view": True, "wrist_view": True}


def generate_launch_description():

# Define the output directory for the rosbag recordings with a timestamp

timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
current_dir = os.path.dirname(os.path.abspath(__file__))
rosbag_output_dir = os.path.join(current_dir, '..', '..', '..', '..', '..', 'src', 'rwr_system', 'src', 'ingress', 'paper_experiments', 'rosbag_recordings', f'recording_{timestamp}')

urdf = os.path.join(
get_package_share_directory('viz'),
"models",
"orca_v1",
"urdf",
"orca_v1.urdf")

with open(urdf, 'r') as infp:
robot_desc = infp.read()

return LaunchDescription(
[



# # HAND CONTROLLER NODE
# Node(
# package="hand_control",
# executable="hand_control_node.py",
# name="hand_control_node",
# output="screen"
# ),

# OAKD FRAME PUBLISHER NODE # If program takes ages to load, OAK-D connection probably did not work for some reason.
# Node(
# package='ingress',
# executable='oakd_frame_publisher.py',
# name='oakd_frame_publisher',
# output='screen'
# ),


# ACCURACY TEST NODE
Node(
package="ingress",
executable="accuracy_node.py",
name="accuracy_node",
output="log",
parameters=[
{"motion_duration": 4.0},
{"recalibration_interval": 10.0},
{"flexion_scalar": 0.4},
{"signal_type": "sweep"}, # Use "step" if you want step signals, "sine" for sign waves
{"start_frequency": 0.1},
{"stop_frequency": 1.0},
{"sweep_duration": 10.0},
{"retarget/hand_scheme": os.path.join(
get_package_share_directory("viz"),
"models",
"orca_v1",
"scheme_orca_v1.yaml",)
},
],
),


# VISUALIZATION NODE
Node(
package="viz",
executable="visualize_joints.py",
name="visualize_joints",
parameters=[
{
"scheme_path": os.path.join(
get_package_share_directory("viz"),
"models",
"orca_v1",
"scheme_orca_v1.yaml",
)
}
],
output="screen",
),

Node(
package='robot_state_publisher',
executable='robot_state_publisher',
name='robot_state_publisher',
output='screen',
parameters=[{'robot_description': robot_desc,}],
arguments=[urdf]),

Node(
package='rviz2',
executable='rviz2',
name='rviz2',
output='screen',
arguments=['-d', os.path.join(get_package_share_directory('viz'), 'rviz', 'retarget_config_orca_v1.rviz')],
),

# Node to start recording OAK-D camera frames and commanded angles to a rosbag with a delay
TimerAction(
period=5.0, # Delay in seconds
actions=[
ExecuteProcess(
cmd=['ros2', 'bag', 'record', '--output', rosbag_output_dir, 'image_raw', '/hand/policy_output'],
output='screen'
)
]
)
]
)
Loading