From 9b894a9bb16fdc0c18dab5c4b38e55cb104d3619 Mon Sep 17 00:00:00 2001 From: Lukas Date: Sun, 10 Mar 2019 19:55:38 +0100 Subject: [PATCH 1/5] added control mode setters (current and velocity) --- Arduino/ODriveArduino/ODriveArduino.cpp | 8 ++++++++ Arduino/ODriveArduino/ODriveArduino.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/Arduino/ODriveArduino/ODriveArduino.cpp b/Arduino/ODriveArduino/ODriveArduino.cpp index 00fce19a..f9d4a356 100644 --- a/Arduino/ODriveArduino/ODriveArduino.cpp +++ b/Arduino/ODriveArduino/ODriveArduino.cpp @@ -46,6 +46,14 @@ void ODriveArduino::TrapezoidalMove(int motor_number, float position){ serial_ << "t " << motor_number << " " << position << "\n"; } +void ODriveArduino::SetControlModeCurrent(int motor_number){ + serial_<< "w axis" << motor_number << ".controller.config.control_mode " << 1 << "\n"; +} + +void ODriveArduino::SetControlModeVelocity(int motor_number){ + serial_<< "w axis" << motor_number << ".controller.config.control_mode " << 2 << "\n"; +} + float ODriveArduino::readFloat() { return readString().toFloat(); } diff --git a/Arduino/ODriveArduino/ODriveArduino.h b/Arduino/ODriveArduino/ODriveArduino.h index 86b3aaf1..ad0e922b 100644 --- a/Arduino/ODriveArduino/ODriveArduino.h +++ b/Arduino/ODriveArduino/ODriveArduino.h @@ -28,6 +28,8 @@ public: void SetVelocity(int motor_number, float velocity, float current_feedforward); void SetCurrent(int motor_number, float current); void TrapezoidalMove(int motor_number, float position); + void SetControlModeCurrent(int motor_number); + void SetControlModeVelocity(int motor_number); // General params float readFloat(); int32_t readInt(); From 609222db5b021a116c1e6fc6059c73dc5042f260 Mon Sep 17 00:00:00 2001 From: Lukas Kaul Date: Wed, 22 May 2019 23:01:37 +0200 Subject: [PATCH 2/5] removed control mode setters --- Arduino/ODriveArduino/ODriveArduino.cpp | 8 -------- 1 file changed, 8 deletions(-) diff --git a/Arduino/ODriveArduino/ODriveArduino.cpp b/Arduino/ODriveArduino/ODriveArduino.cpp index f9d4a356..00fce19a 100644 --- a/Arduino/ODriveArduino/ODriveArduino.cpp +++ b/Arduino/ODriveArduino/ODriveArduino.cpp @@ -46,14 +46,6 @@ void ODriveArduino::TrapezoidalMove(int motor_number, float position){ serial_ << "t " << motor_number << " " << position << "\n"; } -void ODriveArduino::SetControlModeCurrent(int motor_number){ - serial_<< "w axis" << motor_number << ".controller.config.control_mode " << 1 << "\n"; -} - -void ODriveArduino::SetControlModeVelocity(int motor_number){ - serial_<< "w axis" << motor_number << ".controller.config.control_mode " << 2 << "\n"; -} - float ODriveArduino::readFloat() { return readString().toFloat(); } From 3c181e9b054f742ecf45e2b4fc83d16fcd7d90f3 Mon Sep 17 00:00:00 2001 From: Lukas Kaul Date: Wed, 22 May 2019 23:02:14 +0200 Subject: [PATCH 3/5] removed control mode setters --- Arduino/ODriveArduino/ODriveArduino.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/Arduino/ODriveArduino/ODriveArduino.h b/Arduino/ODriveArduino/ODriveArduino.h index ad0e922b..86b3aaf1 100644 --- a/Arduino/ODriveArduino/ODriveArduino.h +++ b/Arduino/ODriveArduino/ODriveArduino.h @@ -28,8 +28,6 @@ public: void SetVelocity(int motor_number, float velocity, float current_feedforward); void SetCurrent(int motor_number, float current); void TrapezoidalMove(int motor_number, float position); - void SetControlModeCurrent(int motor_number); - void SetControlModeVelocity(int motor_number); // General params float readFloat(); int32_t readInt(); From 835de97e454d4cb2c3ffa3e8233be09c02d62b72 Mon Sep 17 00:00:00 2001 From: Lukas Kaul Date: Wed, 22 May 2019 23:04:09 +0200 Subject: [PATCH 4/5] added GetVelocity() reads estimated motor velocity from Arduino --- Arduino/ODriveArduino/ODriveArduino.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Arduino/ODriveArduino/ODriveArduino.h b/Arduino/ODriveArduino/ODriveArduino.h index 86b3aaf1..8e39b244 100644 --- a/Arduino/ODriveArduino/ODriveArduino.h +++ b/Arduino/ODriveArduino/ODriveArduino.h @@ -28,6 +28,8 @@ public: void SetVelocity(int motor_number, float velocity, float current_feedforward); void SetCurrent(int motor_number, float current); void TrapezoidalMove(int motor_number, float position); + // Getters + float GetVelocity(int motor_number); // General params float readFloat(); int32_t readInt(); From db5fc4e02bbf97842afd2bf2b1cdcc040761c492 Mon Sep 17 00:00:00 2001 From: Lukas Kaul Date: Wed, 22 May 2019 23:05:03 +0200 Subject: [PATCH 5/5] added GetVelocity() reads estimated motor velocity from Arduino --- Arduino/ODriveArduino/ODriveArduino.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Arduino/ODriveArduino/ODriveArduino.cpp b/Arduino/ODriveArduino/ODriveArduino.cpp index 00fce19a..3f4eab5a 100644 --- a/Arduino/ODriveArduino/ODriveArduino.cpp +++ b/Arduino/ODriveArduino/ODriveArduino.cpp @@ -50,6 +50,11 @@ float ODriveArduino::readFloat() { return readString().toFloat(); } +float ODriveArduino::GetVelocity(int motor_number){ + serial_<< "r axis" << motor_number << ".encoder.vel_estimate\n"; + return ODriveArduino::readFloat(); +} + int32_t ODriveArduino::readInt() { return readString().toInt(); }