Book Image

Hands-On Robotics with JavaScript

By : Kassandra Perch
Book Image

Hands-On Robotics with JavaScript

By: Kassandra Perch

Overview of this book

JavaScript has an effective set of frameworks and libraries that provide support for embedded device programming and the robotics ecosystem. You’ll be able to put your JavaScript knowledge to work with this practical robotics guide. The book starts by guiding you in setting up an environment to program robots with JavaScript and Rasberry Pi 3. You will build beginner-level projects, such as a line-following robot, and then upgrade your robotics skills with a series of projects that help you get to grips with the Johnny-Five library. As you progress, you’ll learn how you can improve your projects by enabling advanced hardware components and programming concepts. You’ll even build an advanced AI-enabled robot, connect its NodeBots to the internet, create a NodeBots Swarm, and explore Message Queuing Telemetry Transport (MQTT). By the end of this book, you will have enhanced your robot programming skills by building a range of simple to complex projects.
Table of Contents (19 chapters)
Title Page
Dedication
Packt Upsell
Contributors
Preface
Index

Animating movement


The animation library makes many things possible with servos that are otherwise anywhere from difficult to downright implausible. Before we explore the how of the animation library, however, we should more thoroughly explain the why.

 

Why we need the animation library

Think about the movement of your leg as you take a step. You don't normally have to, but when you do, there's a lot going on in your joints! Your hip extends your leg out, and your knee extends your leg without usually locking it. And your back leg is doing things too; your hip is allowing the leg to move back, and your ankle is flexing. This is a massive oversimplification, but it's still really complicated!

Now imagine each of your joints as a servo, and you have to program taking a step. You cannot control the timing of each movement, because each servo will get to where you tell it to go as fast as you can. You also can't tell when a joint is done moving, so you have to hard-code timings and hope it holds...