My friend you have best practical ROS2 videos on the internet no exaggeration. I have been wanting to learn ros2 pratically for the last year and this is just awesome. Really form the bottom of Heart thank you for this series.
@ArticulatedRobotics2 жыл бұрын
Thank you, I really appreciate your kind words!
@jackyleung73852 ай бұрын
@@ArticulatedRoboticsworth more subscribers, much more
@andreassakel37562 жыл бұрын
i have been learning ROS, 1 year now and you have the best tutorials i found on the whole internet. Very detailed easy to follow and practical!!!KEEP MAKING THOSE VIDEOS!
@theremin1441 Жыл бұрын
I watched the beginning of your video three to four times, looked into the documentary and tried the examples myself. Now after I spent multiple hours on this topic I am starting to understand this. Thank you for your help!
@riddheshmore23157 ай бұрын
As a beginner who is just learning ros2, i personally find the documentation of ros2_control quite tricky to understand. I have just started watching this video. If you could share any tips/your learning briefly which you used for understanding the concept, it would be really helpful.
@robofoundry12 жыл бұрын
This is amazing content on ros2_control. When I started learning ros2 and ros2_control there was not much documentation on it and what you described here took me months to figure it out myself. This is a must watch for anyone trying to understand ros2_control. Thank you.
@ArticulatedRobotics2 жыл бұрын
Thanks, I was the same about a year ago and I thought I'd better share what I learnt! The documentation has actually improved a fair bit over that time but is still not very approachable for someone new to ROS, so hopefully I can help :)
@adamshaw465 ай бұрын
This video really clearly explains the problems that motivate ROS which is context that I found sorely missing in other ROS videos or blogs that feel like they assume you're already onboard. Thank you I've been looking for this for days and KZbin finally gave it to me randomly.
@jonathanr424211 ай бұрын
Thanks Josh. Just to let you know, the "ros2 run controller_manager spawner.py ..." gave me an error (now executable found). I had to use "ros2 run controller_manager spawner ..." without the .py extension, and it worked. Edit: just realised this is mentioned in the ready to humble video. Watch that first.
@usmanahmed948410 ай бұрын
Thanks for sharing this
@sagnikghatak16149 ай бұрын
Thank you for sharing this. I encountered the same error and tried million different things to fix it only to realise, "Someone must have faced the same error, let me check out the comment section".
@vatsal90059 ай бұрын
thabks
@iurireis80248 ай бұрын
this really helped me too, thanks
@linh-j1rАй бұрын
tks
@kamathsblog Жыл бұрын
What an excellent explanation! I went to a full day ros2_control workshop at ROSCon, and learned more from this half hour video. Looking forward to the next one!
@ArticulatedRobotics Жыл бұрын
Thanks!
@underwaterdol6132 жыл бұрын
I have tried other tutorials on ros2 without any success but this here is amazing. Hope you do more videos and maybe for manipulation in the future also. Keep the amazing work!
@ArticulatedRobotics2 жыл бұрын
Thanks - I do plan on doing some manipulation at some point but no promises as to when.
@der_kaputte2 жыл бұрын
Hey Josh, your videos are the best way to get into ros2 and of course to understand the complexity of ros2_control. Your work will be the base for my new build-up robot. But I've to implement a new motor driver code. Hopefully I'll get it running this weekend. I'm looking forward for new great tutorials. Keep going! Best regards Thomas from Northern Germany
@ArticulatedRobotics2 жыл бұрын
Thanks!
@anujpatel64382 жыл бұрын
tysm, Everybody makes a video on gazebo,topics,nodes,etc but nobody actually covers hardware_interface. It is really important for a real robot
@tonynajjar48932 жыл бұрын
I learned ros2_control a few months back with only their documentation and I wish I had this video; the documentation is not the best. If you haven't yet, I strongly recommend submitting a PR to include this video in the documentation of ros2_control. Great job!
@mitcaro73106 ай бұрын
I wanted to add this side note here, since it was my own question as well. In the ros2_control.xacro file: # diff_cont is the name assigned to a controller instance (chosen by us) # diff_drive_controller is the package that contains the controller plugin # DiffDriveController is the specific controller class within that package
@AliAlSaibie Жыл бұрын
Following your tutorials as a refresher for ROS dev. Really good work on explaining ros2_control in the context. Well done, practical, and to the point, keep at it, please. I think there is a future in abstracting hardware interface with ros2_control but it still needs tidying and a way to expand functionalities beyond simple state and cmd, to include parameter configurations, tuning, calibration actions, etc (in a universal rviz plugin gui? would be superb - imagine handling odrive, teknic or other integrated drives that way)
@ChXXL7 ай бұрын
Thats so clear and saved me after a long time of trying to get my controllers to work
@chandansingh57317 ай бұрын
Did you face some error in this?
@carldraper6162 жыл бұрын
Another wonderful video, I have been looking forqrd to this one!
@Luczias Жыл бұрын
Definitely a great introduction to ROS2_control ! Thanks !
@obensustam3574 Жыл бұрын
Very good video, thanks. I also really like the visual materials in your videos.
@justal787 Жыл бұрын
I get the error "No module names 'roslaunch'" when I run the command at 17:36 ? Anyone have any ideas why?
@INSANESCIENCEKDGR Жыл бұрын
I also got the same error,did u solved it
@jordyneefs3693 Жыл бұрын
I have the same error. Did you find the solution?
@Nicolas.Perrault Жыл бұрын
were you able to fix this issue? I am having the same problem. @@jordyneefs3693
@SreePavanGoli Жыл бұрын
Hey Josh, great video! At 14:26 you mentioned that Joint State Broadcaster is not really important in the long run. I am trying to understand how rsp could work without this? Can you give a small explanation regarding that? Thanks!
@BAMrobotics Жыл бұрын
Wow this is actually an incredible video!! So well explained
@cangozpinar2 жыл бұрын
Thank you very much. Nothing compared to your instructions in these video series when I was trying to build a custom robot simulation. Please keep publishing ROS2 content.
@yesjo145625 күн бұрын
Could you tell me if ros2 control is faster than just communicating via ros2 topics? doesn't ros2 control use topics?
@TomasViviani7 ай бұрын
Really helpful set of videos. I'm struggling to find a controller for a 3-omniwheeled mobile base, I fear I will have to write it on my own. Only I found for a 4-omniwheeled robot or a tricycle base. Do you know if there's something out there for the 3-wheel holonomic base already developed?
@supunikaveendya9173Күн бұрын
is there a way I can contact you? I am struggling with control in zerogravity environment but in gazebo ignition. I would very much like help from you.
@FlamethrowerYT6 ай бұрын
Hello. First of all, thanks a lot for these tutorials. However, my controller_manager is not available and I’m getting a parsing error with my_controllers.yaml. I’ve checked the files multiple times and they’re identical, but for some reason it doesn’t work for me.
@raedrusding83596 ай бұрын
I am on ros2 humble and my plugin ign_ros2_control can't be found altho it exists and that is making my controller_manager not available. Been searching how to solve it and basically no resources out there about it.
@Starets7 ай бұрын
Thank you so much for the video, really great explanation :)
@RyanHeaney422 жыл бұрын
Yes! Been waiting for this!
@ArticulatedRobotics2 жыл бұрын
Haha yeah these last few have taken a while! (Which is also why I took a while to reply to this...)
@GustavoHenrique-jb2qn2 жыл бұрын
Awesome video! your videos have helped me a lot, thanks!
@ArticulatedRobotics2 жыл бұрын
Thanks!
@amoljamble2498 Жыл бұрын
your videos are great and informative. please make videos on imu and sensor fusion with ros2
@divy046 ай бұрын
any ideas how to change parameters for 4 wheel diff drive ?
@chibuezeorji82886 ай бұрын
Any luck?
@divy046 ай бұрын
@@chibuezeorji8288 i tried tweaking some parameters, it shows perfectly in rviz2, but in gazebo, i will work only if friction and angular speeds are set correctly
@user-kt2pt5nz4t7 ай бұрын
Hello, This is a great series to follow to learn more about ROS, but I have a problem. I can't seem to get the /odom option on the fixed frames of RVIZ. I have checked the echo and there is none, but /odom is visible on the topic list. Do you have any advice?
@amsonisthebest2 ай бұрын
try rebuilding your workspace and relaunching the package
@atticusrussell1225 Жыл бұрын
Thank you so much for this incredible series
@marcel-dennisboerzel79024 ай бұрын
when i try to execute ros2 control list_hardware_interfaces I get "could not contact service /controller_manager_list_hardware_interfaces"
@gryrna3 ай бұрын
Check launch file output in terminal. It might be the case, that it is unable to parse YAML file. Change permissions to the file. And, try again.
@afshan1982 Жыл бұрын
Thanks a lot for the tutorial. I am using ros-humble and everything worked fine so far up to the point where we substitute the ros2_control for Gazebo control. the robot moves only forward and backwards. It doesn't respond to the angular_velocity command. I have also noticed the ros2_control publishes the /odom as /diff_cont/odom.
@alvarobarrientos3054 Жыл бұрын
I have the same problem. On humble, when changing to ros2_control robot only moves forward or backwards. Any solution??
@vollaro3 Жыл бұрын
@@alvarobarrientos3054 I don't seem to be able to make it work at all instead... did you find something out?
@afshan1982 Жыл бұрын
@@vollaro3 Not really. However, further into the investigation i have noticed the odom TF has the below error when i run Rviz2. Error: TF NAN_INPUT: Ignoring transform for child_frame_id “base_link” from authority “Authority undetectable” because of a nan value in the transform (-nan -nan 0.000000) (-nan -nan -nan -nan) at line 278 in /tmp/binarydeb/ros-foxy-tf2-0.13.14/src/buffer_core.cpp Error: TF DENORMALIZED_QUATERNION: Ignoring transform for child_frame_id “base_link” from authority “Authority undetectable” because of an invalid quaternion in the transform (-nan -nan -nan -nan)
@afshan1982 Жыл бұрын
@@vollaro3 I had a spelling mistake in the my_controllers.yaml file for the "wheel_separator". Corrected it and now the ros2_control works. Such a foolish error.
@nice1__ Жыл бұрын
Rviz is not in sync with Gazebo. When the robot collide with an object, the robot stops in Gazebo but keeps moving in rviz. I tried lazer scan in rviz to find out if there is really any map being recognized by rviz and yes it is showing red dots representing the cones. When i run over them, the red dots shifts (keeps moving ) in the direction of motion of the bot. Any Solutions?
@adithyadamarla692 Жыл бұрын
Hi Josh, I'm following your partical ros2 tutorial, and I'm struck near the list_hardware _Interface. When I'm trying to run it. I'm getting a msg in the terminal that "Could not contact service /controller manager/list_ hardware_ Interfaces. " I'm using ROS2 humble, and I have installed all ros2_control packages for binary and gazebo packages. Can you please help to fix my problem? Thanks Adithya
@rabingiri6853 Жыл бұрын
Hi Adithya, I have also faced the same problem. Have you found any solution now?
@JaklizTheEngineer8 ай бұрын
(Just in case you are still having this problem:) I also had this issue, my mistake was that i placed ... inside the ... . I placed it like shown in he video and that solved it.
@hoangha80658 ай бұрын
Great video. I have a wonder that how can you autoclosing the tags?
@rehanabbasi11862 жыл бұрын
After following the complete tutorial am getting this error [ERROR] [1665975816.083180080] [spawner_diff_cont]: Controller manager not available Please if you can guide through.
@gurselturkeri Жыл бұрын
same issue
@k_ros849 Жыл бұрын
I had the same problem. Try creating a new workspace & package and copy paste everything in there. No idea why, but it worked for me :)
@justal787 Жыл бұрын
@@k_ros849 wdym new package?
@justal787 Жыл бұрын
Managed to fix it by just rebooting everything, and running source and then colcon, rather than the other way around. But that might not be relevant.
@k_ros849 Жыл бұрын
@@justal787 I created a new workspace and build a new package inside it. Then I copy pasted the old files in the new package and changed them to run with the new package name
@saadwaqar70038 ай бұрын
Hello everyone. I have been following this, but when I shifted to ros2 control, the robot is driving in the opposite direction, but when I was working with Gazebo diff_drive, it was running perfectly fine. Can anyone please guide me? I have been struggling with this for 2 days now. Thank you
@GustavoHenrique-jb2qn2 жыл бұрын
Hi! I have a question, is there any way i could rename de diff_cont's namespace from cmd_vel_unstamped topic??...i am trying this because i want to work with multiples robots connected to the same network, thanks!
@XinghuiTao Жыл бұрын
How can I use controller manage for multiple bots with the same settings? Thanks!
@muhamedakhrif6623 Жыл бұрын
Thanks for this great work , just an issue , when I tried to use the command " ros2 control list_controllers_interfaces" I got this error : " rosidl_generator_py.import_type_support_impl.UnsupportedTypeSupport: Could not import 'rosidl_typesupport_c' for package 'controller_manager_msgs' " , any idea for solv this issue ?
@MemoxCid10 ай бұрын
Hello I have a problem with Controller Manager, when I launch my launch file I have the error : "waiting for the controller manager service be available" Do you know how to solve this?
@avaneeshchitta7949 ай бұрын
Hey man! Did you find a solution for this? I need some help with the same
@MemoxCid9 ай бұрын
@@avaneeshchitta794 Hello, I tried different things, but I still had the error with the "controller_manager". My solution was to create a python code for communication with Arduino using the "serial" library, another for the publication of odometry and another for the publication of the td. The only thing I had to use was a Nano to control the motors and a Mega for reading encoders. Investigating they said that the raspberry was very slow for Ros2 and the best thing was to run a "Basic Ros" on the raspberry and the "Complete Ros (Rviz, etc)" on another PC with more resources
@althahirceja71539 ай бұрын
has anyone been able to figure this out I am also having this issue@@avaneeshchitta794
@JaklizTheEngineer8 ай бұрын
@@avaneeshchitta794 i had the same, problem was that I put the tags in ros2_control.xacro inside the tags
@FlamethrowerYT6 ай бұрын
I also have this problem, maybe it’s fue to a recent update. I have my tags correctly placed, though. Has anyone been able to figure it out?
@os88912 жыл бұрын
Thanks alot for this informative tutorial, I was wonder if there any similarity between ros2_control and micro ros for microcontrollers
@siddarthvakacherla4891 Жыл бұрын
I followed everything in the video, but when I try to run the controller diff_cont, I get the error 'Failed loading controller diff_cont'. But the 'joint_broad' controller loads properly. Any clue why this is happening?
@virensompura4925 Жыл бұрын
Same issue, did you found any solution?
@anas77xd Жыл бұрын
are there any sources to learn how to do those things with ROS instead of ros2? I'm using ROS noetic btw
@OsamhAsiri Жыл бұрын
Can i using only raspberry pi for control all hardware component without Arduino ?
@hamdialrahawi8336 Жыл бұрын
Thank you so much for your efforts 🙏
@rianmateus39977 ай бұрын
Can you use it on Ros Iron Irwing?
@hishamfarid9206 Жыл бұрын
As i understood it correctly, ros2_control relies on the motors having their own controllers - they manage them via the ros2_controller manager. But however, how would you write an own PID controller for a specific robot and then connect it to the controller manager? Thanks for the great video! =)
@hishamfarid9206 Жыл бұрын
Refering to the part where it was mentioned how the ''hardware interface" is already given, or else it should be written independently
@marcinkonwerski20162 жыл бұрын
I was waiting for this movie
@ArticulatedRobotics2 жыл бұрын
Thanks! :D (sorry my reply is a bit late)
@channel_MrL Жыл бұрын
Hi Josh, great video as always! I am trying to set up diff drive pluggin under a namespace. How should I configure the yaml file in that case? Thanks!
@ArticulatedRobotics Жыл бұрын
Ooh good question, I've never tried and unfortunately am not exactly sure how to do that. If I had to guess, I think if you just put the namespace everywhere (C++, XML, CMakeLists, YAML, etc) it might work?
@channel_MrL Жыл бұрын
@@ArticulatedRobotics Thanks! I tried putting namespace when setting up ros2_control and gazebo plugin but the yaml file would parse incorrectly if I tried to add namespace in it, so I am not sure how it should be done and I didn't quite find documentation on that either 😮💨
@justal787 Жыл бұрын
I get an error in Rviz2 where Odom doesn't show up?
@justal787 Жыл бұрын
Fixed it by just rebooting everything
@vikaspoddar0012 жыл бұрын
I loved your video, will you make a video on how to use robostack project for installing ros via conda & mamba cli
@ArticulatedRobotics2 жыл бұрын
Thank you! I had actually meant to add a Robostack/conda tutorial to my to-do/ideas list, so I'll do that right now! Unfortunately the list is VERY long, so don't expect it any time soon...too many great things to learn in robotics!
@blaircox1589 Жыл бұрын
I just found you and been binge watching, so maybe this is mentioned somewhere - how are you in your metal shed and not have it be 1,000 degrees? 😁
@ArticulatedRobotics Жыл бұрын
Hahaha yes it was pretty awful in summer, I couldn't work in there for more than about 20 minutes at a time! We have since moved and the new space is much better (the opposite problem actually - excessively damp basement area)
@ophuocbaolong6352 Жыл бұрын
ackermann_drive_spawner = Node( package="controller_manager", executable="ackermann_steering_controller", arguments=["ackermann_steer"], ) return LaunchDescription([ rsp, gazebo, spawn_entity, ackermann_drive_spawner ]) it doesn't work and crashes
@gurselturkeri Жыл бұрын
I get an error like "Controller manager not available"
@virensompura4925 Жыл бұрын
Same issue.
@nice1__ Жыл бұрын
Is it possible to do this with a four wheeled robot?
@priyambhatnagar7209 Жыл бұрын
I am not able to see odom as a fixed frame, what to do?
@ArticulatedRobotics Жыл бұрын
I find this happens sometimes, and just requires me to rerun everything. One other thing to do is to run rqt_tf_tools (you may need to install it) and confirm the odom TF frame is being broadcast.
@vicradon2 жыл бұрын
I had to abandon ROS and robotics because I couldn't control my robot on Arduino. I don't know if I should continue because it's very complex.
@andrewbennett57332 жыл бұрын
You should absolutely continue! I started picking up some programming and robotics in mid-2021 and gave up and restarted several times. I’m now over six months into my first software engineering job and it’s a blast! This stuff is very challenging but very rewarding. You’ve got this, keep at it!
@vicradon2 жыл бұрын
Hi @Andrew Bennet Do you do robotics at your job?
@ArticulatedRobotics2 жыл бұрын
I'm sorry to hear that. As Andrew said, it can sometimes be a very steep learning curve with challenges along the way. I try to make the path a bit easier but it is still tricky! Where did you run into problems? Is your Arduino working but you can't talk to it with ROS?
@vineshanand493 Жыл бұрын
@@ArticulatedRobotics After following the complete tutorial am getting this error [ERROR] [1665975816.083180080] [spawner_diff_cont]: Controller manager not available Please if you can guide through.
@fayezsalka Жыл бұрын
I found ROS to be absolutely unnecessary bloat piece of code and rabbit hole that serves no purpose but wasting your time trying to figure out how to deal with the 100 thousand different flavors and the very unintuitive, UX / developer unfriendly concepts and technical jargon that is extra complicated for really no reason what so ever. I ended up ditching everything and relying only on python and Isaac Sim (which is amazing if you ditch the ROS part of it). For robot control I use Dynamixel SDK to directly read / write motor position directly from python without any middleware overhead. Similar story for sensors.
@MrFelipeX3002 жыл бұрын
Finally! thanks a lot
@ArticulatedRobotics2 жыл бұрын
Thanks!
@ophuocbaolong6352 Жыл бұрын
please show me how to use ros_control with ackermann robot
@Foolsimsimulate10 ай бұрын
Thank you so mush, bro
@INSANESCIENCEKDGR Жыл бұрын
raise XacroException("substitution args not supported: ", exc=e) xacro.XacroException: substitution args not supported: No module named 'roslaunch' I'm getting this error while running the sim launch file
@jordyneefs3693 Жыл бұрын
I have the same error. Did you find the solution?
@Nicolas.Perrault Жыл бұрын
I am getting this error too
@curtisnewton895 Жыл бұрын
I still dont see what does this have to do with hardware
@berniethejet5 ай бұрын
Jesus K Kryst, robotics ain't simple!
@YaraHShahin10 ай бұрын
this is perfect tbh
@kungfooman7 ай бұрын
Imagine the people that mix YAML, Python and HTML for configuration
@rennerholthaus29603 ай бұрын
Greatly!
@JaklizTheEngineer8 ай бұрын
I was getting this error: "Could not contact service /controller_manager/list_hardware_interfaces" (when running "ros2 control list_hardware_interfaces") and "waiting for the controller manager service be available" in the gazebo output the problem was for me that I accidentaly put the gazebo tags in ros2_control.xacro inside the ros2_control tags took me quite some time to find this mistake, hopefully this helps someone who happens to be in the same situation
@AzharKhan-cy5kt Жыл бұрын
please make a tutorial on 5 dof robotic arm gazebo simulation controlled by 5 potentiometers and the potentiometers data is published through esp32 microconroller and then the phusiacal robot mimics the simulation robot or the simulation robot mimics the actual robot both are acceptable but please make a tutorial as soon as possible i really need it
@이정현135 Жыл бұрын
I have a problem, ERROR] [spawn_entity.py-4]: process has died [pid 10845, exit code 1, cmd '/opt/ros/foxy/lib/gazebo_ros/spawn_entity.py -topic robot_description -entity my_bot --ros-args']. how to solve this problem?
@Tam4x Жыл бұрын
Thanks a lot for these tutorials. I have a question. Ive been running into issues when running the launch_sim file with ros2 humble. I dont know why but the gzserver dies when launching with ros2_control. The exact ERROR msg is the following: [ERROR] [gzserver-1]: process has died [pid 261816, exit code -11, cmd 'gzserver -slibgazebo_ros_init.so -slibgazebo_ros_factory.so -slibgazebo_ros_force_system.so']. I dont find any forum containing this problem.