NeuronRobotics / NrConsole

This is the console application in Java for interacting with Bowler devices.
2 stars 0 forks source link

State Based Configurations for Different Kinematics #17

Closed DrVulpinus closed 9 years ago

DrVulpinus commented 9 years ago

I am trying to create the configuration panels for the different kinematics models (Delta, FrogLegScara, and LinearBox). I looked through the settings in the StateBasedConfigurationController, and it seems that there are only configs for Delta's (and maybe FrogLegScara), but I do not see settings that would apply to LinearBox devices (X size, Y size, etc...).

madhephaestus commented 9 years ago

yeah, i havent had a good idea how to do that. It would basically be just the challel map + scale factor and Max params (which sort of mapps) Any idea how to make it more generic?

DrVulpinus commented 9 years ago

I was thinking about this actually in a lot of detail, because as we want to add new kinematics and other capabilities, wouldn't it be best to have different namespaces for setups/components? For instance, if we wanted to have a namespaces for end effector, axis, hotend, extruder. Then you could have sub namespaces as well. If you have EndEffector.Delta, for instance, that would require one set of configs, versus EndEffector.LinearBox. That way we can arbitrarily change the namespaces on the device, and then NRConsole can basically create a simple list from the defined namespaces. As long as we can maintain some sort of pattern for that, it seems that would be a much better way to do things than to write specific code/classes that expect a certain set of configs to be on the device. If we can expand the namespace architecture you already have implemented, we can better keep to the core idea of keeping all configs on the device, and the user interface is "self-tailoring" to the device that gets plugged into it.

madhephaestus commented 9 years ago

Thats a neat idea! In the same way the device can swap out what function pointers its using for the kinematics, it could also change which namespaces get loaded in and made availible on the reflection side.

DrVulpinus commented 9 years ago

I would like to get started working on the implementation of this, but I think I still need some help with how to create/edit the namespaces on the device. Are namespaces only able to be edited with a bootloader re-upload, or can they be changed on the fly, and where/how do I go about doing that?

I was thinking of creating a "DeviceProperties" namespace which could then have the sub-namespaces to store all of the information about the device.

madhephaestus commented 9 years ago

Its a firmware edit, so we should meet to work this out together. I can get you up to speed on making edits to the firmware if your interested. Send me a google calendar invite to set a meeting?