Skip to content
Closed

Quan #170

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
db343e1
add motor simulator
hoanglmv Sep 23, 2026
9895ce2
Update simulator to OpenArm Bimanual (Dual 7-DOF arms with 16 Damiao …
hoanglmv Sep 23, 2026
af063f7
Add no-cache headers and cache busters for Bimanual OpenArm UI
hoanglmv Sep 23, 2026
cff489b
update
hoanglmv Sep 23, 2026
ff9fc50
Add GitHub Ruleset to protect main branch (single-owner merge, no pee…
hoanglmv Sep 23, 2026
d756fd3
Refactor UI: remove all emoji/AI icons, ensure flat solid design, add…
hoanglmv Sep 24, 2026
c8c2fd3
Add Docker and Docker Compose configuration for OpenArm CAN and Web D…
hoanglmv Sep 24, 2026
975e450
Update Joint 8 Gripper to horizontal parallel prismatic slider (strok…
hoanglmv Sep 24, 2026
588dfd7
Add real-time bi-directional Digital Twin synchronization for sliders…
hoanglmv Sep 24, 2026
bfe56cf
fix(sim): restore left arm joint2 limits to (-0.1745, 3.3161) and upd…
hoanglmv Sep 24, 2026
274fede
feat(config): sync exact joint limits q_min, q_max for joint1-7 in se…
hoanglmv Sep 24, 2026
bf6cc73
update
hoanglmv Sep 24, 2026
11e4b7c
fix(sim): update J2 kinematics and slider limits to prevent arm crossing
hoanglmv Sep 24, 2026
50fc526
update
hoanglmv Sep 24, 2026
19633da
update
hoanglmv Sep 24, 2026
fa1b9c8
Merge pull request #1 from hoanglmv/hoanglmv
hoanglmv Sep 24, 2026
7301034
Update
hoanglmv Sep 24, 2026
277b945
Fix connect_robot script and update gitignore
leekwanreal Sep 24, 2026
8058d18
feat(act): add complete ACT cloth folding pipeline, docs, and trainin…
leekwanreal Sep 24, 2026
4a126f0
Merge pull request #2 from hoanglmv/hoanglmv
hoanglmv Sep 24, 2026
385f2aa
web dashboard control robot
hoanglmv Sep 24, 2026
9b8672d
Merge pull request #3 from hoanglmv/hoanglmv
hoanglmv Sep 24, 2026
9567561
update
hoanglmv Sep 24, 2026
41725da
Clean earlier commit
leekwanreal Sep 24, 2026
7206a66
add camera
DangTuyen0604 Sep 24, 2026
81e6c37
update
hoanglmv Sep 24, 2026
e4abb89
feat(act): complete ACT bimanual pipeline, training, eval and hardwar…
leekwanreal Sep 24, 2026
a20b70d
Merge pull request #4 from hoanglmv/nlquan
leekwanreal Sep 24, 2026
6f99cec
update
hoanglmv Sep 24, 2026
ee0814b
data_recorder
DangTuyen0604 Sep 25, 2026
520102b
refactor
hoanglmv Sep 25, 2026
b06f28a
Merge pull request #5 from hoanglmv/open_grip
hoanglmv Sep 25, 2026
c421add
Merge branch 'main' into hoanglmv: integrate camera streaming & ACT d…
hoanglmv Sep 25, 2026
57e2e36
feat: add opencv-python to uv dependencies and use active python for …
hoanglmv Sep 25, 2026
db1492c
update
hoanglmv Sep 25, 2026
73bc9f5
fix camera
DangTuyen0604 Sep 25, 2026
501408b
Merge pull request #6 from hoanglmv/hoanglmv
hoanglmv Sep 25, 2026
f42e26c
fix(gripper, camera, trajectory): robust MIT+POS dual gripper control…
hoanglmv Sep 25, 2026
9d8ea00
fix(control): fix Zero Pose active motion control with proper holding…
hoanglmv Sep 25, 2026
f76d17a
feat: integrate LuluCao/KungfuAthleteBot motion dataset and complete …
hoanglmv Sep 25, 2026
daaddd3
fix: invert physical Left Shoulder Pitch (Motor 1) CAN direction to a…
hoanglmv Sep 25, 2026
3aee3b8
fix(gripper-origins): fix DM4310 gripper directions and configure Ope…
hoanglmv Sep 25, 2026
20e97d5
fix(gripper): reverse right gripper stroke mapping so 0mm is closed (…
hoanglmv Sep 25, 2026
c625363
feat(telemetry): replace auto-export with explicit Record start/stop …
hoanglmv Sep 25, 2026
7b5aaae
feat(telemetry): record joint states into standard robotics HDF5 (.hd…
hoanglmv Sep 25, 2026
46d7362
Merge pull request #7 from hoanglmv/hoang1\
hoanglmv Sep 25, 2026
bbfa47f
chore(git): untrack old exported files in exports/ directory from git…
hoanglmv Sep 25, 2026
efff3b0
Merge pull request #8 from hoanglmv/hoang1
hoanglmv Sep 25, 2026
53d2de7
update usacase
pieupieu16 Sep 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 14 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
.git
.github
build
dist
*.egg-info
__pycache__
*.pyc
*.pyo
*.pyd
.venv*
venv*
.cache
.system_generated
*.log
49 changes: 49 additions & 0 deletions .github/rulesets/main-protection-ruleset.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
{
"name": "Protect main branch - Only Owner can merge",
"target": "branch",
"enforcement": "active",
"conditions": {
"ref_name": {
"include": [
"~DEFAULT_BRANCH"
],
"exclude": []
}
},
"rules": [
{
"type": "deletion"
},
{
"type": "non_fast_forward"
},
{
"type": "pull_request",
"parameters": {
"required_approving_review_count": 0,
"dismiss_stale_reviews_on_push": false,
"require_code_owner_review": false,
"require_last_push_approval": false,
"required_review_thread_resolution": false,
"require_extra_approval_for_unattributed_changes": false,
"allowed_merge_methods": [
"merge",
"squash",
"rebase"
]
}
}
],
"bypass_actors": [
{
"actor_id": 5,
"actor_type": "RepositoryRole",
"bypass_mode": "always"
},
{
"actor_id": 131538387,
"actor_type": "User",
"bypass_mode": "always"
}
]
}
13 changes: 13 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
/.cache/
/.vscode
/build
/dataset/
/openarm-can-*.tar.gz
/packages/apt/build.sh
/packages/apt/build/
Expand All @@ -31,3 +32,15 @@
/packages/yum/tmp/
/python/dist/
/python/vendor/
__pycache__/
*.pyc
SETUP_WSL_GUIDE.md
*.local.md
test_wrist_pitch.py
stop_robot.py
.venv*/
dataset/
*.pth
*.hdf5
*.npz
exports/
130 changes: 130 additions & 0 deletions .venv-dashboard/bin/activate
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
# Copyright (c) 2020-202x The virtualenv developers
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

# This file must be used with "source bin/activate" *from bash*
# you cannot run it directly

if ! [ -z "${SCRIPT_PATH+_}" ] ; then
_OLD_SCRIPT_PATH="$SCRIPT_PATH"
fi

# Get script path (only used if environment is relocatable).
if [ -n "${BASH_VERSION:+x}" ] ; then
SCRIPT_PATH="${BASH_SOURCE[0]}"
if [ "$SCRIPT_PATH" = "$0" ]; then
# Only bash has a reasonably robust check for source'dness.
echo "You must source this script: \$ source $0" >&2
exit 33
fi
elif [ -n "${ZSH_VERSION:+x}" ] ; then
SCRIPT_PATH="${(%):-%x}"
elif [ -n "${KSH_VERSION:+x}" ] ; then
SCRIPT_PATH="${.sh.file}"
fi

deactivate () {
unset -f pydoc >/dev/null 2>&1 || true

# reset old environment variables
# ! [ -z ${VAR+_} ] returns true if VAR is declared at all
if ! [ -z "${_OLD_VIRTUAL_PATH:+_}" ] ; then
PATH="$_OLD_VIRTUAL_PATH"
export PATH
unset _OLD_VIRTUAL_PATH
fi
if ! [ -z "${_OLD_VIRTUAL_PYTHONHOME+_}" ] ; then
PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME"
export PYTHONHOME
unset _OLD_VIRTUAL_PYTHONHOME
fi

# The hash command must be called to get it to forget past
# commands. Without forgetting past commands the $PATH changes
# we made may not be respected
hash -r 2>/dev/null

if ! [ -z "${_OLD_VIRTUAL_PS1+_}" ] ; then
PS1="$_OLD_VIRTUAL_PS1"
export PS1
unset _OLD_VIRTUAL_PS1
fi

unset VIRTUAL_ENV
unset VIRTUAL_ENV_PROMPT
if [ ! "${1-}" = "nondestructive" ] ; then
# Self destruct!
unset -f deactivate
fi
}

# unset irrelevant variables
deactivate nondestructive

VIRTUAL_ENV='/home/quan/openarm_can/.venv-dashboard'
if ([ "$OSTYPE" = "cygwin" ] || [ "$OSTYPE" = "msys" ]) && $(command -v cygpath &> /dev/null) ; then
VIRTUAL_ENV=$(cygpath -u "$VIRTUAL_ENV")
fi
export VIRTUAL_ENV

# Unset the `SCRIPT_PATH` variable, now that the `VIRTUAL_ENV` variable
# has been set. This is important for relocatable environments.
if ! [ -z "${_OLD_SCRIPT_PATH+_}" ] ; then
SCRIPT_PATH="$_OLD_SCRIPT_PATH"
export SCRIPT_PATH
unset _OLD_SCRIPT_PATH
else
unset SCRIPT_PATH
fi

_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/bin:$PATH"
export PATH

if [ "x" != x ] ; then
VIRTUAL_ENV_PROMPT=""
else
VIRTUAL_ENV_PROMPT=$(basename "$VIRTUAL_ENV")
fi
export VIRTUAL_ENV_PROMPT

# unset PYTHONHOME if set
if ! [ -z "${PYTHONHOME+_}" ] ; then
_OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME"
unset PYTHONHOME
fi

if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ] ; then
_OLD_VIRTUAL_PS1="${PS1-}"
PS1="(${VIRTUAL_ENV_PROMPT}) ${PS1-}"
export PS1
fi

# Make sure to unalias pydoc if it's already there
alias pydoc 2>/dev/null >/dev/null && unalias pydoc || true

pydoc () {
python -m pydoc "$@"
}

# The hash command must be called to get it to forget past
# commands. Without forgetting past commands the $PATH changes
# we made may not be respected
hash -r 2>/dev/null || true
76 changes: 76 additions & 0 deletions .venv-dashboard/bin/activate.csh
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Copyright (c) 2020-202x The virtualenv developers
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

# This file must be used with "source bin/activate.csh" *from csh*.
# You cannot run it directly.
# Created by Davide Di Blasi <davidedb@gmail.com>.

set newline='\
'

alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH:q" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT:q" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate && unalias pydoc'

# Unset irrelevant variables.
deactivate nondestructive

setenv VIRTUAL_ENV '/home/quan/openarm_can/.venv-dashboard'

set _OLD_VIRTUAL_PATH="$PATH:q"
setenv PATH "$VIRTUAL_ENV:q/bin:$PATH:q"



if ('' != "") then
setenv VIRTUAL_ENV_PROMPT ''
else
setenv VIRTUAL_ENV_PROMPT "$VIRTUAL_ENV:t:q"
endif

if ( $?VIRTUAL_ENV_DISABLE_PROMPT ) then
if ( $VIRTUAL_ENV_DISABLE_PROMPT == "" ) then
set do_prompt = "1"
else
set do_prompt = "0"
endif
else
set do_prompt = "1"
endif

if ( $do_prompt == "1" ) then
# Could be in a non-interactive environment,
# in which case, $prompt is undefined and we wouldn't
# care about the prompt anyway.
if ( $?prompt ) then
set _OLD_VIRTUAL_PROMPT="$prompt:q"
if ( "$prompt:q" =~ *"$newline:q"* ) then
:
else
set prompt = '('"$VIRTUAL_ENV_PROMPT:q"') '"$prompt:q"
endif
endif
endif

unset env_name
unset do_prompt

alias pydoc python -m pydoc

rehash
Loading