Ideal for the Super Fast Robot (T-motor)
Ғылым және технология
T-motor company was kind enough to send me two robot actuators with MIT mini Cheetah controllers. And It was a pleasure to test them. Thanks to the fast controller you can do the collision detection and bilateral telepresence.
Here the link to this actuator:
Sales Engineer: Yoyo Liu
E-mail: yoyo@tmotor.com
Skype: Yoyo28rctiger
WhatsApp: +86 15797704489
Product Link: store-en.tmotor.com/goods.php...
Special thanks to my special Patrons: Wesley Corp, RobotDigg Shanghai, Pierre Freyssinet, M. Aali and Shounak Bhattacharya!
Please subscribe. This will help me to develop other projects like this, to bring the bright future closer!
One time donation:
www.paypal.me/Skyentific
If you want to help this channel, please support me on Patreon:
/ skyentific
Instagram: / skyentificinsta
Facebook: / skyentificface
Twitter: / skyentifictweet
#Actuator #Brushless #Robotics
Пікірлер: 258
Love watching all your videos! This one was very interesting, thank you for sharing and keep making these videos.
Pretty exciting. T-Motor has a very good reputation in the drone industry. Both my drones have T-Motors installed.
Друг, i love the way you present. Every time i watch a video of yours i have good laughs guaranteed and perfectly presented interesting actuators. Directly stolen from ...'s thesis made me roll on the floor laughing:) Best wishes from Bulgaria!
As always a verry nice video and presentation of the motors! 😊👍👍👍
@Skyentific
4 жыл бұрын
Thank you a lot! :)
That telepresence demo was freaken cool!
As always a verry nice video and presentation of the motors !!!
another great video, yes those actuators did look pretty sexy coming out of the box.
Thank you so much, for this very helpful educational video. You are an excellent teacher. Super!
@Skyentific
4 жыл бұрын
Thank you!
Lovin that Eee PC!
@Skyentific
4 жыл бұрын
And it needs less than 10 minutes to boot!
Perfect motor for a DIY scara robot arm!! Imagine the 3D printer you could make with that.
Those look very fun to play around with and try things
You are an awesome inventor... Love you from India.
Очень классный канал. Третий день под впечатлением. Спасибо!
@Skyentific
4 жыл бұрын
Спасибо большое что смотрите!
Amazing review!
Hi @Skyentific! Really nice video! Could you share the values for the proportional and derivartive gains? At the beginning the values were Kp = 100 and Kd = 0.1?
Awesome videos. Thanks
@Skyentific
4 жыл бұрын
Thank you!
Awesome!
Just bought one. Will update soon
@BoltzVideo
3 жыл бұрын
Hi, did you manage to get it running with Arduino (or similar) controller?
@akimrain
Жыл бұрын
@@BoltzVideo HI what about you? How did you run it?
You could try using the STM32 you used for your DIY Mini Cheetah Controller as the brain. Most of the STM32 boards are programmable in the Arduino language and some even support CAN built in or have support for normal Arduino shields. And of course they are much faster than an Arduino.
Does these actuators require endstops and homing cycle when used in robot arm, or the position is always absolute and precise?
@Skyentific
4 жыл бұрын
P Kav it is absolute in the range of one motor rotation (1/6 output shaft rotation). And you don’t need endstops, and you don’t need to do the homing.
@TheNamelessOne12357
4 жыл бұрын
@@Skyentific Absolute encoder? So homing and endstops are still required. Axis 1, for example, can turn much more than 60 degrees.
Great videos! How do you rate this motor compared to the Gyems RMD X-8 you reviewed earlier. Any differences in build quality, backlash etc? Are they controlled the same way?
mayze forze bez with you :D
@derarty4290
3 жыл бұрын
9:46
What did you use for the P, V, T, KP, and KD max/min limits? T Motors website seems to list the same (most likely wrong) cookie cutter spec sheet for all their motors and also doesn't provide the KD/KP values at all.
I wish it was stronger but I love the controller I think it's better than the Odrive except for the lack of power.
@Skyentific
4 жыл бұрын
Eric lamb ODrive have a lot of possibilities. This one has less control, but it is super easy and extremely fast.
Nice video, how do they motor know it hit something? like your hand in the minute 6.30 , is it a current sensor or something else? and how is controlling the stiffness? thanks in advance and thanks for the good content
Your videos are very cool! Thank you for that! I'm from Ukraine and I don't understand English well, but with your accent it's easier for me to understand! Please make more robotics and hardware videos! I like and subscribe!
good work
When you dont power those actuators from batteries what kind of power supply do you use for high amperage?
I like this style of actuator but they are all so expensive :( still geared dc motors and steppers for me!
@excitedbox5705
4 жыл бұрын
Look at gimbal motors on aliexpress. Same style but much more affordable.
@Alex-kr7zr
3 жыл бұрын
Still cheaper and more compact than a typical strainwave geared AC drive actuator used in robotics, and they get significantly cheaper with higher volume.
@Sigmatechnica
3 жыл бұрын
@@Alex-kr7zr Yeah progress is being made here for sure. It's just a bit frustrating as a hobbyest that the barrier for entry is still quite high.
Hi Skyentific, on Hackaday website there are threads talking about the Steadywin V2 model of Ben Katz motors being a poor quality with the built-in controller being very unreliable and inconsistent (1amp in one direction and sometimes 15 amps in the other). Have you noticed any of these types of issues with the tmotor or gems motors? Do they seem to function reliably and consistently forward and back, etc?
"super simple" 😂 this is some amazing stuff, but there's not a lot of sub fields of robotics than can be considered simple in my opinion. This requires a lot of knowledge of a lot of topics, so don't play yourself down ^^. Thank you very much for making it understandable!
Hi sir, at 3:30 i think the Kp, Kd and Ti is the coefficient of the PID controller of a closed loop control of the system
@Skyentific
4 жыл бұрын
Yes, I think you are right. But when you say coefficient of PID, it is less obvious how to use them. :)
First of all, thanks for this informative video. Would you compare them with MIT Mini Cheetah, INNFOS, RMD x8, RMD x8 PRO actuators which were in your previous videos? Even though it is a hard comparison, it may guide us.
@ilovetechnology8436
4 жыл бұрын
Please include ODrive also
Do you have a PCIE / Ethernet / USB to CAN adapter you use?
Interestion if stiffness and damper are P and D coefficients of PID controller respectively
Nice, finally we can do remote arm wrestling.
Safety first, you are in the habit of taking your face too close to the moving arms, we don’t want you to get hurt. super good video, Thank you
Supercool, if I had three of these I would make such an awesome 3D-printer with it. But I assume these are way out of my price range. Also lovely to see how you can link them together and 'feel' the force that you apply on one end to translate into the second one.
@Mr30friends
4 жыл бұрын
I don't think that motor speed is a concern in 3d printing. It would be kind of an overkill.
@TheNamelessOne12357
4 жыл бұрын
3D Printer actuator must have no backlash.
@evanemanuel1774
4 жыл бұрын
If you really wanted to make an awesome 3D printer, you might pick low/minuscule backlash, mid-range speed, high stiffness, and a controller that focuses on precision and not torque or speed. AKA steppers. BUT the very fact that you saw this video and considered what cool things you could make with it, that’s what the world needs. stay inspired my friend
@MarinusMakesStuff
4 жыл бұрын
@@Mr30friends Maybe I love overkill :)
@MarinusMakesStuff
4 жыл бұрын
@@TheNamelessOne12357 This will be fine. Trust me. At the scale I'm thinking backlash will not be a problem anyway.
"Some power for me" lmao
Can I know how you control the the two actuators to perform like that?
Can you suggest any motor which has a linear ball scew actuator
Ausgezeichnet!
@Skyentific
4 жыл бұрын
Vielen Dank!
First Comment I love your videos .from Bangladesh !
@Skyentific
4 жыл бұрын
I confirm: first comment. Thank you!
Like everytime, Nice video!
@Skyentific
4 жыл бұрын
Thank you!
Does it support multi torque in position control?
Nice
@Skyentific
4 жыл бұрын
Thank you!
what motors and controllers do you recommend for animatronics?
Could use them to have adjustable dampening and ride height on an ebike. Price is eyewatering though, Maybe this technology will be more affordable in the future. Good video.
Hi... Can we move it at different rpm...(velocity control mode) I want to move my motor at 1 rpm, 2 rpm... 10 rpm and 100 rpm... with endless rotation.
where did he get that cool holder?
С русским акцентом мне даже легче понимать английский язык :). И с юмором, что тоже приветствуется!
@Skyentific
4 жыл бұрын
Спасибо. Отдельное спасибо что не стали Мутко вспоминать :).
@SABTEC
4 жыл бұрын
А я то думал почему мне все так понятно на слух. Не знал, что автор русский ;). Интересно слушать и смотреть, спасибо!
@user-eb4kl1uy2c
4 жыл бұрын
@@SABTEC Здравствуйте! А я бывший типограф, :) , в совдепии работал на ещё плоскопечатных машинах высокой печати.
@ukyakin
3 жыл бұрын
Да-да, полностью поддерживаю)!
@nibunimu
3 жыл бұрын
Русский акцент сразу ударил по ушам. Что бы убедиться в своей правоте открыл описание под роликом, но увидев там какого-то Yoyo Liu был крайне удивлен. Пока не понял что это просто контакт продавца.
What battery can I use for AK80-9 motor?
What's the max RPM? Can it run as a servo motor, if so what is the CPR of encoder?> I want to DIY force-feedback game controllers for sim racing and flight sims
I try to control AK60-60 in Ubuntu 20.0.4 with TMotorCANControl Api in python lib but check motor connection method return (RTNETLINK answers: Operation not supported). I have to install some driver? to make TMotorCANControl Api find Can0? (I use R-Link can protocol)
Can you show the movement at max speed? That would be interesting!
Can your DIY robotic arm write on pape.. if yes please make a video on that.. keep the good work..
Hi, great video! But 1 question: how did you do the bilateral telepresence? Couldn’t hear what you said in the video :(
@Skyentific
4 жыл бұрын
Everything is explained in the master thesis of Ben Katz. And he took it from this paper: ieeexplore.ieee.org/document/1618740 . But basically it is: Torque1 = Kp*(pos2-pos1)+Kd*(v2-v1)-K*v1 Torque2 = Kp*(pos1-pos2)+Kd*(v1-v2)-K*v2
@hysoon6167
4 жыл бұрын
@@Skyentific Thank you so much! This is just great!
Switzerland or Luxembourg? (Judging by the eeepc keyboard)
@Skyentific
4 жыл бұрын
Switzerland :)
That what I want to use to design barrier free openings ! Existing ones suck like hell
How are you doing with computer vision?
Hello! Is it possible for you to share your code for the torque threshold and the bilateral teleoperation? I couldn’t get mine working properly and I can’t find good resources online besides yours! Enjoying your videos!
@akimrain
Жыл бұрын
Hi, do you have also similar motor? how do you operate them?
Nice video! Do you have a link to the arduino CAN code that you wrote?
@akimrain
Жыл бұрын
Hi, do you have similar motor? how did you control it?
Hi, we started to experiment with these motors after watching your video. However, we find the operation to be noisy. Especially when you push it after setting some Kp, Kd values. Did you notice it as well?
@kaifbhojani7979
2 жыл бұрын
Hello @Shivesh Kumar can you please tell us how are you controlling the motor and which controller are you using.
@akimrain
Жыл бұрын
Hi Shivesh, same question here
Question: Did this motor come with any cables? or do i have to create my own CAN and power harnesses?
@Skyentific
3 жыл бұрын
I don’t know. I got 1 set of cables (CAN, power, serial) for 2 actuators. So it looks like half a set per actuator. ?!
@1119hayabusa
3 жыл бұрын
One UART, CAN, and Power cables are included per motor package.
@akimrain
Жыл бұрын
@@1119hayabusa hi, how do you control this motor? I have similar ones
It will be great if you put links on previous videos
@Skyentific
4 жыл бұрын
Дмитрий Кравцов yes! You are right!
Stupied question : Can i use them as a stepper motors for a CNC
@Skyentific
4 жыл бұрын
Yes. But steppers are good for CNC. They are cheap, no backlash. And on CNC, you don’t need to have light motors. The feature of this motor: they are light and powerful.
Hello, good, I wanted to ask if the motor is only capable of controlling the torque or the speed and position can also be controlled.
@Skyentific
4 жыл бұрын
Yes. You can put torque = 0, this will be position control. If you also set stiffness to zero, this will be speed control. But for speed control there is a drawback: it has a limit at how many turns it can make. It cannot rotate indefinitely like with ESC.
@jiachen3920
4 жыл бұрын
@@Skyentific Thank you for your response.
@jiachen3920
4 жыл бұрын
@@Skyentific Sorry I have tried to reproduce your arduino code but I have missed several errors when compiling, if it is not so much trouble if I could upload your code I would appreciate it.
@yoyoliu7109
3 жыл бұрын
Hi Jia, this actuator support "position control, speed control, and torque control".
@akimrain
Жыл бұрын
@@jiachen3920 Hi Jia, did you make it work?
There are at least 3 companies in China producing and selling MIT motors : HaiTai Motor, they are the first company producing the MIT motor, as soon as the MIT opensource the motor. ZhiQing Dog, they are producing the entire Mini Cheetah dog , and selling it at the price of 1.8W RMB, means 6000$. They have 3 diffrerent types of MIT motor to sell. T-Motor , they just start producing the MIT motor this year , Skyentific is introducing this company here.
@Skyentific, please also share the code of this demonstration.
Hello, fist of all very helpful video, secondly, do you know of a way to program and control the motor using Python rather than Arduino?
@akimrain
Жыл бұрын
hi Michael, did you figure it out? do you have similar motors?
bilateral telepresence reminds me of the movie Real Steel.
When that Eee PC from 15 years ago was new... it cost about half as much as one of those motors =O
Hi, how to callibrate the motor? I could not find the software. Maybe we can callibrate it without the software?
@zombieexpress99
2 жыл бұрын
I try to follow the steps by connecting it to terra term through the ftdi board. But no data comes out
@akimrain
Жыл бұрын
how did you make it control?
pretty cool, now do send it to another side of the room and try to control
What is the name of that shield that's being used with the Arduino?
@Scott_C
4 жыл бұрын
He said "can bus shield" didn't hear a specific brand. However, I don't think there are many CB shields, and any of them would probably run the motor since it's an international com standard.
@MrGatlin98
4 жыл бұрын
@@Scott_C Thanks. I noticed that later in the video (I commented too soon lol). I found one online from Sparkfun that looks identical.
When chaining the motors together, is there a trick to the CAN Id and Master Id settings on the motors? I can talk to a single motor fine but when I add another motor in (including the termination 120ohm) I can't talk to any of the motors?
@Skyentific
3 жыл бұрын
You need to change id. By default they all have id=1. Master id is usually equal to zero.
@Skyentific
3 жыл бұрын
I am actual working on this right now. :))) chaining 3 T-motor actuator.
@moldedjelly80
3 жыл бұрын
@@Skyentific Thanks very much for your comments and your videos! They've been very helpful. We're working on a camera gimbal system.
@moldedjelly80
3 жыл бұрын
@@Skyentific I think I'm having problems with our 2 chained motors because the CAN port broke on one after some unexpected operations in testing :(
@Skyentific
3 жыл бұрын
Chaining 3 motors works fine as long as I don’t use id higher than 3. For some reason the id 4 and higher (i tried 4, 5, 6 and 7) does not work for me.
8:02 Make windshield wipers!
awesome motors dont even want to ask how mutch they cost lol yep i looked damm lol
Эс олвейс, итс эн амэйзинг видео - грит джоб, френд! Сач э вандефул интрадакшен ин роботикс фо новайс юзерс, лайк ай эм. Рили апришиэйт йор ворк. Гритингз фром Юкрейн!
@Skyentific
4 жыл бұрын
Spasibo bol’shoe. :)
Skyentific: Easy!! Me: ????
I put the like
@Skyentific
4 жыл бұрын
Raphaël Casimir thank you!
Это подхолящий мотор для каких роботов?
Thank you for uploading awesome video ! In this video, text is output on TeraTerm right after connecting power supply, but it doesn't happen in my environment. Can you think of any reason for this?
@Skyentific
4 жыл бұрын
Hayabusa Js For me it was always immediately after I connect the power. Are you sure that you connected everything properly? Receiver, Transmitter and ground?
@1119hayabusa
4 жыл бұрын
@@Skyentific Thank you for your reply, sir. I am using FT234X USB-serial converter module and re-checked the connection and baudrate and so on, but it still doesn't work...
@Skyentific
4 жыл бұрын
Simple question, but just to be sure: do you connect. Your connection should be like this: Ground - Ground Tx - RX Rx - Tx. Transmitter to Receiver, Receiver to Transmitter. Please check this. According to 2:12
@1119hayabusa
4 жыл бұрын
@@Skyentific Yes. I did a lot of checks.
@Skyentific
4 жыл бұрын
In this case maybe try another usb-serial converter. I don’t know. It should work. I had a problem when I was connecting it first time. Because I was using wrong cable (ground was in the place of receiver. And receiver was on the ground place), But on video it is shown correctly.
Sorry if I missed something here, but is this using an FOC library?
@Skyentific
3 жыл бұрын
Yes it is.
На башенных кранах КБ674А устанавливались сельсинов, один на двигателе грузовой тележки, второй в кабине машиниста, эта пара показывала вылет тележки.
Hi sir, all your videos are Excellent. I want to make a 4 DOF robotic arm of 100 cm reach and 1 kg payload. Are these T motors good enough for my Arm?
@Skyentific
4 жыл бұрын
Thank you. No, you would need more powerful actuators. These actuators would overheat quickly with such load. You would need to use actuators with at least 15Nm rated torque. store-en.tmotor.com/goods.php?id=1030 this one should work for you. But you will have the precision of around 3-5mm, due to backlash.
@Skyentific
4 жыл бұрын
Or you can use these actuators with additional reduction stage to increase the torque.
@karryvenkatesh5116
4 жыл бұрын
@@Skyentific Thanks a lot sir for replying. Can i use servo mentioned by you store-en.tmotor.com/goods.php?id=1030 directly at joint without using harmonic gear system and which controlling board you prefer to buy for easy controlling of 4 such servos for my robotic arm. Thank you in advace
@Skyentific
4 жыл бұрын
karry venkatesh yes, in my opinion this actuator should work, but your entire arm should be light of course!!! To control you can use arduino with can bus shield or teensy with can bus shield or stm32 or many others. Arduino would be the most simple. Teensy could be a good compromise, relatively simple and quite powerful.
What is the price of this actuator
*2x518 USD* .. Damn nice gift !!!
Вот интересно какую скорость номинальную оно имеет? Ньютон-метры это конечно интересно, а RPM то умолчал
@Skyentific
4 жыл бұрын
365rpm, I don’t know where you need to have such high rpm. I don’t pay attention at rpm of QDD actuators, because they usually have enough rpm for most of the tasks.
How did you measure the backlash?
@Skyentific
3 жыл бұрын
I attached long arm to the output shaft and checked the play at the end of the arm. It is not the real measurements, but rather estimation.
@SoumyaMaitra2008
3 жыл бұрын
Skyentific makes sense brother. Very good idea :)
2:29 OMG!! ASUS EEEPC!!!
this might be out of scope... but is that a safety goggles or your working glasses? or both??? because it looks cool man......
Is T-Motor better or GYEMS better? please ignore price consideration. thanks
@Skyentific
3 жыл бұрын
My opinion: Gyems has better mechanics (looks more solid, less backlash), but T-motor has better electronics (easier to control, more possibilities). I even think about taking Gyems actuator, and putting the better electronics (controller inside).
@saminsiddiquee2059
3 жыл бұрын
@@Skyentific thank you, you are a genius
Лондон из зэ кэпитал оф Грейтбритан!
Can you share your arduino code ? I have bought a arduino can shield v1.2 and arduino uno, and a MIT motor , but I don't know how to use them bu arduino
@Skyentific
3 жыл бұрын
To understand how to use it, you can watch my video about MIT mini Cheetah controller (How to Build MIT mini Cheetah controller). And this is the Arduino code: // demo: CAN-BUS Shield, send data // loovee@seeed.cc #include #include /*SAMD core*/ #ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE #define SERIAL SerialUSB #else #define SERIAL Serial #endif // Define Joystick connection pins #define UP A1 #define DOWN A3 #define LEFT A2 #define RIGHT A5 #define CLICK A4 //Define LED pins #define LED2 8 #define LED3 7 // Value Limits #define P_MIN -12.5f #define P_MAX 12.5f #define V_MIN -65.0f #define V_MAX 65.0f #define KP_MIN 0.0f #define KP_MAX 500.0f #define KD_MIN 0.0f #define KD_MAX 5.0f #define T_MIN -18.0f #define T_MAX 18.0f // Set values float p_in = 0.0f; float v_in = 0.0f; float kp_in = 20.0f; float kd_in = 3.0f; float t_in = 0.0f; // measured values float p_out = 0.0f; float v_out = 0.0f; float t_out = 0.0f; // the cs pin of the version after v1.1 is default to D9 // v0.9b and v1.0 is default D10 const int SPI_CS_PIN = 10; MCP_CAN CAN(SPI_CS_PIN); // Set CS pin void setup() { SERIAL.begin(115200); delay(1000); while (CAN_OK != CAN.begin(CAN_1000KBPS)) // init can bus : baudrate = 500k { SERIAL.println("CAN BUS Shield init fail"); SERIAL.println(" Init CAN BUS Shield again"); delay(100); } SERIAL.println("CAN BUS Shield init ok!"); // Initialize pins as necessary pinMode(UP,INPUT); pinMode(DOWN,INPUT); pinMode(LEFT,INPUT); pinMode(RIGHT,INPUT); pinMode(CLICK,INPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); // Pull analog pins high to enable reading of joystick movements digitalWrite(UP, HIGH); digitalWrite(DOWN, HIGH); digitalWrite(LEFT, HIGH); digitalWrite(RIGHT, HIGH); digitalWrite(CLICK, HIGH); // Write LED pins low to turn them off by default digitalWrite(LED2, LOW); digitalWrite(LED3, LOW); } long previousMillis = 0; void loop() { //do something float p_step = 0.001; if (digitalRead(UP)==LOW) { //move motor forward p_in = p_in + p_step; } if (digitalRead(DOWN)==LOW) { //move motor backward p_in = p_in - p_step; } p_in = constrain(p_in, P_MIN, P_MAX); if (digitalRead(RIGHT)==LOW) { // Enable EnterMotorMode(); digitalWrite(LED2, HIGH); } if (digitalRead(LEFT)==LOW) { // Disable ExitMotorMode(); digitalWrite(LED2, LOW); } // send CAN pack_cmd(); // receive CAN if(CAN_MSGAVAIL == CAN.checkReceive()) // check if data coming { unpack_reply(); } //print data SERIAL.print(millis()-previousMillis); previousMillis = millis(); SERIAL.print(" "); SERIAL.print(p_in); SERIAL.print(" "); SERIAL.print(p_out); SERIAL.print(" "); SERIAL.print(v_out); SERIAL.print(" "); SERIAL.println(t_out); } void EnterMotorMode(){ // Enter Motor Mode (enable) byte buf[8]; buf[0] = 0xFF; buf[1] = 0xFF; buf[2] = 0xFF; buf[3] = 0xFF; buf[4] = 0xFF; buf[5] = 0xFF; buf[6] = 0xFF; buf[7] = 0xFC; CAN.sendMsgBuf(0x01, 0, 8, buf); } void ExitMotorMode(){ // Enter Motor Mode (enable) byte buf[8]; buf[0] = 0xFF; buf[1] = 0xFF; buf[2] = 0xFF; buf[3] = 0xFF; buf[4] = 0xFF; buf[5] = 0xFF; buf[6] = 0xFF; buf[7] = 0xFD; CAN.sendMsgBuf(0x01, 0, 8, buf); } void Zero(){ // Enter Motor Mode (enable) byte buf[8]; buf[0] = 0xFF; buf[1] = 0xFF; buf[2] = 0xFF; buf[3] = 0xFF; buf[4] = 0xFF; buf[5] = 0xFF; buf[6] = 0xFF; buf[7] = 0xFE; CAN.sendMsgBuf(0x01, 0, 8, buf); } void pack_cmd(){ byte buf[8]; /// CAN Command Packet Structure /// /// 16 bit position command, between -4*pi and 4*pi /// 12 bit velocity command, between -30 and + 30 rad/s /// 12 bit kp, between 0 and 500 N-m/rad /// 12 bit kd, between 0 and 100 N-m*s/rad /// 12 bit feed forward torque, between -18 and 18 N-m /// CAN Packet is 8 8-bit words /// Formatted as follows. For each quantity, bit 0 is LSB /// 0: [position[15-8]] /// 1: [position[7-0]] /// 2: [velocity[11-4]] /// 3: [velocity[3-0], kp[11-8]] /// 4: [kp[7-0]] /// 5: [kd[11-4]] /// 6: [kd[3-0], torque[11-8]] /// 7: [torque[7-0]] /// limit data to be within bounds /// float p_des = constrain(p_in, P_MIN, P_MAX); //fminf(fmaxf(P_MIN, p_in), P_MAX); float v_des = constrain(v_in, V_MIN, V_MAX); //fminf(fmaxf(V_MIN, v_in), V_MAX); float kp = constrain(kp_in, KP_MIN, KP_MAX); //fminf(fmaxf(KP_MIN, kp_in), KP_MAX); float kd = constrain(kd_in, KD_MIN, KD_MAX); //fminf(fmaxf(KD_MIN, kd_in), KD_MAX); float t_ff = constrain(t_in, T_MIN, T_MAX); //fminf(fmaxf(T_MIN, t_in), T_MAX); /// convert floats to unsigned ints /// unsigned int p_int = float_to_uint(p_des, P_MIN, P_MAX, 16); unsigned int v_int = float_to_uint(v_des, V_MIN, V_MAX, 12); unsigned int kp_int = float_to_uint(kp, KP_MIN, KP_MAX, 12); unsigned int kd_int = float_to_uint(kd, KD_MIN, KD_MAX, 12); unsigned int t_int = float_to_uint(t_ff, T_MIN, T_MAX, 12); /// pack ints into the can buffer /// buf[0] = p_int >> 8; buf[1] = p_int & 0xFF; buf[2] = v_int >> 4; buf[3] = ((v_int & 0xF) > 8); buf[4] = kp_int & 0xFF; buf[5] = kd_int >> 4; buf[6] = ((kd_int & 0xF) > 8); buf[7] = t_int & 0xFF; CAN.sendMsgBuf(0x01, 0, 8, buf); } void unpack_reply(){ /// CAN Reply Packet Structure /// /// 16 bit position, between -4*pi and 4*pi /// 12 bit velocity, between -30 and + 30 rad/s /// 12 bit current, between -40 and 40; /// CAN Packet is 5 8-bit words /// Formatted as follows. For each quantity, bit 0 is LSB /// 0: [position[15-8]] /// 1: [position[7-0]] /// 2: [velocity[11-4]] /// 3: [velocity[3-0], current[11-8]] /// 4: [current[7-0]] byte len = 0; byte buf[8]; CAN.readMsgBuf(&len, buf); unsigned long canId = CAN.getCanId(); /// unpack ints from can buffer /// unsigned int id = buf[0]; unsigned int p_int = (buf[1] 4); unsigned int i_int = ((buf[4] & 0xF)
@wei1224hf
3 жыл бұрын
@@Skyentific Thank you so much! I'm still testing my motor with LessStudio's CAN-BUS Shield V1.2 with a MIT motor. My step is holded on the CAN-BUS Shield , I think it might somthing wrong with the shield, it's creating CAN message by it's own, with CAN-ID 0x1FFFFFFF , when the motor is poweroff. so depressed ...... I'm buying a sparkfun's CAN-BUS Shield, just excacly like your shield , then I'll try again. Thank you for your share ^_^
@BoltzVideo
3 жыл бұрын
@@wei1224hf Hi Wax Feng, did you manage to get the actuator working? I have tried with Arduino and also STM32 but had no luck.
@wei1224hf
3 жыл бұрын
@@BoltzVideo Yes I can now. I'm using a usb-can module, it's really easy, I can control the actuator directly by linux terminal code item.taobao.com/item.htm?spm=a1z09.2.0.0.77452e8dQKKopi&id=592036191992&_u=c1v6uidt1ca7
@BoltzVideo
3 жыл бұрын
@@wei1224hf Thanks! I'll try USB-CAN.
Hi! My driver has enter in fault mode and using the terminal monitor I can see the following message. How could I exit from the fault mode? Thanks! FAULT VDS_OCP GDF UVLO OTSD VDS_HA VDS_LA VDS_HB VDS_LB VDS_HC VDS_LC SA_OC SB_OC SC_OC OTW CPUV VGS_HA VGS_LA VGS_HB VGS_LB VGS_HC VGS_LC
@Skyentific
3 жыл бұрын
What power supply you are using? Are you sure that it is 24V and 10A at least?
@jesusdemiguelfernandez2550
3 жыл бұрын
@@Skyentific I've checked the power supply and everything seems to be ok 24 V and 10A. I'm using this one: www.amazon.es/alimentaci%C3%B3n-regulada-conmutada-ordenador-impresora/dp/B07VLBF85L/ref=sr_1_58_sspa?__mk_es_ES=%C3%85M%C3%85%C5%BD%C3%95%C3%91&dchild=1&keywords=FUENTE+ALIMENTACION+ORDENADOR&qid=1599151904&sr=8-58-spons&psc=1&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUE4S0RTMzg4MU9GNVImZW5jcnlwdGVkSWQ9QTA0NzYxNjcyMEhXQTIxQjFWQVhXJmVuY3J5cHRlZEFkSWQ9QTAxMzI4MzFOWVNVMUdNTzJJS1gmd2lkZ2V0TmFtZT1zcF9idGYmYWN0aW9uPWNsaWNrUmVkaXJlY3QmZG9Ob3RMb2dDbGljaz10cnVl
@Skyentific
3 жыл бұрын
You are using 24V right? You put the link for the 36V. If I am not mistaken all these faults are coming from driver (DRV8323rs). You can find the manual and check these faults. If I remember right, these faults are clear automatically, as soon as, the fault cause is resolved.
grabcad.com/library/t-motor-u15-kv100-1 Here's the CAD file for T-Motor KV 100 that I made a few years back.
May ze force be viz you 🤣
That's a pretty cool actuator, but at $569 USD?! 😬
Show us the maximum speeeeeeed please.