Skip to content

Commit 304f7da

Browse files
authored
Updating current angle update functions to use jointPositions rather … (#264)
* Updating current angle update functions to use jointPositions rather than xDrive.Target * Updating SourceDestinationPublisher to use UrdfJointRevolute instead of ArticulationBodies. Fixing TrajectoryPlanner bug I introduced.
1 parent 689a1b5 commit 304f7da

File tree

2 files changed

+22
-21
lines changed

2 files changed

+22
-21
lines changed

tutorials/pick_and_place/Scripts/SourceDestinationPublisher.cs

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using UnityEngine;
33
using Unity.Robotics.ROSTCPConnector;
44
using Unity.Robotics.ROSTCPConnector.ROSGeometry;
5+
using Unity.Robotics.UrdfImporter;
56
using RosMessageTypes.Geometry;
67

78
public class SourceDestinationPublisher : MonoBehaviour
@@ -19,8 +20,8 @@ public class SourceDestinationPublisher : MonoBehaviour
1920
private int numRobotJoints = 6;
2021
private readonly Quaternion pickOrientation = Quaternion.Euler(90, 90, 0);
2122

22-
// Articulation Bodies
23-
private ArticulationBody[] jointArticulationBodies;
23+
// Robot Joints
24+
private UrdfJointRevolute[] revoluteJoints;
2425

2526
/// <summary>
2627
///
@@ -30,36 +31,36 @@ void Start()
3031
// Get ROS connection static instance
3132
ros = ROSConnection.instance;
3233

33-
jointArticulationBodies = new ArticulationBody[numRobotJoints];
34+
revoluteJoints = new UrdfJointRevolute[numRobotJoints];
3435
string shoulder_link = "world/base_link/shoulder_link";
35-
jointArticulationBodies[0] = niryoOne.transform.Find(shoulder_link).GetComponent<ArticulationBody>();
36+
revoluteJoints[0] = niryoOne.transform.Find(shoulder_link).GetComponent<UrdfJointRevolute>();
3637

3738
string arm_link = shoulder_link + "/arm_link";
38-
jointArticulationBodies[1] = niryoOne.transform.Find(arm_link).GetComponent<ArticulationBody>();
39+
revoluteJoints[1] = niryoOne.transform.Find(arm_link).GetComponent<UrdfJointRevolute>();
3940

4041
string elbow_link = arm_link + "/elbow_link";
41-
jointArticulationBodies[2] = niryoOne.transform.Find(elbow_link).GetComponent<ArticulationBody>();
42+
revoluteJoints[2] = niryoOne.transform.Find(elbow_link).GetComponent<UrdfJointRevolute>();
4243

4344
string forearm_link = elbow_link + "/forearm_link";
44-
jointArticulationBodies[3] = niryoOne.transform.Find(forearm_link).GetComponent<ArticulationBody>();
45+
revoluteJoints[3] = niryoOne.transform.Find(forearm_link).GetComponent<UrdfJointRevolute>();
4546

4647
string wrist_link = forearm_link + "/wrist_link";
47-
jointArticulationBodies[4] = niryoOne.transform.Find(wrist_link).GetComponent<ArticulationBody>();
48+
revoluteJoints[4] = niryoOne.transform.Find(wrist_link).GetComponent<UrdfJointRevolute>();
4849

4950
string hand_link = wrist_link + "/hand_link";
50-
jointArticulationBodies[5] = niryoOne.transform.Find(hand_link).GetComponent<ArticulationBody>();
51+
revoluteJoints[5] = niryoOne.transform.Find(hand_link).GetComponent<UrdfJointRevolute>();
5152
}
5253

5354
public void Publish()
5455
{
5556
NiryoMoveitJointsMsg sourceDestinationMessage = new NiryoMoveitJointsMsg();
5657

57-
sourceDestinationMessage.joint_00 = jointArticulationBodies[0].xDrive.target;
58-
sourceDestinationMessage.joint_01 = jointArticulationBodies[1].xDrive.target;
59-
sourceDestinationMessage.joint_02 = jointArticulationBodies[2].xDrive.target;
60-
sourceDestinationMessage.joint_03 = jointArticulationBodies[3].xDrive.target;
61-
sourceDestinationMessage.joint_04 = jointArticulationBodies[4].xDrive.target;
62-
sourceDestinationMessage.joint_05 = jointArticulationBodies[5].xDrive.target;
58+
sourceDestinationMessage.joint_00 = revoluteJoints[0].GetPosition() * Mathf.Rad2Deg;
59+
sourceDestinationMessage.joint_01 = revoluteJoints[1].GetPosition() * Mathf.Rad2Deg;
60+
sourceDestinationMessage.joint_02 = revoluteJoints[2].GetPosition() * Mathf.Rad2Deg;
61+
sourceDestinationMessage.joint_03 = revoluteJoints[3].GetPosition() * Mathf.Rad2Deg;
62+
sourceDestinationMessage.joint_04 = revoluteJoints[4].GetPosition() * Mathf.Rad2Deg;
63+
sourceDestinationMessage.joint_05 = revoluteJoints[5].GetPosition() * Mathf.Rad2Deg;
6364

6465
// Pick Pose
6566
sourceDestinationMessage.pick_pose = new PoseMsg

tutorials/pick_and_place/Scripts/TrajectoryPlanner.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,12 @@ NiryoMoveitJointsMsg CurrentJointConfig()
8282
{
8383
NiryoMoveitJointsMsg joints = new NiryoMoveitJointsMsg();
8484

85-
joints.joint_00 = jointArticulationBodies[0].xDrive.target;
86-
joints.joint_01 = jointArticulationBodies[1].xDrive.target;
87-
joints.joint_02 = jointArticulationBodies[2].xDrive.target;
88-
joints.joint_03 = jointArticulationBodies[3].xDrive.target;
89-
joints.joint_04 = jointArticulationBodies[4].xDrive.target;
90-
joints.joint_05 = jointArticulationBodies[5].xDrive.target;
85+
joints.joint_00 = jointArticulationBodies[0].jointPosition[0] * Mathf.Rad2Deg;
86+
joints.joint_01 = jointArticulationBodies[1].jointPosition[0] * Mathf.Rad2Deg;
87+
joints.joint_02 = jointArticulationBodies[2].jointPosition[0] * Mathf.Rad2Deg;
88+
joints.joint_03 = jointArticulationBodies[3].jointPosition[0] * Mathf.Rad2Deg;
89+
joints.joint_04 = jointArticulationBodies[4].jointPosition[0] * Mathf.Rad2Deg;
90+
joints.joint_05 = jointArticulationBodies[5].jointPosition[0] * Mathf.Rad2Deg;
9191

9292
return joints;
9393
}

0 commit comments

Comments
 (0)