Book Image

ROS Robotics By Example, Second Edition - Second Edition

By : Carol Fairchild, Lentin Joseph, Dr. Thomas L. Harman
Book Image

ROS Robotics By Example, Second Edition - Second Edition

By: Carol Fairchild, Lentin Joseph, Dr. Thomas L. Harman

Overview of this book

ROS is a robust robotics framework that works regardless of hardware architecture or hardware origin. It standardizes most layers of robotics functionality from device drivers to process control and message passing to software package management. But apart from just plain functionality, ROS is a great platform to learn about robotics itself and to simulate, as well as actually build, your first robots. This does not mean that ROS is a platform for students and other beginners; on the contrary, ROS is used all over the robotics industry to implement flying, walking and diving robots, yet implementation is always straightforward, and never dependent on the hardware itself. ROS Robotics has been the standard introduction to ROS for potential professionals and hobbyists alike since the original edition came out; the second edition adds a gradual introduction to all the goodness available with the Kinetic Kame release. By providing you with step-by-step examples including manipulator arms and flying robots, the authors introduce you to the new features. The book is intensely practical, with space given to theory only when absolutely necessary. By the end of this book, you will have hands-on experience on controlling robots with the best possible framework.
Table of Contents (18 chapters)
ROS Robotics By Example Second Edition
Credits
About the Authors
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface
Index

How to control Crazyflie


As you have seen throughout this book, the cmd_vel topic (the geometry_msgs/Twist message) is the common control method for ROS robots, whether driving on the ground or flying in the air. For TurtleBot, mobile_base_commands/velocity and cmd_vel_mux/input/navi are used to move around the base. For Crazyflie, the crazyflie/cmd_vel topic is published to control the flight of the quadrotor.

Within the crazyflie_autonomous package, the crazyflie_controller node (control_crazyflie.py) determines the Crazyflie's control state and publishes the crazyflie/cmd_vel topic. To launch the crazyflie_controller node, the control_crazyflie.launch file is used. This launch file also launches the crazyflie_window node that observes the Crazyflie and takes action when it flies near the edge of the Kinect image frame. The function of this node is described in the subsequent section, using an observer mode.

Crazyflie control states

The crazyflie_controller node has five states of flight...