Summary

This chapter has described ROS interfaces for a number of external devices used for robot control. The advantages of ROS extend to these types of interfaces, as it is evident in the common method and message structure used across similar devices. For game controllers, a custom interface was created using an Xbox 360 controller for the Turtlesim simulation. The buttons and axes for the Xbox 360 controller were mapped so that we could select a button and axes to use for Turtlesim control. A Python script was shown that caused the turtle to move when a joystick was moved or a certain button was pressed.

Android devices can also provide a common ROS interface for controlling robots. We looked at some instructions for installing the software and tools to set up a ROS-Android development environment. We also looked at the key terminology for Android development.

Embedded systems such as the Arduino and Raspberry Pi are often used for controlling robots and interfacing to sensors. ROS nodes can run on these devices and publish messages over topics to nodes on other computers. For serial communication, ROS provides the rosserial protocol and metapackage to standardize this interface. Instructions for installing the Arduino–ROS and Raspberry Pi–ROS development environments were presented. Within the Arduino IDE, software was written to create a node and publish a message containing sensor data from an HC-SR04 ultrasound sensor.

In the next chapter, Flying a Mission with Crazyflie, we will leverage all of our current ROS knowledge (and then some) to autonomously fly a quadrotor to a specific location. An external camera will be used to coordinate the flight and identify the quadrotor and the location of the target.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
52.15.244.205