6

Driving a Kuka youBot in Simulation with Python

 2 years ago
source link: https://spieswl.github.io/projects/2017/mobile-robot-follower
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
December 13, 2017

Driving a Kuka youBot in Simulation with Python

Northwestern University’s robotics programs generally include significant exposure to robotic manipulation, otherwise understood as implementing kinematic and dynamic control of robotic systems. By having access to exceptional faculty and serious facilities for manipulation research and development, aspiring roboticists are routinely given opportunities to tackle problems in robotic manipulation, motion planning, and controls. One such example is the project featured here, part of Dr. Kevin Lynch’s graduate-level Robotic Manipulation course. Students were challenged to analyse the kinematics of a mobile robotic vehicle (a Kuka youBot, or 5-axis manipulator mounted on a chassis with 4 mechanum wheels) and have it follow a pre-defined trajectory in a simulated environment. The broader aims of the project involved demonstrating how we could apply our studies and skills to meeting a requirement that could very well be encountered in a real robotic application.

First, some details on the challenge are in order. The simulated problem was built with the help of Coppelia Robotics’ VREP software. A scenario containing a Kuka YouBot was constructed, and we were given a few different sets of initial conditions for the simulated mobile robot (position, orientation, and arm joint angles). The goal was to use forward and inverse kinematics, motion planning, Python libraries for robotic manipulation, and an interface in the simulator to get the youBot to follow a pre-defined end-effector trajectory over a five second timespan. In order to successfully meet the requirements for this challenge, we needed to have implemented kinematic control of the 5-DOF robotic arm, use odometry to gauge and control the position and orientation of the mechanum-wheeled chassis, coordinate the motion of the arm and chassis to follow the desired trajectory, and use PI control to correct for any deviation from the path.

The controller was written in Python, and uses the numpy and Modern Robotics libraries to implement feed-forward, proportional, and proportional-integral control. The Modern Robotics library includes a number of highly useful functions designed to simplify the writing of manipulation and control code for arbitrary-constructed robotic systems. For example, functions are available which can take a particular robot’s screw axes at a given joint configuration and then return the Space or Body Jacobians for that configuration. The controller can take the kinematic analysis results and perform calculations that will generate joint coordinates, chassis coordinates, and wheel coordinates that will put the robot on the path. VREP can then parse a CSV-formatted list of time-varying joint angles and play back the resultant motion of the robot; an example of which is seen below.

Results for the error feedback components are also included for both the “P-“ and “PI”-controller configurations. Note that the plots of position error shown below were taken from a scenario where the youBot’s initial conditions start the robot away from the desired path.

The end result is Python code that, when run, generates a motion plan that satisfies the challenge requirements. With additional work, the code could also be ported to interact with a real youBot controller and execute more sophisticated motion on a real system!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK