introduction to motion generation for nao robot using android framework department: fti-fho-fpt...
TRANSCRIPT
![Page 1: INTRODUCTION TO MOTION GENERATION FOR NAO ROBOT USING ANDROID FRAMEWORK Department: FTI-FHO-FPT Presenter: Pham Van Trung](https://reader036.vdocuments.mx/reader036/viewer/2022062517/56649f1c5503460f94c322a2/html5/thumbnails/1.jpg)
INTRODUCTION TO MOTION GENERATION FOR NAO ROBOT USING
ANDROID FRAMEWORK
Department: FTI-FHO-FPT
Presenter: Pham Van Trung
![Page 2: INTRODUCTION TO MOTION GENERATION FOR NAO ROBOT USING ANDROID FRAMEWORK Department: FTI-FHO-FPT Presenter: Pham Van Trung](https://reader036.vdocuments.mx/reader036/viewer/2022062517/56649f1c5503460f94c322a2/html5/thumbnails/2.jpg)
OUTLINE
Introduction1
Motor Stiffness Control
Position Control
Locomotion Control5
4
2
Joint Angle Control3
Question and Comment6
![Page 3: INTRODUCTION TO MOTION GENERATION FOR NAO ROBOT USING ANDROID FRAMEWORK Department: FTI-FHO-FPT Presenter: Pham Van Trung](https://reader036.vdocuments.mx/reader036/viewer/2022062517/56649f1c5503460f94c322a2/html5/thumbnails/3.jpg)
Introduction
Robot Models
![Page 4: INTRODUCTION TO MOTION GENERATION FOR NAO ROBOT USING ANDROID FRAMEWORK Department: FTI-FHO-FPT Presenter: Pham Van Trung](https://reader036.vdocuments.mx/reader036/viewer/2022062517/56649f1c5503460f94c322a2/html5/thumbnails/4.jpg)
Introduction
Humanoid robot
• Have human model• Capable to perform as human
![Page 5: INTRODUCTION TO MOTION GENERATION FOR NAO ROBOT USING ANDROID FRAMEWORK Department: FTI-FHO-FPT Presenter: Pham Van Trung](https://reader036.vdocuments.mx/reader036/viewer/2022062517/56649f1c5503460f94c322a2/html5/thumbnails/5.jpg)
Introduction
NAO Humanoid Robot
![Page 6: INTRODUCTION TO MOTION GENERATION FOR NAO ROBOT USING ANDROID FRAMEWORK Department: FTI-FHO-FPT Presenter: Pham Van Trung](https://reader036.vdocuments.mx/reader036/viewer/2022062517/56649f1c5503460f94c322a2/html5/thumbnails/6.jpg)
Introduction
Motions of NAO Robot
How to move an arm or a leg to a position? Forward kinematic Inverse kinematic
How to locate a position of the robot?
![Page 7: INTRODUCTION TO MOTION GENERATION FOR NAO ROBOT USING ANDROID FRAMEWORK Department: FTI-FHO-FPT Presenter: Pham Van Trung](https://reader036.vdocuments.mx/reader036/viewer/2022062517/56649f1c5503460f94c322a2/html5/thumbnails/7.jpg)
Introduction
NAO Motion Module on Android Framework
1. Control Stiffness of Joint Motor
2. Control Joint Angle
3. Control Effector Position in Cartesian Coordinate
4. Locomotion control
![Page 8: INTRODUCTION TO MOTION GENERATION FOR NAO ROBOT USING ANDROID FRAMEWORK Department: FTI-FHO-FPT Presenter: Pham Van Trung](https://reader036.vdocuments.mx/reader036/viewer/2022062517/56649f1c5503460f94c322a2/html5/thumbnails/8.jpg)
Stiffness Control
What is stiffness?
Basically, stiffness is a torque that a motor of joint can generate Stiffness value relatively defined 0.0 to 1.0
Functions to control and manage stiffness Globally, on the whole robot using:
o RobotMotionStiffnessController. wakeUp (Robot robot)o RobotMotionStiffnessController. rest (Robot robot)
Specifically, for one or several joint(s) using: o RobotMotionStiffnessController. stiffnessInterpolation (Robot robot, String[]
names, float[] stiffnesses, float[] times) float[] o RobotMotionStiffnessController. getStiffnesses (Robot robot, String name )o RobotMotionStiffnessController. setStiffnesses (Robot robot, String[] names,
float[] stiffnesses)
![Page 9: INTRODUCTION TO MOTION GENERATION FOR NAO ROBOT USING ANDROID FRAMEWORK Department: FTI-FHO-FPT Presenter: Pham Van Trung](https://reader036.vdocuments.mx/reader036/viewer/2022062517/56649f1c5503460f94c322a2/html5/thumbnails/9.jpg)
Stiffness Control
Example Using setStiffnesses()
names – Name or names of joints or chains: “Body”, “JointActuators”, “Joints” or “Actuators”: HeadYaw, LShoulderPitch, LHipYawPitch, RHipYawPitch, RShoulderPitch, HeadPitch, LShoulderRoll, LHipRoll, RHipRoll, RShoulderRoll, LElbowYaw, LHipPitch, RHipPitch, RElbowYaw, LElbowRoll, LKneePitch, RKneePitch, RElbowRoll,LWristYaw, LAnklePitch, RAnklePitch, RWristYaw, LHand, RAnkleRoll, LAnkleRoll, RHand.
Stiffnesses, stiffnessLists, – An stiffness, list of stiffnesses or list of list of stiffnesses. Range of stiffness value is within [0.0,1.0];
![Page 10: INTRODUCTION TO MOTION GENERATION FOR NAO ROBOT USING ANDROID FRAMEWORK Department: FTI-FHO-FPT Presenter: Pham Van Trung](https://reader036.vdocuments.mx/reader036/viewer/2022062517/56649f1c5503460f94c322a2/html5/thumbnails/10.jpg)
Joint Control
What is joint control? Rotate a joint motor by a exact given angle Forward kinematic control
Functions to control joint angles Animation methods (time fixed, blocking functiono RobotMotionJointController. angleInterpolation (Robot robot, String[] names,
float[] angles, float[] times, boolean isAbsolute)o RobotMotionJointController. angleInterpolationWithSpeed (Robot robot,String[]
names, float[] angles, float fractionMaxSpeed) Reactive methods (could be changed every ALMotion cycle, non blocking
function)o RobotMotionJointController. setAngles (Robot robot, String[] names, float[] angles,
float fractionMaxSpeed) o RobotMotionJointController. changeAngles (Robot robot, String[] names, float[]
angles, float fractionMaxSpeed)o RobotMotionJointController. closeHand (Robot robot, String hand)o RobotMotionJointController. openHand (Robot robot, String hand)
![Page 11: INTRODUCTION TO MOTION GENERATION FOR NAO ROBOT USING ANDROID FRAMEWORK Department: FTI-FHO-FPT Presenter: Pham Van Trung](https://reader036.vdocuments.mx/reader036/viewer/2022062517/56649f1c5503460f94c322a2/html5/thumbnails/11.jpg)
Joint Control
Example Using angleInterpolation ()
names – Name or names of joints, chains as mentioned in the section 1.
angles – An angle, list of angles or list of list of angles in radians that will be varied. Range of angle variation is within [-3.14,+3.14] depending on an allowable range of a chosen joint. See more about joint of hardware specification.
times – A time, list of times or list of list of times in seconds. It must be greater than zero.
isAbsolute – If true, the movement is described in absolute angles in the default defined coordinate , else the angles are relative to the current angle.
![Page 12: INTRODUCTION TO MOTION GENERATION FOR NAO ROBOT USING ANDROID FRAMEWORK Department: FTI-FHO-FPT Presenter: Pham Van Trung](https://reader036.vdocuments.mx/reader036/viewer/2022062517/56649f1c5503460f94c322a2/html5/thumbnails/12.jpg)
Cartesian ControlWhat is Cartesian control?
Move an effector (chain of joints) to a given position in a Cartesian coordinate Dealing with inverse kinematic problem
Functions Animation methods (time fixed, blocking functiono RobotMotionCartesianController. positionInterpolation (Robot robot, String name,
int space, RobotPosition6D[] positionList, int axisMask, float[] durationList, boolean isAbsolute)
o RobotMotionCartesianController. positionInterpolations (Robot robot, String[] names, int spaceForAll, RobotPosition6D[] positionList, int[] axisMaskList, float[] durationList, boolean isAbsolute)
Reactive methods (could be changed every ALMotion cycle, non blocking function)
o RobotMotionCartesianController. setPosition (Robot robot, String name, int space, RobotPosition6D position, int axisMask, float fractionMaxSpeed)
o RobotMotionCartesianController. changePosition (Robot robot, String name, int space, RobotPosition6D positionChange, int axisMask, float fractionMaxSpeed)
![Page 13: INTRODUCTION TO MOTION GENERATION FOR NAO ROBOT USING ANDROID FRAMEWORK Department: FTI-FHO-FPT Presenter: Pham Van Trung](https://reader036.vdocuments.mx/reader036/viewer/2022062517/56649f1c5503460f94c322a2/html5/thumbnails/13.jpg)
Cartesian Control
Example Using positionInterpolation ()
Name – Name of the chain. Could be: “Head”, “LArm”, “RArm”, “LLeg”, “RLeg”.
space – Task space {FRAME_TORSO = 0, FRAME_WORLD = 1, FRAME_ROBOT = 2}.
positionList – Vector of 6D position arrays (x,y,z,wx,wy,wz) in meters and radians.
axisMask – Axis mask. True for axes that you wish to control. e.g. 7 for position only, 56 for rotation only and 63 for both.
durationList – Vector of times in seconds corresponding to the path points.
isAbsolute – If true, the movement is absolute else relative.
Robot – is a connected robot. This variable is retrieved by calling the function Robot. getRobot().
![Page 14: INTRODUCTION TO MOTION GENERATION FOR NAO ROBOT USING ANDROID FRAMEWORK Department: FTI-FHO-FPT Presenter: Pham Van Trung](https://reader036.vdocuments.mx/reader036/viewer/2022062517/56649f1c5503460f94c322a2/html5/thumbnails/14.jpg)
Locomotion Control
What is Locomotion control? Move a robot in local place
Functions to manage walkingo RobotMotionLocomotionController. moveTo (Robot robot, RobotMoveTargetPosition
target)o RobotMotionLocomotionController. setWalkTargetVelocity (Robot robot,
RobotMoveTargetPosition target, float speed)o RobotMotionLocomotionController. moveIsActive()o RobotMotionLocomotionController. stopMove()o RobotMotionLocomotionController. getRobotPosition (const bool& useSensors)o RobotMotionLocomotionController. getNextRobotPosition()o RobotMotionLocomotionController. getRobotVelocity()
![Page 15: INTRODUCTION TO MOTION GENERATION FOR NAO ROBOT USING ANDROID FRAMEWORK Department: FTI-FHO-FPT Presenter: Pham Van Trung](https://reader036.vdocuments.mx/reader036/viewer/2022062517/56649f1c5503460f94c322a2/html5/thumbnails/15.jpg)
Locomotion Control
Examples SetWalkwithVelocity()
x – Fraction of MaxStepX. Use negative for backwards. [-1.0 to 1.0]
y – Fraction of MaxStepY. Use negative for right. [-1.0 to 1.0]
theta – Fraction of MaxStepTheta. Use negative for clockwise [-1.0 to 1.0]
Frequency – Fraction of MaxStepFrequency [0.0 to 1.0]
MoveTo()x – Distance along the X axis in meters.
y – Distance along the Y axis in meters.
theta – Rotation around the Z axis in radians [-3.1415 to 3.1415].
![Page 16: INTRODUCTION TO MOTION GENERATION FOR NAO ROBOT USING ANDROID FRAMEWORK Department: FTI-FHO-FPT Presenter: Pham Van Trung](https://reader036.vdocuments.mx/reader036/viewer/2022062517/56649f1c5503460f94c322a2/html5/thumbnails/16.jpg)
Questions and Comments
Thank for Your Attention