I was so overwhelmed with the complexity of robot making, AI, deep learning, Lidar. Coral TPU, Hexapod design, drones. neural networks, Raspberry Pi, Linux. I could go on. I love it all but have so much to learn. I watch your videos and feel more confident about all this shenanigans. Can't wait to watch more of your videos. Top man.
This is so much better than most ROS tutorials out there from a learning perspective! Excellent job! Most other tutorials out there barrel ahead with terminal commands with no context or practical hardware examples. Thank you!
This is a great guide to robotics for beginners. Covers more *practical* material than a 4000 electro-mechanical devices class for mechanical engineers lol. Although terminology may be the limiting factor for some but aside from the lingo this is perfect. I'm SHOCKED that this doesn't have at least 100,000 views. Great work!
A video on motor types and how yo choose them would be so awesome! I clicked on this expecting just that! Still gonna watch it though... Seems cool enough!
I second that! I have spent weeks trying to figure out the type of motor I should use. I've looked at the formulas for calculating torque etc. but for some reason, it just won't "click".
.... while at the same time using a motor driver that is about 40y or so old, and which has been superseded by loads of more energy efficient mosfet based products that don't need a heatsink the size of a car radiator.
I would like to control the suspension on a model car ( made in meccano) based on feedback from an electronic gyroscope. It is supposed to keep the body of the car level whatever the terrain. My plan is to use a raspberry pi with an electric motor that is linked to the suspension, so your demonstration is well on the way to what I want to achieve.
Thank you so much these videos are amazing! I just started my journey of learning about robotics and control systems and this is making it much easier to get into this coming from a person with a theoretical physics background barely any electronics.. :)
This whole series has been terrific, with clear and concise explanations and instructions. I have had one issue I haven't been able to figure out. I have wired up these motors six ways from Sunday. I've studied the diagrams and the setup on the video and duplicated it perfectly. Even so, when teleop-ing I find the motors run fine forwards and backwards, but when using j and l to turn left or right, the controls are reversed! Left goes right and right turns left. Seems weird, as turning just consists of one wheel going forwards and the other backwards. I've tested this with a joypad as well with the same results. No combination of wiring I've tried seems to work. If I wire up by switching the pins then left and right are fine, but forward and backward are then reversed. Ive even tried reversing the motor leads. If anyone else has found this to be a problem and have found a solution please drop me a note.
Thanks! Yeah as much as I tried to cram as much as I could into it, there really is so much more to say on the topic - I have a never-ending list of ideas to get through!
Thanks! 90% of my diagrams are done using Inkscape as white lines/text on a transparent background. I edit in DaVinci Resolve, so I use its compositor (Fusion) to take the static images from Inkscape, overlay them on the background, fade in/out, do extra lines, etc. In addition to that, there are bits and pieces done in GIMP, Blender, and Manim. And, for what it's worth, all done on Linux! I hope to do some more theory/concept stuff in the future and make better use of manim (originally created by Grant Sanderson for his channel 3Blue1Brown) :)
Amazing and so helpful video. Would be great to have a list of all things used in this video. Wondering what is a ground regulator (its on the top left side)
Hello, I have a problem that the speed of both wheels is not the same speed, the right wheel is faster than the left wheel. What do I need to do now, please help me. Thanks a lot
@@KSLEEProjects Have you tried checking whether the signal read from the encoder of the 2 wheels is equal? If the signals of the two encoder are not equal, you should check the encoder's signal wire again
Thanks for the great series Josh! Do you have any tips or good resources for adding a servo motor to the project, perhaps using the microcontroller, and being able to control it from the gamepad? For example putting the camera on a tilting mechanism so that you can pan up and down? If anyone else has done this or a similar case, I'd love to hear from you!
The "clap" magic of adding 2nd motor is all I needed to see. I just needed to know if all motors share the same step dir Ena pins on the controller. If so, how the he'll does a signal know which motor to send to?
Awesome tutorials. I am teaching myself Python now so I can start coding my own robots. These tutorials are great for the hardware side and how to get things setup with ROS. Thank you much! Oh and do you have links for the DC motors you are using with the built-in encoders?
Great video. Just getting started with ROS. You mentioned that the L298 motor controller isn't the best, but it will do. I agree. What other motor controllers would you recommend or have experience with? Thanks for your time!
Great informative presentation! Could you please comment: If you would like to put a robot with motor control into actual use, say to raise and lower a convertible top on a car as an example, you are not going to have it hooked up to your laptop. What is the missing link or next step to get the robot self contained in a production environment, so to speak? Thank you.
Great video! I have been following through the series. I just wondering, when you did the open loop control to get the thick count, did you run it on full speed (255)? I would love to watch the PID control video if you make one later. Thanks!
In this example there’s only one motor but in most robotics applications there are significantly more components that need to be controlled. The raspberry pi simply doesn’t have enough pwm capable pins for more than 1 or 2 motors
Hi I used exactly the same code but I don't recieve any encoder Data. I checked the encoder manually with an Oscilloscope and it works. So I believe it has to be a problem with the code. Any idea?
At 13:10, I don't understand the benefit of powering the Arduino via the USB port versus simply connecting its 5V pin and ground pins to the terminal strip (as was done for the RaspPi).
Hello i had a problem that my motor has a total number of encoder pulses per wheel rotation of about 52,000 and the gear ratio is 1:27, when using the Arduino_Bridge code, when entering a command, the motor will jerk very much and reverse itself for no reason.
Amazing video, really well explained. Im having an issue with only the pins connected to D2 and D3 are being counted on the encoders, no other pins would count the encoder readings. it looks like there's an issue with the interrupt pins, which is the arduino nano has only two - INT0 and INT1 on D2 and D3 but its working for you in the video so i cant be so sure i've tried swapping the encoders too, both are working perfectly but its just D2 and D3 that count. and this code wont work on an Arduino Mega :/ PS: im using OE-37 Hall Effect Encoders - mounted seperately any suggestions?
Please how do we upload the Ros_Arduino_Bridge code? so far I've only been able to find how it's done with rosrun and rosbash which aren't compatible with ros2 foxy. Thanks.
servos have one chronic issue is that when powering the system, they jump to home position, which causes damage to the robot sometimes. Hardware solutions not successful, but maybe something in C code can absorb this. Bet I saw many commercial robots use normal motors with rotary encoder or stepper instead of servo.
First, thanks so much for these tutorials! They are great! When I run miniterm, I have to use baudrate of 9600, not 57600 in order to not get English out. And it outputs a whole bunch of "sensor=xxx ouput=xxx" lines, but it will not take in any motor commands to get the motor running. Apparently many changes have since been made to the arduino code?
when you say you can use PWM to drive a motor backwards (2:57) , do you mean you can send a PWM signal that drives the motor backwards, or do you need a switching circuit that you send the same signal through to drive the motor backwards? Can you like switch the bias of a PWM signal to be negative or something? Pretty new to mechatronics, but I come from music and radio land, so I like working with waves. Thanks for the help
Is there any idea, why I got "miniterm command not found" error even i install python3-serial as "sudo apt install python3-serial" on my ubuntu 22.04 ? Thanks in advance for your help.
Okay I got the answer. it was changed to pyserial-miniterm. But still you may have an error which is "Errno 13 Permission denied: '/dev/ttyUSB0" . You have to command this "sudo usermod -a -G dialout # To allow access to the /dev/ttyUSB# " and reboot. everythings will work.
Hi, sorry I didn't get to this sooner, I'm glad you got it sorted. I do have the usermod thing in the video but that is very helpful to know that the miniterm package has changed, I will keep that in mind if people ask in the future.
I would actually love to see the motor video on how to choose them and how to control the various types of motors (induction, DC, Universal, AC, 2-phase, 3-phase) what does it all mean for my project making journey?
Haha thank you, I'm glad to have you both along for the journey! I would like to make some videos going deeper into those different motor types, but at this rate that will probably be a very long ways off (like 12 month+) I hope to do one on Brushless DC motors in the shorter term (maybe in 6 months or so) as they are very relevant to the hobby and small commercial robotics that I'm focusing on at the moment.
@@ArticulatedRobotics I would like to rewrite the Rosbridge for Arduino so that 4 of the 12V DC motors can be used and read. check out my channel for the reason :) I look forward to continuing my journey with you.
My latest project I'm starting on is a simple eye that will follow you around the house. I have most of it yet still need to work out how to track sound using a Raspberry Pi. Any good tips?
I'm a bit confused on how the raspberry pi and dev machine are communicating. I have the GUI up on the dev machine and the topic listening on the raspberry pi, but it seems that nothing is happening when sending motor commands. If it helps to know, my dev machine is on a VM.
To make a parallel between real robot and the Gazebo simulation, we can say that teleop_twist_keyboard node is Robot Controller and control plugin node (for example gazebo_ros_diff_drive) is Motor Controller. Is this correct?
hi! what if i want to make a robot that is completely disconnected from my arduino UNO and can self run. Basically I upload some preset direction code and take it off the arduino UNO then run it. Is this possible with these motors ?
Thanks. I think last I checked there was no version of rosserial for ROS 2? It's a long time since I looked into it though. I'll keep it in mind for the future :)
Could you make a video for people starting this hobby? Like showing what things to buy, mistakes to avoid etc…
That would be great 😊
In the web page he have this
I was so overwhelmed with the complexity of robot making, AI, deep learning, Lidar. Coral TPU, Hexapod design, drones. neural networks, Raspberry Pi, Linux. I could go on. I love it all but have so much to learn. I watch your videos and feel more confident about all this shenanigans. Can't wait to watch more of your videos. Top man.
This is so much better than most ROS tutorials out there from a learning perspective! Excellent job! Most other tutorials out there barrel ahead with terminal commands with no context or practical hardware examples. Thank you!
Thanks!
This is a great guide to robotics for beginners. Covers more *practical* material than a 4000 electro-mechanical devices class for mechanical engineers lol. Although terminology may be the limiting factor for some but aside from the lingo this is perfect. I'm SHOCKED that this doesn't have at least 100,000 views. Great work!
Thanks so much!!
It is hard to find such a good tutorials series of ROS2. Thank for your sharing!
Thanks!
A video on motor types and how yo choose them would be so awesome! I clicked on this expecting just that! Still gonna watch it though... Seems cool enough!
I second that! I have spent weeks trying to figure out the type of motor I should use. I've looked at the formulas for calculating torque etc. but for some reason, it just won't "click".
Great explanation! I love how you threw in cutting-edge ROS2 in there!
Thanks :D
.... while at the same time using a motor driver that is about 40y or so old, and which has been superseded by loads of more energy efficient mosfet based products that don't need a heatsink the size of a car radiator.
Excellent. Got everything working in that video. Had to run "sudo apt remove brltty" to get the serial port to recognise the arduino.
What's that exactly and why to use?
@@adwaitingle2315 it's the Braille terminal. Josh goes over it in his ready to humble video which is on the same play list as this.
Only ROS CHANNEL that makes sense
Thanks so much!
Open loop is just fine in case of a stepper motor. This give very good control and is used in all kind of systems including 3D printers.
thanks a lot , we have been stuck on this for weeks, and now it works
I would like to control the suspension on a model car ( made in meccano) based on feedback from an electronic gyroscope. It is supposed to keep the body of the car level whatever the terrain. My plan is to use a raspberry pi with an electric motor that is linked to the suspension, so your demonstration is well on the way to what I want to achieve.
I love it. Its heaven for robotics beginners
Yes, if you haven't already made a video on the motors, please do. Would you also include examples of situations you could use each motor type?
Yep, it's definitely on my list of videos to make after I've finished this current series :)
Thank you so much these videos are amazing! I just started my journey of learning about robotics and control systems and this is making it much easier to get into this coming from a person with a theoretical physics background barely any electronics.. :)
This whole series has been terrific, with clear and concise explanations and instructions. I have had one issue I haven't been able to figure out. I have wired up these motors six ways from Sunday. I've studied the diagrams and the setup on the video and duplicated it perfectly. Even so, when teleop-ing I find the motors run fine forwards and backwards, but when using j and l to turn left or right, the controls are reversed! Left goes right and right turns left. Seems weird, as turning just consists of one wheel going forwards and the other backwards. I've tested this with a joypad as well with the same results. No combination of wiring I've tried seems to work. If I wire up by switching the pins then left and right are fine, but forward and backward are then reversed. Ive even tried reversing the motor leads. If anyone else has found this to be a problem and have found a solution please drop me a note.
I figured it out, I had my encoders on the wrong pins. Duh.
Id really like a video on what motors are best for what purpose, thanks for the video!
I REALLY LOVE THIS PROJECTS
Thanks!
I have subscribed! You are doing a great job helping people learn the skills we always wanted but didnt have access to.
Great video+explanation+presentation! Thank you for sharing! Well done mate - NEW SUB 🙏🏻
I really like they way how you went step by step through the topics. Maybe you can explain the ROS side more deeply for future projects. Thank you.
Thanks! Yeah as much as I tried to cram as much as I could into it, there really is so much more to say on the topic - I have a never-ending list of ideas to get through!
yes a video on different types of motor would be great
Great video. Please make a video about the types of motors and how to choose them.
9:03 whoa, youtube made the "subscribe" button animate when you ask viewers to click it during your video. so cool.
wow, didnt notice that
Nicely explained
I would like to see a video on different motor types
Yes to Videos on Motors! Great video!
Liked and subscribed.
FINALLY A GOOD TUTORIAL ON HOW TO STRUCTURE A GOD DAMN ROBOT
Sensational tutorial, nuff said
Thanks for posting, please make video on explanation on different kind of motors, thanks
Thank you for your guide!!!! That must be helpful for my future project.
Very good explained video!
Thanks!
Good overview for beginners!
Excellent presentation!
Good job! Ceep work on these projects, thanks for content!
Absolutely awesome video
Very well presented! Thank you.
Thank you for every information
Hey all, Scott here!
great video 🙂 thanks for sharing
Underated Video
I love the way you systematically explain complex topics. What software do you use to create your beautiful diagrams/flow charts for your videos?
Thanks! 90% of my diagrams are done using Inkscape as white lines/text on a transparent background. I edit in DaVinci Resolve, so I use its compositor (Fusion) to take the static images from Inkscape, overlay them on the background, fade in/out, do extra lines, etc.
In addition to that, there are bits and pieces done in GIMP, Blender, and Manim. And, for what it's worth, all done on Linux!
I hope to do some more theory/concept stuff in the future and make better use of manim (originally created by Grant Sanderson for his channel 3Blue1Brown) :)
Amazing and so helpful video. Would be great to have a list of all things used in this video. Wondering what is a ground regulator (its on the top left side)
Hello, I have a problem that the speed of both wheels is not the same speed, the right wheel is faster than the left wheel. What do I need to do now, please help me. Thanks a lot
I have the same problem
have you fixed that problem yet?
@@KSLEEProjects Have you tried checking whether the signal read from the encoder of the 2 wheels is equal?
If the signals of the two encoder are not equal, you should check the encoder's signal wire again
I did this but without encoder I made Pwm to adjust the motor speed and set the pwm same for both the motors
Amazing !!!
Thanks for the great series Josh!
Do you have any tips or good resources for adding a servo motor to the project, perhaps using the microcontroller, and being able to control it from the gamepad? For example putting the camera on a tilting mechanism so that you can pan up and down?
If anyone else has done this or a similar case, I'd love to hear from you!
Great video!
This video is great! Thank you 😊
What motors do you use that have the encoders built on? Can you include links or model numbers?
Thanks your Guide to using Motor tutorial. Can you please detailed pictures or diagram wire connection of 12 DC encoder motor to Arduino Nano?
Great Video!! Please make a video on motors.
The "clap" magic of adding 2nd motor is all I needed to see. I just needed to know if all motors share the same step dir Ena pins on the controller. If so, how the he'll does a signal know which motor to send to?
Awesome tutorials. I am teaching myself Python now so I can start coding my own robots. These tutorials are great for the hardware side and how to get things setup with ROS. Thank you much! Oh and do you have links for the DC motors you are using with the built-in encoders?
I looked up Yahboom 4wd chassis and got a chassis with a set of motors with encoders. Hopefully this helps
I love your video on murders!!! 😁
Hahaha it took me a minute to understand!
Great video. Just getting started with ROS. You mentioned that the L298 motor controller isn't the best, but it will do. I agree. What other motor controllers would you recommend or have experience with? Thanks for your time!
Tb6612fng a very good one
i love it. works fine for me.. big thanks..
Great informative presentation! Could you please comment: If you would like to put a robot with motor control into actual use, say to raise and lower a convertible top on a car as an example, you are not going to have it hooked up to your laptop. What is the missing link or next step to get the robot self contained in a production environment, so to speak? Thank you.
awesome tutorial many thanks
Thanks!
Please, can you send the link of the video of uploading the code on to the Arduino ? I didn’t find it in the description as you said
Just great 🔥🔥🔥🔥🔥
great video
can you upload the modified version of RosArduinoBridge for arduino nano and l298n ?
great work!
Thanks!
Great video! I have been following through the series.
I just wondering, when you did the open loop control to get the thick count, did you run it on full speed (255)? I would love to watch the PID control video if you make one later. Thanks!
Hello can anyone tell me why we arent using Raspi directly to supply PWM to Motor driver. Why is Arduino Nano used?
In this example there’s only one motor but in most robotics applications there are significantly more components that need to be controlled. The raspberry pi simply doesn’t have enough pwm capable pins for more than 1 or 2 motors
Excellent good vedio please make more vedio
I like this moda. This murder is good for robotics projects.
The best
Thanks!
Hi I used exactly the same code but I don't recieve any encoder Data. I checked the encoder manually with an Oscilloscope and it works. So I believe it has to be a problem with the code. Any idea?
would be really helpful if you did a tutorial on how to achieve the same over CAN cuz the resources on that are scattered and random on the internet
Can we also control torque?
At 13:10, I don't understand the benefit of powering the Arduino via the USB port versus simply connecting its 5V pin and ground pins to the terminal strip (as was done for the RaspPi).
why i can't read both of the encoder values.? It is impacting in rviz2. the bot is rotating
Hello, great video I learned a lot, thank you! A question, can I replace the arduino by the Raspberry Pico? What should I do about it?
Hello i had a problem that my motor has a total number of encoder pulses per wheel rotation of about 52,000 and the gear ratio is 1:27, when using the Arduino_Bridge code, when entering a command, the motor will jerk very much and reverse itself for no reason.
Amazing video, really well explained.
Im having an issue with only the pins connected to D2 and D3 are being counted on the encoders, no other pins would count the encoder readings. it looks like there's an issue with the interrupt pins, which is the arduino nano has only two - INT0 and INT1 on D2 and D3 but its working for you in the video so i cant be so sure
i've tried swapping the encoders too, both are working perfectly but its just D2 and D3 that count.
and this code wont work on an Arduino Mega :/
PS: im using OE-37 Hall Effect Encoders - mounted seperately
any suggestions?
how can i use the Arduino Motor Controller with a motor and a servo
Please how do we upload the Ros_Arduino_Bridge code? so far I've only been able to find how it's done with rosrun and rosbash which aren't compatible with ros2 foxy. Thanks.
im still trying to find a way to do this did u ever find a solution?
@@althahirceja7153 Unfortunately I didn't, my setup was a bit different so it didn't work out this way
servos have one chronic issue is that when powering the system, they jump to home position, which causes damage to the robot sometimes. Hardware solutions not successful, but maybe something in C code can absorb this. Bet I saw many commercial robots use normal motors with rotary encoder or stepper instead of servo.
Have you tried with a BLDC motor equipped with a Hall sensor?
I've been trying to figure wiring my closed loops for months. Still don't get it.
First, thanks so much for these tutorials! They are great!
When I run miniterm, I have to use baudrate of 9600, not 57600 in order to not get English out. And it outputs a whole bunch of "sensor=xxx ouput=xxx" lines, but it will not take in any motor commands to get the motor running. Apparently many changes have since been made to the arduino code?
when you say you can use PWM to drive a motor backwards (2:57) , do you mean you can send a PWM signal that drives the motor backwards, or do you need a switching circuit that you send the same signal through to drive the motor backwards? Can you like switch the bias of a PWM signal to be negative or something?
Pretty new to mechatronics, but I come from music and radio land, so I like working with waves. Thanks for the help
I'm getting in error #include WProgram.h while compiling in arudino.... Could you help me to fix this sir
L298 has a to high internal resistance
Definitely agree. It is a terrible motor driver for practical applications, but it is extremely cheap and easy for beginners to use.
If I need to add IR proximity sensors in the robot in which part I need to change the code
Is there any idea, why I got "miniterm command not found" error even i install python3-serial as "sudo apt install python3-serial" on my ubuntu 22.04 ? Thanks in advance for your help.
Okay I got the answer. it was changed to pyserial-miniterm. But still you may have an error which is "Errno 13 Permission denied: '/dev/ttyUSB0" . You have to command this "sudo usermod -a -G dialout # To allow access to the /dev/ttyUSB#
" and reboot. everythings will work.
Hi, sorry I didn't get to this sooner, I'm glad you got it sorted.
I do have the usermod thing in the video but that is very helpful to know that the miniterm package has changed, I will keep that in mind if people ask in the future.
I would actually love to see the motor video on how to choose them and how to control the various types of motors (induction, DC, Universal, AC, 2-phase, 3-phase) what does it all mean for my project making journey?
That would be too much. accompany mr newans on his journey. it's going to be interesting enough
Haha thank you, I'm glad to have you both along for the journey!
I would like to make some videos going deeper into those different motor types, but at this rate that will probably be a very long ways off (like 12 month+)
I hope to do one on Brushless DC motors in the shorter term (maybe in 6 months or so) as they are very relevant to the hobby and small commercial robotics that I'm focusing on at the moment.
@@ArticulatedRobotics I would like to rewrite the Rosbridge for Arduino so that 4 of the 12V DC motors can be used and read. check out my channel for the reason :)
I look forward to continuing my journey with you.
Instead of gear motor is it possible to use Bldc motor ????
What is the reason you do the motor-control on the extra arduino, and not on the RasPi, too (with ROS)?
My latest project I'm starting on is a simple eye that will follow you around the house. I have most of it yet still need to work out how to track sound using a Raspberry Pi. Any good tips?
Where did you get the blue work mat?
I'm running both the GUI and the driver on my laptop. And it doesn't seem it is sending anything, it is constantly giving a time-out error.
I'm a bit confused on how the raspberry pi and dev machine are communicating. I have the GUI up on the dev machine and the topic listening on the raspberry pi, but it seems that nothing is happening when sending motor commands. If it helps to know, my dev machine is on a VM.
currently i have SPG 30 E gear motor is it possible to use this method for getting values from motor to ros? and iam using Noetic
To make a parallel between real robot and the Gazebo simulation, we can say that teleop_twist_keyboard node is Robot Controller and control plugin node (for example gazebo_ros_diff_drive) is Motor Controller. Is this correct?
Hello community,
At 14:22, when it meant upload the code,
Where should it be uploaded
Could anyone please respond
upload it on the arduino
Did you solve this problem? I'm curious, too
hi! what if i want to make a robot that is completely disconnected from my arduino UNO and can self run. Basically I upload some preset direction code and take it off the arduino UNO then run it. Is this possible with these motors ?
Very good video. Can you make a video for rosserial for ros2 ?
Thanks. I think last I checked there was no version of rosserial for ROS 2? It's a long time since I looked into it though. I'll keep it in mind for the future :)
Hello where can I find the code for the L298N and Arduino?