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

Make using arms less confusing #221

Open
i-make-robots opened this issue Jan 5, 2024 · 5 comments
Open

Make using arms less confusing #221

i-make-robots opened this issue Jan 5, 2024 · 5 comments
Assignees

Comments

@i-make-robots
Copy link
Collaborator

i-make-robots commented Jan 5, 2024

Limbs are a forest of Nodes full of dark magic. Users unfamiliar with their secrets will use them in the wrong way and experience strife.

I see a way that it should be possible to greatly simplify the task of setting up and running most Limbs without sacrificing the power and flexibility of the original system. Effectively every Node that is a child of Limb becomes a managed experience that normal users never have to look at.

In order to manage the experience Limb Node has a custom details tab.

IMG_1663
The End effector and target selectors would also have "find" buttons. Under that would be steering controls.

Editing an arm would open a custom dialog for each type. Here is a leg.
IMG_1664

Here is the panel for an arm of 3-6 joints.
IMG_1665

@i-make-robots
Copy link
Collaborator Author

#223 hid the motors, but really a limb user shouldn't even see the collapsible box.

i-make-robots added a commit that referenced this issue Jan 6, 2024
A proposed fix for #221 

### To record

1. load **helloWorld** demo.
2. select `/Sixi3/MarlinRobotArm`. Click `Lock` at the top of the
Details tab.
3. connect the editor panel to the robot arm.  Either:
- drag MarlinRobotArm from the Scene tab to the `...` button of the
Editor tab.
- click the button and find MarlinRobotArm. Try the name search field at
the top.
4. Start recording: press the `Lock` button.
5. Start reporting position: Press `Start`. Every 1s the bar will fill
up and a new G0 will be written to the Editor tab.
6. Turn the FK dials to move the arm
7. Select the target: click the magnifying glass `🔍` . The Scene tab
selection will change to the target (7b).
8. Increase the linear velocity: drag it to the right.
9. Move in 3D space: click `3D View > Move`. The robot will rubber band
to your destination.


![image](https://github.com/MarginallyClever/Robot-Overlord-App/assets/1464454/30faae44-cc05-415b-a883-089ca2f35981)

### To play back
1. Turn of the recording (4)
2. Turn off the report (5)
3. Set linear velocity to zero (far left).
4. In the Editor tab, move the caret to the top of the file: scroll to
the top and click the first line.
5. Step through the program: press `Send` once for each move. The caret
will move down one line. The MarlinRobotArm detail `Output` will change.
The robot should move in the 3D view.
@i-make-robots i-make-robots self-assigned this Jan 9, 2024
@i-make-robots
Copy link
Collaborator Author

#245 might help.

@i-make-robots
Copy link
Collaborator Author

#260 improves ease of record and playback

@i-make-robots
Copy link
Collaborator Author

If the target is a child of the end effector, it effectively produces a constant relative velocity.
Put the target on the end effector, turn it 90 degrees, and move it (0.5/4)mm forward. It will move forward at 0.5mm per rotation. Using this system you can build spiral paths for things like inserting screws.

If the target is moving towards it's own child, it produces relative acceleration. I'm not sure how that's useful yet but it's neat.

I wonder if EndEffector should become the de-facto LimbSolver. I use the Limb to drive FK. Shouldn't the IK driver live at the other end of the kinematic chain? EndEffectors can look up their parent tree, find the Limb, and register themselves. that makes jumping through the scene tree much easier, too.

Then it would be possible to make a bifurcated robot arm?

@i-make-robots
Copy link
Collaborator Author

added prograde/retrograde/etc ksp steering controls

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant