Giter Club home page Giter Club logo

poppy-robot-cli's Introduction

Poppy Robot CLI

NPM version JavaScript Style Guide Language grade: JavaScript Maintainability

This project allows to simply monitor and interact with robots of the Poppy project family in command line.

It provides a CLI tool (provided as a npm module or a standalone executable)

  • To query and send basic set of instructions to the registers of motors and then, to allow performing unary 'action' such as move, speed settings, and so on...,
  • To drive the robot via keyboard.

As example, typing :

poppy stiff
poppy speed 120
poppy rotate -90 -m m1
poppy goto 0 -m m2 m3 m4 m5 m6 -d 2

Performs:

  • Switch all motors to stiff state,
  • Set up their speed to 120,
  • Rotate by -90 degrees the motor m1,
  • At last, move the other motors to position 0 in 2s.

Typing:

poppy drive

allows to simply drive the robot via the keyboard i.e. selecting motor(s), rotating them, applying simple 'posture', and so on.

At last,

poppy query

displays in a table the value of the registers for all motors.

┌─────────────────────┬───────┬────────┬───────┬───────┬───────┬───────┐
│                     │ m1    │ m2     │ m3    │ m4    │ m5    │ m6    │
├─────────────────────┼───────┼────────┼───────┼───────┼───────┼───────┤
│ compliant           │ truetruetruetruetruetrue  │
├─────────────────────┼───────┼────────┼───────┼───────┼───────┼───────┤
│ lower_limit         │ -89.9 │ 89.9   │ 89.9  │ -89.9 │ 89.9  │ 89.9  │
├─────────────────────┼───────┼────────┼───────┼───────┼───────┼───────┤
│ present_position    │ -0.1  │ -89    │ 86.4  │ -1.3  │ -94.3 │ 1.0   │
├─────────────────────┼───────┼────────┼───────┼───────┼───────┼───────┤
│ goal_position       │ 0     │ -90    │ 90    │ 0     │ -90   │ 0     │
├─────────────────────┼───────┼────────┼───────┼───────┼───────┼───────┤
│ upper_limit         │ 89.9  │ -125.1 │ -89.9 │ 89.9  │ -89.9 │ -89.9 │
├─────────────────────┼───────┼────────┼───────┼───────┼───────┼───────┤
│ moving_speed        │ 100   │ 100    │ 100   │ 100   │ 100   │ 100   │
├─────────────────────┼───────┼────────┼───────┼───────┼───────┼───────┤
│ present_temperature │ 35    │ 35     │ 35    │ 34    │ 33    │ 34    │
└─────────────────────┴───────┴────────┴───────┴───────┴───────┴───────┘

Documentation

A full documentation about both installation and usage is available here.

Advanced Uses

This module faces the objects and the factories of the poppy-robot-core as well as it introduces new features to ease connection settings.

Check the dedicated documentation for detailed instructions.

Known Limitations

  • This module has been only tested with the Poppy Ergo Jr (aka with a set of dynamixel XL-320). As it communicates with the robot via the REST API of the pypot library, it should be usable with any robot of the poppy family.

Credits

License

The poppy-robot-cli is MIT licensed. See LICENSE.

poppy-robot-cli's People

Contributors

nbarikipoulos avatar

Watchers

 avatar

poppy-robot-cli's Issues

CLI: Adapt the config command with live discovering of Poppy

Next to replace the use of json files with live discovering as default way to get robot structure, some features are not really usefull or must evolve:

  • The json <-> live robot robot validation i.e. the 'v' flag
  • -a option (could be performed with the query command),
  • The discover flag...
  • -M option should be dedicated to display and check connection to motors.
  • -S will be kept for advanced use.

Misc. poppyrc udpate

Various minor issues about the poppyrc file

  • User's descriptor locator is never saved,
  • Do not save empty settings (i.e use of default settings for both locator and connection),
  • Do not save empty connection settings.

Update Badges

  • Remove david badges (almost always down),
  • Add lgtm/codeclimate badges.

Unable to use 'poppy.local' address to connect

Fixing issue 6 of poppy-robot-core will almost solve it.

Excepted for the config command which use lower object (the PoppyRequestHandler) instead of the Poppy factory which is in charge to perform resolving of the .local addresses.

Update reboot command

Next to poppy v3.0.0 change url from '/reset' to '/reboot'.

Update to clearer description => Reboot raspberry instead of robot

Integrate poppy core v9.1.0

That will allow:

  • Avoiding to overload poppy rest server with requests and then decrease failure on requesting robot,
  • Better error management (failure are treated per request, not globally).

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.