Giter VIP home page Giter VIP logo

baddy-makers-edition's Introduction

    .__        ___       _______   _______  ____    ____
|   _  \      /   \     |       \ |       \ \   \  /   /
|  |_)  |    /  ^  \    |  .--.  ||  .--.  | \   \/   /
|   _  <    /  /_\  \   |  |  |  ||  |  |  |  \_    _/
|  |_)  |  /  _____  \  |  '--'  ||  '--'  |    |  |
|______/  /__/     \__\ |_______/ |_______/     |__|

Copyright Benoit GRESLEBIN 2018.
This documentation describes Open Hardware and is licensed under the
CERN OHL v. 1.1.  You may redistribute and modify this documentation
under the terms of the CERN OHL v.1.1. (http://ohwr.org/cernohl). This
documentation is distributed WITHOUT ANY EXPRESS OR IMPLIED WARRANTY,
INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY AND FITNESS FOR A
PARTICULAR PURPOSE. Please see the CERN OHL v.1.1 for applicable conditions

######################################
ADDITIONAL TERMS
######################################
Specific non commercial use term: This source Hardware plan may be copied, distributed, modified by any individual
and non profit organizations (Fablab, Hackerspaces, Makerspaces, universities, Schools), as long
as it follows the CERN OHL V1.1 license terms here attached.
Corporate institutions and private companies may only copy and distribute the Hardware plan without modification.
Therefore, they are not allowed to modify the Hardware plan prior to distributing it for commercial purpose.
So for example, if a user embeds or modifies or relies on the Hardware plan in a product that is
then sold to a third party, this would be a violation of the Non-Commercial Use License additional term. 
By adding this additional restriction, it is intended to encourage the evolution of BADDY Hardware plan 
and design to be driven by the Hacker and makers' communities.

######################################
CONTRIBUTORS
######################################
Any change to be proposed on this gitlab, or at [email protected]

######################################
PRODUCTS AND DISTRIBUTORS
######################################
Any intent of commercial use (selling BADDY Hardware DIY Kits and add-ons, not services around BADDY) to be notified to [email protected]

######################################
CHANGE LOG - HISTORY
######################################

February 2018 - First open release
November 2018 - New git lab using Electrolab environment
January 2019 - New git public repository on GitHub

baddy-makers-edition's People

Contributors

baddy-team avatar robocoder avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

baddy-makers-edition's Issues

Implicit assumptions

The program is full of assumptions and because they are not asserted, the controller can easily get into trouble.
The assumptions are that the positions to play are fixed and that there is a range of speeds attached to it.
The adjusting of motor speeds is based on these assumptions, which is so bad programming.
It is also limiting the uses of the Baddy.

What should be done in the speedadjuster is that the entered speeds are compared and not the programmed types. Based on the difference, some intermediate speed steps are to be done or not. For one step, the intermediate speed could be calculated as the average of the actual running speed and the target speed. With a negative difference, you can decide to break or not, to reduce speed.

I'm talking about int motor_speed_transition(int type, int next_type){
From the types you get the programmed speeds: speed and next_speed for each motor.
With these speeds you do the necessary adjustments by calling for each motor:
int motor_speed_adjust(int motor, int speed, int next_speed){
if speed == next_speed return
if speed - next_speed > brake_step do_some_breaking(motor, speed, next_speed)
if next_speed - speed > acceleration_step do_some_acceleration(motor, speed, next_speed)
set_speed(motor, next_speed)
return

This simplifies the program a lot, because all type transistions use the same routine.

It will avoid unadapted speed transitions, when the implicit assumptions are not there.

Because the transistions are based on the required speeds, the speed adjustment is smoother.

It enlarge the possibilities in the training strokes of Baddy.
For example: we train youth players and operate Baddy, at the same side of the net as Baddy. As we face also the net, it is a mirrored view as the player who operates Baddy himself.
For easy programming, and having the same terrain view on the screen of the app, it makes sense to switch drop and clear by reversing the higher and lower speeds.
Also when I want the 9 training points on a line, or reduce the surface of the 9 point square to eg the backhand rear, or ...
In both these cases, the controller is inducing contraproductive speed steps, which make these modes of operation almost impossible.

We are also looking out for more saved settings, (10?) in addition of the 2 existing, ground and tripod settings, preferably named, as we train also for Minibad, which uses only half of a field and therefore need settings to cover a narower surface.

Wheels missing?

Hi. Can you share some CAD files or .svg vector files for the wheels?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.