## Manipulate Individual Joint Angle using MATLAB

This section helps you to manipulate individual joint angle of the KINOVA® Gen3 7-DoF Ultralightweight Robot arm using MATLAB®. Execute these commands sequentially in the MATLAB to manipulate individual joint angles of the robot. As explained in KINOVA github page, the first part of the ROS topic, `'my_gen3’` might be different based on the robot name set during the `roslaunch` command.

Create a service client with an empty message to control the individual joint angles.

`[jointSrv,jointRequest] = rossvcclient('/my_gen3/base/play_joint_trajectory');`

Set the desired joint angles for Kinova Gen3 robot.

```jAngs = [0 15 180 -130 0 55 90]'*pi/180; jAngs(jAngs < 0) = jAngs(jAngs < 0) + 2*pi;```

Populate the blank message with the desired joint angle values.

```for idx = 1:7 jAngMsgs(idx) = rosmessage('kortex_driver/JointAngle'); jAngMsgs(idx).JointIdentifier = idx; jAngMsgs(idx).Value = rad2deg(jAngs(idx)); end jointRequest.Input.JointAngles.JointAngles_ = jAngMsgs;```

Use the default type and value for the constraints. This will set the constraint type to angular velocity constraint and uses the default limit for the maximum Angular velocity.

```jointRequest.Input.Constraint.Type = 0; % Speed constraint jointRequest.Input.Constraint.Value = 0; % Max angular speed in deg/s```

Call the service to move the Robot.

`call(jointSrv,jointRequest);`

Wait for the robot to stop moving.