* fix(motors): cleanup imports + fix signatures
* feat(motors): add damiao canbus + multiple fixes
* fix(motors): address comments -> last_state + different gains + sleep
* refactor(motors): reduce duplicated code + adressed some comments in the PR
* chore(motors): better timeouts
* tests(motors): damiao test and imports
* chore(deps): fix space
* feat(robot): add openarm leader
Co-authored-by: Pepijn <pepijn@huggingface.co>
* feat(robot): add openarm follower
Co-authored-by: Pepijn <pepijn@huggingface.co>
* refactor(robot): remove mechanical compensations and double arm assumption + rename
* chore(robots): remove left arm references
* refactor(teleop): multiple improvements to leader
* refactor(teleop): multiple improvements to leader
* feat(robots): add open arm to util CLI
* chore(robot): add alias openarm
* Apply suggestions from code review
Co-authored-by: Pepijn <138571049+pkooij@users.noreply.github.com>
Signed-off-by: Steven Palma <imstevenpmwork@ieee.org>
* chore(motors): remove normalization tables damiao
* fix(motors): imports and signatures
* feat(motors): add motor_type_str + recv_id to motor class and _get_motor_recv_id raises if no motor_obj.recv_id
* chore(motors): remove normalize from base motor class and damaio
* tests(motors): remove bad tests (to be replaced)
* chore(motors): updated import check
* fix(robots): open arm mirrored config for joint limits
* chore(motors): update position_kd gain values
* chore(robots): set to 0 if openarm is calibrated at connect time
* chore(robots): remove macos in open arm as can doesn't support it
* chore(robots): update for motor_type_str in Motor class
* chore(robots): no default value for can port in open arms
* feat(robots): add bi manual openarm follower and leader
* use constant for kp and kd range and check responses in mit_control_batch()
* Add docs on setting up canbus and use damiao otor bus, also add lerobot_setup_can.py and log if there is not response from a write command
* precommit format
* supress bandit as these are intentional cli commands
* fix setup-can
* add test
* skip test in ci
* nit precommit
* update doc example
* dont import can for tests
* remove comment
* Add openarms docs
* format
* update purchase link
* can to none if nit availabl;e
* add canfd option in bus
* make handshake logic similar to lerobot-can
* type hint
* type check
* add temp teleop test
* remove script
* mock class
* mock class
* ignore linter
* pre-commit
* Add command for bimanual openarm
* fix import
* fix import leader
* fix import draccus
---------
Signed-off-by: Steven Palma <imstevenpmwork@ieee.org>
Co-authored-by: Pepijn <pepijn@huggingface.co>
Co-authored-by: Pepijn <138571049+pkooij@users.noreply.github.com>
* fix(motors): cleanup imports + fix signatures
* feat(motors): add damiao canbus + multiple fixes
* fix(motors): address comments -> last_state + different gains + sleep
* refactor(motors): reduce duplicated code + adressed some comments in the PR
* chore(motors): better timeouts
* tests(motors): damiao test and imports
* chore(deps): fix space
* feat(robot): add openarm leader
Co-authored-by: Pepijn <pepijn@huggingface.co>
* feat(robot): add openarm follower
Co-authored-by: Pepijn <pepijn@huggingface.co>
* refactor(robot): remove mechanical compensations and double arm assumption + rename
* chore(robots): remove left arm references
* refactor(teleop): multiple improvements to leader
* refactor(teleop): multiple improvements to leader
* feat(robots): add open arm to util CLI
* chore(robot): add alias openarm
* Apply suggestions from code review
Co-authored-by: Pepijn <138571049+pkooij@users.noreply.github.com>
Signed-off-by: Steven Palma <imstevenpmwork@ieee.org>
* chore(motors): remove normalization tables damiao
* fix(motors): imports and signatures
* feat(motors): add motor_type_str + recv_id to motor class and _get_motor_recv_id raises if no motor_obj.recv_id
* chore(motors): remove normalize from base motor class and damaio
* tests(motors): remove bad tests (to be replaced)
* chore(motors): updated import check
* fix(robots): open arm mirrored config for joint limits
* chore(motors): update position_kd gain values
* chore(robots): set to 0 if openarm is calibrated at connect time
* chore(robots): remove macos in open arm as can doesn't support it
* chore(robots): update for motor_type_str in Motor class
* chore(robots): no default value for can port in open arms
* use constant for kp and kd range and check responses in mit_control_batch()
* Add docs on setting up canbus and use damiao otor bus, also add lerobot_setup_can.py and log if there is not response from a write command
* precommit format
* supress bandit as these are intentional cli commands
* fix setup-can
* add test
* skip test in ci
* nit precommit
* update doc example
* dont import can for tests
* remove comment
* Add openarms docs
* format
* update purchase link
* can to none if nit availabl;e
* add canfd option in bus
* make handshake logic similar to lerobot-can
* type hint
* type check
* add temp teleop test
* remove script
* mock class
* ignore linter
---------
Signed-off-by: Steven Palma <imstevenpmwork@ieee.org>
Co-authored-by: Pepijn <pepijn@huggingface.co>
Co-authored-by: Pepijn <138571049+pkooij@users.noreply.github.com>