Holey Triangular Calibration

I know I have been a little absent lately, but you guys, @Tjacobs713, @Jamtek, et al, are crushing it. Good work!

Hi, @Joshua, One small thing I noticed when testing with virtual environments is that the scipy, numpy are missing from requirements_linux.txt and requirements_osx.txt. in your fork/branch of OneControl.

Do the requirement.txt files need a refresh for both the main branch of GroundControl and the HoleyCal version?

I noticed at least one package was flagged for a security issue.

HP-Notebook:~/GroundControlUpdate$ pipenv check
Checking PEP 508 requirements...
Passed!
Checking installed package safety...
36546: requests <=2.19.1 resolved (2.13.0 installed)!
The Requests package before 2.19.1 sends an HTTP Authorization header 
to an http URI upon receiving a same-hostname https-to-http redirect, 
which makes it easier for remote attackers to discover credentials by sniffing the network.

It occurs to me that it could be really helpful if there was a container that had a working holey calibration environment installed and operational that could just be deployed by new users in a virtual machine.

Obviously it would need to be constrained but something like run Ubuntu or Debian version X or whatever the maintainer required and then install docker. From there download and run the docker container and presto it should just work.

Taking it a step further it, why bit make it an entire VirtualBox virtual machine for the OS. So the host OS for the docket container is the VirtualBox instance and thay comes with the docker container pre-installed but the docker container can also be updated from within the virtual instance without requiring any changes to the virtual machine image. This allows the base virtual machine image to be relatively stable and unchanged to minimize work.

This way it could be a few clicks to operational.

  1. Install VirtualBox and USB extensions
  2. download the guest OS image for maslow containers and add usb pass through for arduino
  3. start the maslow virtual machine and run an auto update for the OS itself that would also check and update any maslow docker containers
  4. start the docker container for your desired Groundcontrol version of instance
  5. enjoy mainline or hole calibration or other maslow experience without having to mess with Linux packages

I don’t know docker but I can help with documenting how to set up VirtualBox where we need more docs to bridge to a maslow docker model. Otherwise VB is extremely well documented.

VirtualBox is free and excellent. And it would allow windows, Mac and Linux users to use a known Linux OS config regardless of their desktop OS of choice.

I don’t know how to set up docker but I have seen it used this way for projects with a lot of niggly dependencies like this. Moreover there could be both a main stable docker container and a holey calibration container and users could switch back and forth fairly easily. As well as making it easier for future forks and branches to be developed and tested by the broader community.

It’s a shame to have so much enthusiasm and energy sapped by trying to set up OS and package level variables and config. Given that the maslow hardware is a known constant (except where advanced users intentionally modified it) it seems this could be an elegant way to streamline this part of the ecosystem.

Thoughts?

-Jeff

2 Likes

@JWoody18 I like where your head is at. I’ve used VirtualBox for work and like it. What about licensing (forgive me, I’m a Windows guy) for everything mentioned, all open source software is used?

As far as I know, Yes, everything is open source and or free to use.

VirtualBox.org

“VirtualBox is a powerful x86 and AMD64/Intel64 virtualizationproduct for enterprise as well as home use. Not only is VirtualBox an extremely feature rich, high performance product for enterprise customers, it is also the only professional solution that is freely available as Open Source Software under the terms of the GNU General Public License (GPL) version 2. See “About VirtualBox” for an introduction.”

Docker

And to get it for Debian
https://hub.docker.com/editions/community/docker-ce-server-debian

"Get Docker Engine - Debian (Community)

Available for free to install on any server, VM, or cloud with community support."

Details on deploying it for a project here

As for all the maslow pieces I think that is well established and readily available.

Hope that helps. I strongly recommend Debian or Ubuntu as the base as Debian branch OSes are extremely widely used by end users and well supported and documented.

I think this would really save a lot time and improve accessibility for all.

Jeff

1 Like

@JWoody18, What you described in your post using Docker has already been achieved at least on the RapberryPI with the WebControl option for the Maslow.

The original GroundControl utilizes the Kivy Python framework for Graphics and needs a fairly capable GPU to render graphics, which is one thing that Docker is not good at. Also, if you don’t have the GPU hardware the VM will not help.

Where Docker shines is with web based applications, and as the name WebControl suggests runs in a web browser as a with a RESTful API. I know there was discussion of integrating Holey Triangular calibration into WebControl, but I’ve lost track and not sure that its happened.

Also, I apologize if my posts about python virtual environments were misleading, there is no reason you would need to use one.

1 Like

at the moment, holey triangular calibration and webcontrol are not compatible,
we need to either change the firmware version that holey triangular reports, or
merge it into the mainline so that webcontrol can tell the difference between it
and the stock firmware.

David Lang

1 Like

I haven’t used VirtualBox in about a year but I understand the graphics support has come along nicely. I believe if your host has good opengl support that it can provide decent performance.

Perhaps the docker container aren’t needed and it would be easier to just produce Getting Started VM images for mainline and holey calibration. You can still easily switch by just booting the appropriate one. All that is required is loading the correct firmware to the arduino before continuing. Correct?

Jeff

For anyone interested… getting this to run on LinuxMint is real simple once you figure out how to do it. I’ve spent 30-40 hours the last two weeks trying to make this work on windows and gave up. It still took me hours of reading/watching videos/ and asking questions in forums. I’m reloading LinuxMint on my lap top and making step by step directions as I get time to help people get this calibration process to work.

Now for my question… I’m running the calibration and When it gets to sled weight it ask for it in Newton’s… I thought I read up in this thread that it wanted it in pounds… what one do I need to input? Thanks. Travis

2 Likes

Enter the weight in Newton’s.

This was a somewhat recent development.

@Joshua thanks. That is what I done and finished calibrating. This is what I got.

Still seems pretty far off or are these normal numbers? I should be expecting to see something closer to 0 in the error category right? Do I need to run it a couple of times to zero it in?

1 Like

I would check your measurements. I would start with (edit: 6). Also, it looks like10 and 11 are switched (just a guess. I take it back; these look ok.). Overall, I would expect to get something better.

Also, it looks like your initial chain tolerances are not zero. Is that consistent with the calibration that was loaded when the cuts were made?

@Joshua the chain tolerancesare prob because this was the second time I ran it and skipped to redrill holes and the imputes those measurements.

Do I leave all these measurements in and skip thru calibration to redrill holes and then input or should I start from the beginning and go thru the whole process?

The “initial” parameters should be consistent with the parameters that were in the machine when the cuts were made. So, if you rerun the calibration and use old measurements, it is important that you enter the old parameters, too.

Hope things are okay in your world, @Joshua.

1 Like

@dlang @madgrizzle @Joshua
Why not merge Holey into the main/stock firmware? I think it should be the new default calibration method now that the GUI interface has been implemented.

I agree that it should be merged, but someone needs to do the work to make it
happen. Some of the firmware changes have been merged, but I don’t think all.

In the GC GUI, there are things that should be merged, but there are also bugs
in the holey triangular calibration version that should not be merged (things to
do with handing setting changes, not things related to the calibration pages)

Madgrizzle would then need to make changes to webcontrol to support this
firmware, but there is currently a conflict between a numbered parameter that he
uses for his cameral based calibration and that holey uses for a different
value. Madgrizzle asked for the version number to be changed (+200 to the
version number) so that he could tell the difference between stock, his camera
(+100) and holey (+200) and that has not happened (I may submit a pull request
for that this weekend, I’ve been trying to get around to it for a couple of
months)

David Lang

@dlang If I understand @madgrizzle 's comments from post 380, if Holey was merged into the stock firmware and became 1.27, as an example, there would be no need to change its version and webcontrol wouldn’t have to be changed to accept two custom firmwares.

that is correct, if the holey version becomes an option in the stock firmware,
webcontrol doesn’t need to deal with 3 versions of firmware, just 2.

David Lang

1 Like

@dlang so where does the decision and action lay to move this forward? Who reviews and approves such merges?