Chapter 6. Wobbling Robot Arms Using Joint Control

Mobile robots are good at getting from one location to another without running into things around them. To be 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 safely works alongside humans without the need for safety precautions. The authors thank Rethink Robotics for their recent open source release of Baxter Simulator so that the simulated version of Baxter could be included in this book for those who cannot afford to purchase a real Baxter.

In this chapter, you will be introduced to Baxter in both real and simulated form. 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 for 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 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 section Introducing Baxter, the different versions of Baxter will be clarified. All 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.

In this chapter, you will learn about 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

Introducing Baxter

Baxter is a two-armed robot created by Rethink Robotics to be a collaborative worker for the manufacturing industry. Each of Baxter's arms has seven degrees of freedom (DOF) and a series of joint actuators that make 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, as shown in the following figure, sports sensors that enable Baxter to perform many tasks:

  • 360-degree sonar sensor at the top of Baxter's head
  • 1024 x 600 pixel screen face with built-in camera
  • Camera, infrared sensor, and accelerometer on the cuff at the end of each arm
  • 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 pedestal

The manufacturing version of Baxter is programmed by moving the arms to desired locations and interacting with navigator buttons on the arm or torso to remember the positions. Gripper control is achieved by activation of 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. Teaching Baxter different arm positions and trajectories 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 a scroll wheel dial located with 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 following the release of the manufacturing version of Baxter. This second Baxter version is for use by 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 the joints and sensors.

An alternative arrangement of configuring the SDK directly on the physical Baxter is possible, but this 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 the accomplishments.

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

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

We recommend you explore these websites after completing this chapter.

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 ROS metapackage baxter_simulator. 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 ROS package baxter_sim_hardware. This package allows the models of the position and velocity controllers to be modified using the ROS rqt tool. Arm and head controllers are found in the package baxter_sim_controllers. These controller plugins for Gazebo are for the arm position, velocity, and torque control and the position control for the head and the electric grippers. Interfaces are also simulated for Baxter's 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 Rviz section of Chapter 2, Creating Your First Two-Wheeled ROS Robot (in Simulation); details on MoveIt will be provided later in this chapter. Further details on Baxter Simulator will be supplied 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.142.196.223