A new book, Learning Robotics using Python, takes a different approach to teaching the Robotics Operating System (ROS). Written by Lentin Joseph, founder and CEO of Indian robotics startup Qbotics Labs, it enables you to learn by building an interactive, autonomous, mobile robot, and is the result of his research while designing the company’s autonomous robot prototype, Chefbot. It features Artificial Intelligence, vision capabilities, speech recognition and synthesis.
Chefbot is designed primarily to serve food in hotels and restaurants and Qbotics plans to release the robot as open hardware to develop a community focussed on improving the design. The company also provides assistance for clients autonomous machines.
Learning Robotics Using Python uses ROS Indigo, a stable version of ROS, installed on the latest Ubuntu L.T.S 14.04.02. The code is also compatible with ROS Jade. After a basic introduction, it looks at the mechanical design of robots using open source tools. ROS is introduced following the building of 2D and 3D models, and Chefbot is simulated using ROS and Gazebo. The Chefbot simulation is adapted from a Turtlebot simulator.
With a successful simulation in Gazebo, the book turns to the hardware element, the selection of the electronic components needed to build the robot. The sensor and actuator interfacing is explored and interfacing embedded boards to ROS using Python.
The Chefbot has (Kinect) sensors, ultrasonics and sound sensors, as well as motor encoders. The book looks at the detailed interfacing of each sensor with ROS and Kinect, and how to work with depth to pointcloud package.
In addition, it examines speech recognition and synthesis in robots, using ROS and Python, and implementing a version of Artificial Intelligence using ROS and Python.
After all this interfacing, the final integration is possible, both in hardware and software, resulting in the complete robot.
It needs a GUI controller, built using PyQt. Debugging is enabled via ROS rqt. Once the GUI has been constructed, it goes into the calibration and testing of the robot before its deployment.
If you liked this article, you may also be interested in: