Giter Site home page Giter Site logo

spotmicroai's Introduction

SpotMicroAI

My Version of SpotMicroAI

Low Level Firmware

This package contains a low-level firmware for SpotMicroAI robot and might be useful for other 4-legged robots as well. The firmware runs on a Wemos D1 mini pro and should also run on any other ESP8266 device like NodeMCU.

Calculating and processing the pose of all 12 servo joints is a complex task and a lot of work to implement in Arduino. But this can be done more easily and fast using ROS (Robot Operating System). So this firmware is designed to receive commands from ROS and just executes the synchronuous servo movement.

To establish communication, rosserial is used as well as a rosserial implementation over wifi. The idea behind is, that you can either ROS on RPI (or others) inside the robot and connect it to ESP8266 using serial connection. Or you can run ROS on any PC inside your local network and send commands to robot using wifi.

Current state

Settings

Menu

The firmware provides some factory defaults for all settings. However, you can change all settings using serial console. If you start serial console, hit 'm' to enter main menu. The main menu provides some functionalities to show and change the settings. All settings can be stored to EEPROM of ESP8266.

-----------MAIN MENU----------
f=delete all USER settings (reset all user settings in EEPROM)
s=save USER settings (save user settings to EEPROM)
x=print current settings
1=communications menu (setup ROS & WIFI)
2=Servo settings
m=move servo manual
0=exit

Please note, if you first upload this firmware to your robot, your EEPROM might be filled with corrupt data. Please clear your EEPROM by deleting all user settings (f)

Servo

The firmware offers some servo-related settings (min, max, initial pose, offset, home position and inversion) for each servo. All these settings can be changed by serial console

Wifi

Currently, the firmware connects to wifi but doesn't read any package here. All wifi-related settings can be configured by serial console

Servo movement

The firmware is able to drive any of the 16 servos attached to a PCA9685 expansion board using ServoEasing library. You can send commands to any servo using serial commands. To do this, connect ESP8266 to your PC, open serial monitor and follow the instructions you see there.

Next steps

  • create a ROS node and ROS message to subscribe to a ROS master

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.