Chapter 6. Wobbling Robot Arms Using Joint Control

Mobile robots are good at getting from one location to another without running into objects around them. Making them even more useful, a robot arm can grasp and manipulate objects in its environment. This chapter features a leading-edge robot that uses its two arms to perform tasks from manufacturing to human assistance and more. The Baxter robot by Rethink Robotics is a collaborative robot that works safely alongside humans without the need for safety precautions. The Gazebo simulated version of Baxter is included in this book for those who do not have access to a real Baxter.

In this chapter, you will be introduced to Baxter in both real and simulated forms. The software for Baxter Simulator will be installed and executed to bring up the Gazebo environment with a Baxter model in it. Baxter's arms will be controlled using a variety of methods: keyboard, joystick, and Python script. Demonstrations of the different types of joint controls for Baxter's arms will be provided.

A more in-depth look at tf, ROS transform reference frames, is included in this chapter. These reference frames are critical to maintaining the complex kinematic equations that are required for Baxter's arm joints. Another ROS tool, MoveIt!, will be introduced and used to manipulate Baxter's arms. MoveIt! provides a framework for motion planning for either both of Baxter's arms, an individual arm, or a subset of joints in an arm.

A section on the real Baxter is included and describes the configuration of Baxter with a workstation computer. This setup is the standard for what is referred to as the research Baxter. In the Introducing Baxter section, the different versions of Baxter will be described. All of the commands and controls described for Baxter Simulator will also apply to the real Baxter. The use of MoveIt! to plan Baxter's arm movements to avoid obstacles will be presented. Then, the versatile ROS package for state machines, SMACH, will be introduced and a fun example using Baxter's arms will be implemented.

In this chapter, you will learn the following topics:

  • Baxter and the robot's hardware
  • Loading and using Baxter Simulator with Gazebo
  • Using MoveIt! to create trajectories for Baxter's arms
  • Controlling the real Baxter with applications
  • Implementing a state machine for Baxter arm poses

Introducing Baxter

Baxter is a two-armed robot created by Rethink Robotics designed to be a collaborative worker in the manufacturing industry. Each of Baxter's arms has seven degrees of freedom (DOF) and a series of joint actuators, which makes Baxter unique as a manufacturing robot. Baxter's joints are composed of series-elastic actuators (SEAs) that have a spring between the motor/gearing and the output of the actuator. This springiness makes Baxter's arms compliant and capable of detecting external forces, such as contact with a human. This advantage makes Baxter safe to work alongside people without a safety cage. The SEAs also provide greater flexibility for control using the torque deflection as feedback for the control system.

Baxter, shown in the following image, has a number of sensors that enable Baxter to perform many tasks:

  • A 360-degree sonar sensor at the top of Baxter's head
  • A 1024 x 600 pixel screen face with a built-in camera
  • A camera, infrared sensor, and accelerometer on the cuff at the end of each arm
  • A gripper mount that can easily mount a variety of end-effectors
  • Navigator buttons with a scroll-wheel dial on each forearm and torso side
Introducing Baxter

Baxter on a pedestal

The manufacturing version of Baxter is programmed by moving the arms to the desired locations and interacting with the navigator buttons on the arm or torso to store the positions. Gripper control is achieved by activating the buttons located on each cuff. An indented spot on Baxter's cuff places the arm in Zero Force Gravity (Zero-G) mode to allow the arm's joints to be moved effortlessly into position. Baxter can be taught different arm positions and trajectories, and these can be collected into a sequence and stored as a type of program. The display-screen face is used as a GUI for the worker to build and store these programs. No special programming language or mathematics is required; only arm manipulation, button presses, and the use of the scroll-wheel dial located alongside the navigator buttons.

Introducing Baxter

Position to activate Zero-G mode

More information on Baxter's technical specifications can be found at the following websites:

Information on the manufacturing version of Baxter can be found at http://www.rethinkrobotics.com/baxter/.

Baxter, the research robot

A second version of Baxter was introduced by Rethink the year after the manufacturing version was released. This later version is primarily for the use of academic and research organizations. The hardware for the research version of Baxter is identical to the manufacturing version, however, the software for the two versions is not the same.

The Baxter research robot is configured with an SDK that runs on a remote computer workstation and allows researchers to develop custom software for Baxter. The SDK provides an open source ROS application programming interface (API) to directly run ROS commands and scripts to operate Baxter. Baxter runs as the ROS Master and any remote workstation (on Baxter's network) launches ROS nodes to connect to Baxter and control its joints and sensors.

Note

An alternative arrangement of configuring the SDK directly on the physical Baxter is possible, but that scenario will not be covered in this book.

For information on the Baxter on-robot workspace setup and code execution, visit http://sdk.rethinkrobotics.com/wiki/SSH.

Researchers have been able to develop applications with Baxter in numerous areas. Rethink Robotics hosts a web page to link many of these accomplishments.

For videos, visit http://sdk.rethinkrobotics.com/wiki/Customer_Videos.

For research papers, visit http://sdk.rethinkrobotics.com/wiki/Published_Work.

Baxter Simulator

Baxter Simulator has been developed by Rethink Robotics to provide a comparable simulation experience for controlling Baxter using Gazebo. The simulation software for Baxter is contained in the baxter_simulator ROS metapackage. Baxter's URDF is used to create the simulated Baxter model and an emulation of the hardware interfaces to the research Baxter is provided by the baxter_sim_hardware ROS package. This package allows models of the position and velocity controllers to be modified using the ROS rqt tool. The arm and head controllers are found in the baxter_sim_controllers package. These controller plugins for Gazebo are for arm position, arm velocity, and arm torque control, and position control for the head and the electric grippers. Interfaces are also simulated for the following Baxter components:

  • The head sonar ring
  • The infrared sensors on each cuff
  • The cameras on each cuff and head
  • The navigator lights and buttons
  • The shoulder buttons
  • The head screen display (xdisplay)

Baxter Simulator can also be used with the ROS tools, rviz and MoveIt!. Details on rviz can be found in the Introducing rviz section of Chapter 2, Creating Your First Two-Wheeled ROS Robot (in Simulation); details on MoveIt! will be provided later in this chapter, in the Introducing MoveIt! section. Further details on Baxter Simulator will be supplied in the section Installing Baxter Simulator as we install the software and learn to control the simulated Baxter in Gazebo.

For details on the Baxter Simulator ROS packages and API, refer to the following Rethink websites:

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

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