Body i+1 Body i-1 Body i Joint i Joint i+ 1 to tip (outward) to base (inward) Sensor Frame Frame A Body i+2 Joint i+ 2 Reference Frame Ground Frame root_body.

Slides:



Advertisements
Similar presentations
Mobile Robot Locomotion
Advertisements

Rotational Motion.
CLARAty: Towards Standardized Abstractions and Interfaces for Robotics Systems Coupled Layer Architecture for Robotic Autonomy Issa A.D. Nesnas Jet Propulsion.
Animation Following “Advanced Animation and Rendering Techniques” (chapter 15+16) By Agata Przybyszewska.
Selection and Monitoring of Rover Navigation modes: A Probabilistic Diagnosis Approach Thierry Peynot and Simon Lacroix Robotics and AI group LAAS/CNRS,
INTRODUCTION TO DYNAMICS ANALYSIS OF ROBOTS (Part 6)
The City College of New York 1 Prepared by Dr. Salah Talha Mobot: Mobile Robot Introduction to ROBOTICS.
ME Robotics Dynamics of Robot Manipulators Purpose: This chapter introduces the dynamics of mechanisms. A robot can be treated as a set of linked.
Introduction to ROBOTICS
Dr. Y.P. Daniel Chang Weidong Zhang Velocity Transformation Based Multi-Body Approach for Vehicle Dynamics Abstract: An automobile is a complex close loop.
Mobile Robotics: 10. Kinematics 1
Rotations. Space and Body  Space coordinates are an inertial system. Fixed in spaceFixed in space  Body coordinates are a non- inertial system. Move.
Design and Implementation of Motion Synthesis System Based on Support Phase Quan Yu.
Mechatronics 1 Week 11. Learning Outcomes By the end of week 11 session, students will understand some sorts of mobile robot and locomotion of wheeled.
Inverse Kinematics Jacobian Matrix Trajectory Planning
Introduction to ROBOTICS
Physics 430: Lecture 22 Rotational Motion of Rigid Bodies
More details and examples on robot arms and kinematics
INTRODUCTION TO DYNAMICS ANALYSIS OF ROBOTS (Part 5)
Physics. Session Particle Dynamics - 5 Session Objective 1.Circular motion 2.Angular variables 3.Unit vector along radius and tangent 4.Radial and tangential.
Kalman filter and SLAM problem
Definition of an Industrial Robot
1 Kinematics ( 運動學 ) Primer Jyun-Ming Chen Fall 2009.
Motion Control (wheeled robots)
1 CMPUT 412 Motion Control – Wheeled robots Csaba Szepesvári University of Alberta TexPoint fonts used in EMF. Read the TexPoint manual before you delete.
Computer Animation Rick Parent Computer Animation Algorithms and Techniques Kinematic Linkages.
Advanced Programming for 3D Applications CE Bob Hobbs Staffordshire university Human Motion Lecture 3.
Navi Rutgers University 2012 Design Presentation
KINEMATICS OF PARTICLES Kinematics of Particles This lecture introduces Newtonian (or classical) Mechanics. It concentrates on a body that can be considered.
Chapter 2 Robot Kinematics: Position Analysis
Dynamics.  relationship between the joint actuator torques and the motion of the structure  Derivation of dynamic model of a manipulator  Simulation.
Chapter 8 Rotational Kinematics. 8.1 Rotational Motion and Angular Displacement In the simplest kind of rotation, points on a rigid object move on circular.
Introduction to ROBOTICS
1 Robot Motion and Perception (ch. 5, 6) These two chapters discuss how one obtains the motion model and measurement model mentioned before. They are needed.
Computer Vision Group Prof. Daniel Cremers Autonomous Navigation for Flying Robots Lecture 2.3: 2D Robot Example Jürgen Sturm Technische Universität München.
Lecture 22 Dimitar Stefanov.
INTRODUCTION TO DYNAMICS ANALYSIS OF ROBOTS (Part 3)
1 Trajectories in CLARAty Mihail Pivtoraiko. 2 Overview Motivation –Providing infrastructure to support integration of currently funded MTP based tasks.
Chapter 8: Rotational Kinematics Essential Concepts and Summary.
Universal Mechanism Simulation of Tracked Vehicle Dynamics with
Chapter 9 Rotation of rigid bodies. Radian Vs Degree.
Kinematics Primer Jyun-Ming Chen. Contents General Properties of Transform 2D and 3D Rigid Body Transforms Representation Computation Conversion … Transforms.
EEE. Dept of HONG KONG University of Science and Technology Introduction to Robotics Page 1 Lecture 2. Rigid Body Motion Main Concepts: Configuration Space.
Spatial Operator Algebra Review
MTP FY03 Year End Review – Oct 20-24, Visual Odometry Yang Cheng Machine Vision Group Section 348 Phone:
Robot Kinematics: Position Analysis 2.1 INTRODUCTION  Forward Kinematics: to determine where the robot ’ s hand is? (If all joint variables are known)
Systems Realization Laboratory Compact Rescue Crawler ME /26/07 Jonathan Jobe Andrew Marshall Chris Weir.
CAP 4703 Computer Graphic Methods Prof. Roy Levow Chapter 9.
Chapter 3 Differential Motions and Velocities
Robotics II Copyright Martin P. Aalund, Ph.D.
INTRODUCTION TO DYNAMICS ANALYSIS OF ROBOTS (Part 4)
Rick Parent - CIS682 Rigid Body Dynamics simulate basic physics of an object subject to forces Keyframing can be tedious - especially to get ‘realism’
KINEMATICS ANALYSIS OF ROBOTS (Part 5). This lecture continues the discussion on the analysis of the forward and inverse kinematics of robots. After this.
Introduction to Robotics In the name of Allah. Introduction to Robotics o Leila Sharif o
ROBOTICS 01PEEQW Basilio Bona DAUIN – Politecnico di Torino.
Basilio Bona DAUIN – Politecnico di Torino
INTRODUCTION TO DYNAMICS ANALYSIS OF ROBOTS (Part 2)
MECHANICAL and AEROSPACE ENGINEERING Active Reconfiguration for Performance Enhancement in Articulated Wheeled Vehicles Aliakbar Alamdari PhD Candidate.
Using Sensor Data Effectively
Path Curvature Sensing Methods for a Car-like Robot
Zaid H. Rashid Supervisor Dr. Hassan M. Alwan
TIGERBOT 2 REJUVENATION
Hierarchical and Object-Oriented Graphics
CSE4421/5324: Introduction to Robotics
Hierarchical and Object-Oriented Graphics
PROBLEM SET 6 1. What is the Jacobian for translational velocities of point “P” for the following robot? X0 Y0 Y1 X1, Y2 X2 X3 Y3 P 1 What is the velocity.
Motion Models (cont) 2/16/2019.
Velocity Motion Model (cont)
Chapter 4 . Trajectory planning and Inverse kinematics
Chapter 3. Kinematic analysis
Presentation transcript:

Body i+1 Body i-1 Body i Joint i Joint i+ 1 to tip (outward) to base (inward) Sensor Frame Frame A Body i+2 Joint i+ 2 Reference Frame Ground Frame root_body F Reference Frame Background: Mechanism_Model What? unified approach for modeling mechanical properties of robotic systems (mechanisms) model data stored in XML files each rigid body in the mechanism is modeled as a node in a tree at the root of the tree is a ground body that contains the inertial (ground) reference frame each body contains a joint and a reference frame; bodies may have additional local frames, geometric and dynamic properties implement generic kinematic (and dynamic) algorithms for commonly needed operations Why? provide centralized storage for managing kinematic (and dynamic) model information ensure consistency of the model information reduce duplication in model representation enable development of generic algorithms support specific implementations to override generic algorithms enable verification of specialized kinematics algorithms

Mechanism_Model: XML File Example <Mechanism_Model name = "r8_rover“ version = "1.0“ zero_position = "true"> <ME_Joint name = "traverse“ type = "full6dof“ home = "0.0" > <Quaternion qi="0“ qj="0“ qk="0” qs="1" /> <Position x = "0.0279“ y = " “ z = " " /> <Quaternion qi="0“ qj="0“ qk="0” qs="1" /> <Inertia xx = "1.1E+00“ xy = "-1.1E-02“ xz = "-1.1E-01" yx = "-1.1E-02“ yy = "2.0E+00“ yz = "8.6E-03" zx = "-1.1E-01“ zy = "8.6E-03“ zz = "2.6E+00" /> <Bounding_Shape name = "obj20“ is_container = “false“ is_aligned = "false“ ignore_collisions = "false“ tol = "-1.0" > <Quaternion qi="0“ qj="0“ qk="0” qs="1" />

Loading in a model: Mechanism_Model mm; Mechanism_Model_IO mm_io(mm); mm_io.load(“path/sampleR8_Rover.xml”); Saving model data to a file: mm_io.save(“path/sampleR8_Rover_copy.xml”); Querying for a frame location: mm.get_joint(i).set_value(joint_i_value); … cout << “The location of the left bogie is ” << mm.get_body("bogie_left").get_absolute_transform() << endl; Mechanism_Model: Examples

DescriptionInputOutputFeatures/ Assumptions Position-based, Open-loop, fixed radius arc, flat terrain length, headingsteer angles wheel drive distances Circular arc drive sequences, Flat terrain model cmd. length, heading, one wheel’s drive distance fraction of motion completed Velocity-based, Closed-loop, flat terrain desired body velocity & angular velocity Wheel steer angles, wheel velocities Instantaneous circular arc, Flat terrain model Position-based, Open-loop, variable radius arc, flat terrain final position (x, y) & heading wheel steer angles, wheel drive setpoints Clothoid arc sequences, Flat-terrain model Velocity-based, Closed-loop, rocker bogie kinematics, non-flat terrain desired body velocitywheel velocities, steer angles customized algorithms for rocker- bogie rovers, full 3-D kinematics, continuous pose updates wheel velocities, steer angles chassis velocity, angular velocity Review of CLARAty Locomotion Kinematic Algorithms

Proposed Wheel_Locomotor Classes

class Wheel_Locomotor_Model { public: enum WHEEL_LOCOMOTOR_TYPE {FULLY_STEERABLE, PARTIALLY_STEERABLE, Constructors/destructors */ Wheel_Locomotor_Model(Mechanism_Model & mm, ME_Body & rover_body); Observers */ int get_number_of_wheels(); int get_number_of_steer_joints(); WHEEL_LOCOMOTOR_TYPE get_type(); Kinematic algorithms */ virtual void compute_wheel_velocities ( double & linear_velocity, double & direction, double & angular_velocity, Vector & steer_angles, Vector & wheel_velocities); virtual void compute_body_velocities ( Vector & steer_angles, Vector & wheel_velocities, double & linear_velocity, double & direction, double & angular_velocity); virtual void compute_wheel_motion ( double & arclength, double & heading, Vector & steer_angles, Vector & wheel_distances); virtual void compute_body_motion ( Vector & steer_angles, Vector & wheel_distances, double & arclength, double & heading); Wheel_Locomotor_Model API

*/ protected: virtual int _map_mechanism_model_to_wheel_locomotor_model(); virtual void _compute_jacobian(); Mechanism_Model & _mechanism_model; ME_Body & _rover_body; vector _wheels; int _number_of_steer_joints; WHEEL_LOCOMOTOR_TYPE _steer_type; Matrix _jacobian; Matrix _pseudoinverse_jacobian; private: }; Wheel_Locomotor_Model API – cont.

Wheel_Model API class Wheel_Model { public: enum WHEEL_TYPE { NON_STEERABLE_WHEEL, Constructors/destructors */ Wheel_Model(ME_Body & wheel_body, ME_Body & rover_body); Observers */ double get_radius(); WHEEL_TYPE get_type(); bool is_steerable(); Transform get_ground_contact(); ME_Body & get_wheel_body(); Set parameters*/ void set_type(WHEEL_TYPE wheel_type); */ protected: virtual bool _compute_wheel_radius(); ME_Body & _wheel_body; ME_Body & _rover_body; double _radius; WHEEL_TYPE _wheel_type; private: };

Locomotor Control-flow Option 1 (velocity-based, closed-loop mode) Uses Wheel_Locomotor Model compute_wheel_velocities() wheel steer angles & drive velocities Pose Estimate uses Wheel_Locomotor Model compute_body_velocities()+ IMU + visual odometry … delta position & heading desired position & heading estimated position and heading cmd. chassis linear & angular velocity Motor Controller Mechanism / Terrain dynamics Mechanism motion Path Generator Science planner/ navigator Controller

Locomotor Control-flow Option 2 (clothoid-arc, flat-terrain, open-loop mode) Path Generator path parameters (Clothoid) Wheel motion parameters (Motion_Sequence) Trajectory Generator joint setpoints Pose Estimate uses Wheel_Locomotor Model compute_wheel_velocities() + IMU + visual odometry … Controller position & heading estimated position and heading cmd. relative pose Motor Controller Mechanism/ terrain dynamics Mechanism motion Motion_Sequence_Generator uses Wheel_Locomotor Model compute_wheel_velocities() Science planner/ navigator

Locomotor Control-flow Option 3 (circular-arc, flat-terrain, open-loop mode) Path Generator path parameters (Drive_Sequence) Wheel motion parameters (Motion_Sequence) Trajectory Generator joint setpoints Pose Estimate uses Wheel_Locomotor Model compute_body_motion() + IMU + visual odometry … Controller position & heading estimated position and heading cmd. relative pose Motor Controller Mechanism/ terrain dynamics Mechanism motion Motion_Sequence_Generator uses Wheel_Locomotor Model compute_wheel_motion() Science planner/ navigator