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.
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.. :)
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.
Great Video! ❣ Can you please make videos on writing all the codes in ROS, like motor controller codes and every code which were not discussed in the playlist and were directly given to us.
Hi Josh. Thanks for providing this tutorial series. I tested motor running, but didn't move it. In my case, I finally succeeded by connecting arduino board GND to L298N motor driver's GND. Here just for your information. Thanks🖐
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!
at 14:20, how did you upload the code and which one? there are many code in the github link... can you please make an elaborate video on uploading the code please?
Thank you for taking the time to teach others, with your time you make this world better. I would like you to share the list of materials you used and link to buy since I have reviewed it on Amazon and there are so many engines that confuse
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
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.
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)
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.
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!
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?
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?
🎯 Key Takeaways for quick navigation: 00:00 🤖 Introduction to building robots and the need for layers of abstraction in robotics. - The video introduces the idea of using layers of abstraction to solve robotics problems. - It mentions the main content will be divided into two parts: theory and practical circuit building. - The example motor used is a brushed DC motor with encoders for ROS2 control libraries. 01:28 🎛️ Motor drivers and their role in controlling motors. - Motor drivers are essential for controlling motors as they handle the high voltage and current required. - Motor drivers use PWM signals to control the motor's speed and direction. - Understanding the basics of motor drivers is crucial for controlling motors effectively. 03:03 🎚️ Motor controllers and their role in motor control. - Motor controllers are smarter than motor drivers, as they take target speed or position and calculate the appropriate signals. - Open-loop controllers have predefined maps between input and output, while closed-loop controllers use feedback to adjust the motor's behavior. - Closed-loop control, often using PID control, allows precise motor control. 05:22 🌐 Communication between the robot controller and motor controller. - Effective communication is vital for controlling motors in robotics. - Serial communication is a common method for transmitting data between the robot controller and motor controller. - Maintaining modularity in the system allows for easier hardware swaps and reduces the risk of interference from other processes. 08:22 🧩 Structure of the robotics control system. - The typical structure of a robotics control system consists of a robot controller, a motor controller, and the motor driver. - The robot controller calculates the desired motor speeds, and the motor controller translates these speeds into signals for the motor driver. - Modularity and separation of these components allow for flexibility and robust control. 09:04 🛠️ Setting up a practical circuit for motor control. - Setting up a practical circuit involves connecting motors, a motor driver, an Arduino as the motor controller, and a Raspberry Pi as the robot controller. - Testing open-loop control is an important step to ensure the motor and controller are functioning correctly. - Encoders on motors provide crucial feedback for closed-loop control. 13:30 🔄 Using encoders to measure motor speed. - Encoders on motors provide feedback through pulse counts, helping calculate motor speed. - Measuring the counts per revolution empirically is essential to determine the encoder's characteristics. - Understanding how encoders work is crucial for effective motor control. 19:21 🕹️ Setting Up Closed Loop Control with Encoders - Configuring closed-loop control with encoder feedback. - Measuring encoder counts per revolution to determine motor speed. - Demonstrating closed-loop control for precise motor speed control. 22:14 🤖 Interfacing with Raspberry Pi and GUI - Setting up the Raspberry Pi for motor control. - Running ROS nodes on the Raspberry Pi. - Using a graphical interface (GUI) to control motors and monitor feedback. 24:59 🚗 Future Plans: Integrating Sensors - Preparing for the integration of sensors into the robot. - Mentioning the upcoming focus on lidar sensors in the next video. - Discussing the future prospects of the robot's sensory capabilities. Made with HARPA AI
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?
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!
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?
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?
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!
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?
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?
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
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.
Hello, first of all thanks a lot for these tutorials. I am using as5600 magnetic encoder for close-loop control of motors. So I can't use your code because encoder is communicating via I2C from analog pins of arduino uno. My question is: Which topics do I need to subscribe(cmd_vel) in order to make it work. For example, I know that I need to subscribe to cmd_vel to get wheel velocities from ros and move the robot, but where do I need to publish wheel velocities or positions to do navigation?
I've been following your series and its really useful and informative!! Can u please share a link i can access the video on motors selection(as mentioned in time stamp - 1:16) if its aired already? If not i hope you can make one, would be really helpful! @ArticulatedRobotics
can the arduino program on your repo need improve if i use differen motor driver shield like pololu VNH5019 or IBT-2 (BTS7960)? because i need more power for the motor
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 ?
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.
Hey Josh!! Thanks so much for this tutorial. Can I control the motors in open loop mode?? Like I mean for the real robot because my encoders broke 😢 and I cannot buy another
Yeah for sure! If you are using my ros2_control hardware interface you want to replace the "write" command with one that sends an "o" message instead of an "m" message, and write a line that scales the speed request to the appropriate open loop signal.
Can you please make a video on micrROS as well?. What i understood is that microROS should have been used foe this hardware level stuff. Further why Ros control if microROS is already out there?.
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 want to drive 4 brushless gear motors (mecanum wheels) that have built-in encoders, there are 5 wires coming out. I need a cheap driver one for each wheel any suggestions. Thanks for the great vid.
Thanks! My experience with brushless motors is actually pretty limited unfortunately (something I am keen to explore more in the future). Do you have a link to the particular motors I could look at? Some have a driver on-board. The main brushless driver I am aware of is ODrive (odriverobotics.com/) but it is not cheap. Some similar ones are reviewed here ruclips.net/video/Wb1gsJ4K4pM/видео.html Alternatively you may have luck using an esc like those used for drones and then wrap that in a closed-loop control of some kind using the encoders. Sorry I couldn't be more help, like I said I definitely want to dive deeper on this in the future!
FYI for people in 2024: The arduino VSCode extension is deprecated. Another option to try is PlatformIO, however, this doesn't seem to work over ssh. Therefore you're probably going to have to use arduino cli over ssh.
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.
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
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.
thanks a lot , we have been stuck on this for weeks, and now it works
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 :)
I REALLY LOVE THIS PROJECTS
Thanks!
Only ROS CHANNEL that makes sense
Thanks so much!
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.. :)
I love it. Its heaven for robotics beginners
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.
Great Video! ❣
Can you please make videos on writing all the codes in ROS, like motor controller codes and every code which were not discussed in the playlist and were directly given to us.
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.
Hi Josh. Thanks for providing this tutorial series.
I tested motor running, but didn't move it. In my case, I finally succeeded by connecting arduino board GND to L298N motor driver's GND.
Here just for your information.
Thanks🖐
I have subscribed! You are doing a great job helping people learn the skills we always wanted but didnt have access to.
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.
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
Great video+explanation+presentation! Thank you for sharing! Well done mate - NEW SUB 🙏🏻
Id really like a video on what motors are best for what purpose, thanks for the video!
Very good explained video!
Thanks!
Yes to Videos on Motors! Great video!
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!
at 14:20, how did you upload the code and which one? there are many code in the github link... can you please make an elaborate video on uploading the code please?
Thank you for taking the time to teach others, with your time you make this world better. I would like you to share the list of materials you used and link to buy since I have reviewed it on Amazon and there are so many engines that confuse
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
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).
Great video. Please make a video about the types of motors and how to choose them.
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.
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) :)
Good job! Ceep work on these projects, thanks for content!
yes a video on different types of motor would be great
Thank you for your guide!!!! That must be helpful for my future project.
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)
Very well presented! Thank you.
Sensational tutorial, nuff said
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.
Good overview for beginners!
Thanks your Guide to using Motor tutorial. Can you please detailed pictures or diagram wire connection of 12 DC encoder motor to Arduino Nano?
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
Excellent presentation!
Nicely explained
Absolutely awesome video
FINALLY A GOOD TUTORIAL ON HOW TO STRUCTURE A GOD DAMN ROBOT
I would like to see a video on different motor types
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!
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?
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
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
were you able to solve the problem? im also confused!!
🎯 Key Takeaways for quick navigation:
00:00 🤖 Introduction to building robots and the need for layers of abstraction in robotics.
- The video introduces the idea of using layers of abstraction to solve robotics problems.
- It mentions the main content will be divided into two parts: theory and practical circuit building.
- The example motor used is a brushed DC motor with encoders for ROS2 control libraries.
01:28 🎛️ Motor drivers and their role in controlling motors.
- Motor drivers are essential for controlling motors as they handle the high voltage and current required.
- Motor drivers use PWM signals to control the motor's speed and direction.
- Understanding the basics of motor drivers is crucial for controlling motors effectively.
03:03 🎚️ Motor controllers and their role in motor control.
- Motor controllers are smarter than motor drivers, as they take target speed or position and calculate the appropriate signals.
- Open-loop controllers have predefined maps between input and output, while closed-loop controllers use feedback to adjust the motor's behavior.
- Closed-loop control, often using PID control, allows precise motor control.
05:22 🌐 Communication between the robot controller and motor controller.
- Effective communication is vital for controlling motors in robotics.
- Serial communication is a common method for transmitting data between the robot controller and motor controller.
- Maintaining modularity in the system allows for easier hardware swaps and reduces the risk of interference from other processes.
08:22 🧩 Structure of the robotics control system.
- The typical structure of a robotics control system consists of a robot controller, a motor controller, and the motor driver.
- The robot controller calculates the desired motor speeds, and the motor controller translates these speeds into signals for the motor driver.
- Modularity and separation of these components allow for flexibility and robust control.
09:04 🛠️ Setting up a practical circuit for motor control.
- Setting up a practical circuit involves connecting motors, a motor driver, an Arduino as the motor controller, and a Raspberry Pi as the robot controller.
- Testing open-loop control is an important step to ensure the motor and controller are functioning correctly.
- Encoders on motors provide crucial feedback for closed-loop control.
13:30 🔄 Using encoders to measure motor speed.
- Encoders on motors provide feedback through pulse counts, helping calculate motor speed.
- Measuring the counts per revolution empirically is essential to determine the encoder's characteristics.
- Understanding how encoders work is crucial for effective motor control.
19:21 🕹️ Setting Up Closed Loop Control with Encoders
- Configuring closed-loop control with encoder feedback.
- Measuring encoder counts per revolution to determine motor speed.
- Demonstrating closed-loop control for precise motor speed control.
22:14 🤖 Interfacing with Raspberry Pi and GUI
- Setting up the Raspberry Pi for motor control.
- Running ROS nodes on the Raspberry Pi.
- Using a graphical interface (GUI) to control motors and monitor feedback.
24:59 🚗 Future Plans: Integrating Sensors
- Preparing for the integration of sensors into the robot.
- Mentioning the upcoming focus on lidar sensors in the next video.
- Discussing the future prospects of the robot's sensory capabilities.
Made with HARPA AI
Great tutorial!
What motors do you use that have the encoders built on? Can you include links or model numbers?
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?
Thanks for posting, please make video on explanation on different kind of motors, thanks
Liked and subscribed.
great video
can you upload the modified version of RosArduinoBridge for arduino nano and l298n ?
This video is great! Thank you 😊
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
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
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?
Where did you get that nice blue tray? 👍
great video 🙂 thanks for sharing
Thank you for every information
Great video!
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?
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?
What is the reason you do the motor-control on the extra arduino, and not on the RasPi, too (with ROS)?
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!
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
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?
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
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.
Hello, first of all thanks a lot for these tutorials.
I am using as5600 magnetic encoder for close-loop control of motors. So I can't use your code because encoder is communicating via I2C from analog pins of arduino uno. My question is: Which topics do I need to subscribe(cmd_vel) in order to make it work. For example, I know that I need to subscribe to cmd_vel to get wheel velocities from ros and move the robot, but where do I need to publish wheel velocities or positions to do navigation?
Great Video!! Please make a video on motors.
I've been following your series and its really useful and informative!!
Can u please share a link i can access the video on motors selection(as mentioned in time stamp - 1:16) if its aired already? If not i hope you can make one, would be really helpful! @ArticulatedRobotics
pls make a seperate video for uploading the sketch in Arduino iDE for encoder motors and its purposes.
awesome tutorial many thanks
Thanks!
Have you tried with a BLDC motor equipped with a Hall sensor?
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
can the arduino program on your repo need improve if i use differen motor driver shield like pololu VNH5019 or IBT-2 (BTS7960)? because i need more power for the motor
did you find them i need to code for bts7960
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 ?
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
I love your video on murders!!! 😁
Hahaha it took me a minute to understand!
Hey Josh!!
Thanks so much for this tutorial.
Can I control the motors in open loop mode?? Like I mean for the real robot because my encoders broke 😢 and I cannot buy another
Yeah for sure! If you are using my ros2_control hardware interface you want to replace the "write" command with one that sends an "o" message instead of an "m" message, and write a line that scales the speed request to the appropriate open loop signal.
Can you please make a video on micrROS as well?.
What i understood is that microROS should have been used foe this hardware level stuff. Further why Ros control if microROS is already out there?.
why i can't read both of the encoder values.? It is impacting in rviz2. the bot is rotating
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 love it. works fine for me.. big thanks..
I want to drive 4 brushless gear motors (mecanum wheels) that have built-in encoders, there are 5 wires coming out. I need a cheap driver one for each wheel any suggestions. Thanks for the great vid.
Thanks! My experience with brushless motors is actually pretty limited unfortunately (something I am keen to explore more in the future). Do you have a link to the particular motors I could look at? Some have a driver on-board.
The main brushless driver I am aware of is ODrive (odriverobotics.com/) but it is not cheap. Some similar ones are reviewed here ruclips.net/video/Wb1gsJ4K4pM/видео.html
Alternatively you may have luck using an esc like those used for drones and then wrap that in a closed-loop control of some kind using the encoders.
Sorry I couldn't be more help, like I said I definitely want to dive deeper on this in the future!
Can we also control torque?
Hello, thank you for this video, please how can i use the same thing but with ESC and brusless motor ?
Yeah a lot of people have asked for that! I will definitely do that eventually, but probably not too soon as I have a lot of other topics coming up :)
FYI for people in 2024: The arduino VSCode extension is deprecated. Another option to try is PlatformIO, however, this doesn't seem to work over ssh. Therefore you're probably going to have to use arduino cli over ssh.
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.
great work!
Thanks!
Amazing !!!
Underated Video