From c497ede45f6a2e03495c29c1f090317579a3398d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sergi=20Hern=C3=A0ndez=20Juan?= <shernand@iri.upc.edu>
Date: Thu, 8 Mar 2012 10:54:48 +0000
Subject: [PATCH] Implemented the function get_torque().

---
 src/dynamixel_motor.cpp | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/src/dynamixel_motor.cpp b/src/dynamixel_motor.cpp
index f36d867..40b679e 100644
--- a/src/dynamixel_motor.cpp
+++ b/src/dynamixel_motor.cpp
@@ -1364,7 +1364,23 @@ void CDynamixelMotor::set_torque(float torque_ratio)
 
 float CDynamixelMotor::get_torque(void)
 {
-  return 0.0;
+  unsigned short int load;
+  float torque;
+
+  if(this->dynamixel_dev==NULL)
+  {
+    /* handle exceptions */
+    throw CDynamixelMotorException(_HERE_,"The dynamixel device is not properly configured.");
+  }
+  else
+  {
+    this->dynamixel_dev->read_word_register(current_load,&load);
+    torque=(load&0x3FF)*100.0/1023;
+    if(load>0x3FF)
+      torque=-1*torque;
+  }
+
+  return torque;
 }
 
 CDynamixelMotor::~CDynamixelMotor()
-- 
GitLab