ROS2 TUTORIAL. HOW TO RUN ROS2 ON YOUR ROBOT. IMPLEMENTING CUSTOM HARDWARE INTERFACE

Sdílet
Vložit
  • čas přidán 27. 08. 2024
  • Do you want to know how to use the ros2_control framework to control your robot’s actuators and sensors?
    In this video, I will show you how to create a new hardware interface for your robot. By the end of this video, you will be able to create your own hardware interface for any type of robot, and use the existing controllers in ros2_control to control it. You will get to know how to establish serial communication with robot's hardware from your custom hardware interface. You will also gain a deeper understanding of the ros2_control architecture and its benefits.
    To support channel:
    PayPal:www.paypal.com...
    Patreon: / robo_age
    Buy me a coffee: bmc.link/roboa...
    Music in the video:
    Music from #Uppbeat (free for Creators!):
    uppbeat.io/t/a...
    License code: 2N1FRL2LW1N6TIU3
    Music from #Uppbeat (free for Creators!):
    uppbeat.io/t/h...
    License code: DYY7PKO90COJZZMF

Komentáře • 36

  • @roboage1027
    @roboage1027  Před rokem +4

    If you like my content, you can support my channel. I will greatly help me to develop more interesting projects 😀
    To support channel:
    PayPal:www.paypal.com/donate/?hosted_button_id=XHXABEQL94444
    Patreon:www.patreon.com/robo_age
    Buy me a coffee: bmc.link/roboage21Y

  • @keepfighting8402
    @keepfighting8402 Před rokem +3

    З цікавістю спостерігаю за вашим проектом,добре , що в такий важкий час для нашої країни цей напрямок розвивається

  • @svitlana1367
    @svitlana1367 Před rokem +2

    Very good explanation. Thank you 👍

  • @kot2905
    @kot2905 Před rokem +2

    Great tutorial! Thanks!

  • @user-bs5us3xk3y
    @user-bs5us3xk3y Před rokem +3

    Good video!

  • @vikavr5641
    @vikavr5641 Před rokem +2

    Good video!!! Thanks

  • @likefoodua1088
    @likefoodua1088 Před 10 měsíci +1

    I like your channel. I'll support you.

  • @forrestjone3855
    @forrestjone3855 Před 2 měsíci

    Excellent

  • @bugrahana3395
    @bugrahana3395 Před 6 měsíci

    Really good channel.

  • @bartvanderhaagen986
    @bartvanderhaagen986 Před 3 měsíci

    Hey very nice video! thanks for sharing and taking your time to explain all this. Where can I see into your robot core? The code or sketch that drive your motors.

    • @roboage1027
      @roboage1027  Před 3 měsíci

      Thank you for your comment. I use Odrive board to drive the motors. So you can use my code only with this specific board. And I use Arduino to send commands to Odrive. It's just standard serial communication.

  • @andreypopov6166
    @andreypopov6166 Před 4 měsíci +1

    Thank you for the tutorial. I am wondering what is the most necessary math to understand is needeed for robotics? Thanks.

    • @roboage1027
      @roboage1027  Před 4 měsíci

      Thank you for your comment. Linear algebra, I guess. In robotics, matrices and vectors are everywhere

    • @andreypopov6166
      @andreypopov6166 Před 4 měsíci

      @@roboage1027 Thank you!

  • @peteradel7925
    @peteradel7925 Před měsícem

    can i take link form this information?

  • @epg3581
    @epg3581 Před 6 měsíci +1

    Is the code available?

  • @Robert453007
    @Robert453007 Před 6 měsíci

    Is it possible to have ros2_control work together on foxy (jetson nano) and humble (workstation)?

  • @bodevedhamsh2637
    @bodevedhamsh2637 Před 9 dny

    what is custom_hardware.launch.py is launching? @12.26 min

    • @roboage1027
      @roboage1027  Před 9 dny

      Just standard ros2 launch file. docs.ros.org/en/jazzy/Tutorials/Intermediate/Launch/Creating-Launch-Files.html

  • @freddyli5356
    @freddyli5356 Před 7 měsíci +1

    Can I package the game as an IPA / apk game then running it on my phone in order to control the robot?

  • @kevinmurphy6139
    @kevinmurphy6139 Před 6 měsíci

    Is the source code available by any chance?

  • @uiinlee1699
    @uiinlee1699 Před 6 měsíci

    How can I use rose pkg in this video 17:00?

    • @roboage1027
      @roboage1027  Před 6 měsíci

      There's no specific ros2 package to talk to unreal engine. At least I don't know one. In all my videos, I just use shared memory to exchange information between ros2 and UE. If you mean some package to run ros2 on real hardware , you need to write your own hardware interface . There's standard ros2 hardware interface template. Take it and rewrite read and write functions in it to receive and send information from and to your hardware. I this video I use serial port to talk to arduino. In read function I read positions of each of the joints and in write function I write commands from controllers to arduino.

  • @AzharKhan-cy5kt
    @AzharKhan-cy5kt Před rokem

    Hi i am working on a robotic arm in ros2 .... In this project i am making a controller arm with 5 potentiometers installed at every joint (5th potentiometer is for gripper) , the angles data will be transferred through micro_ros publisher node in esp32 wirelessly to ros2 in the pc, a subscriber node will receive the data .....i have the arduino code of a robotic arm from a tutorial but don't know how to convert it to use in micro_ros also i am struggling with ros2_control how to connect my subscriber node to the 3d model in gazebo.... basically the simulation arm in gazebo has to mimic the movements of the controller arm....

    • @AzharKhan-cy5kt
      @AzharKhan-cy5kt Před rokem

      Please make a video for it will be very grateful

    • @AzharKhan-cy5kt
      @AzharKhan-cy5kt Před rokem

      You don't have to make a controller arm just make a tutorial in which you will be controlling your robotic arm with 6 potentiometers i can give you the link to the arduino code if you are interested

    • @roboage1027
      @roboage1027  Před rokem

      Hi. Why do you need micro_ros on Arduino at all. You can transfer data from ROS to Arduino through serial port. You don't need any external libraries for that. I used micro_ros once and I can't say it's very convenient . Concerning gazebo, you will need to send the same commands to ros2 controller that you will send to real robot. Then robot in your gazebo simulation will repeat movements of your real robot.

    • @AzharKhan-cy5kt
      @AzharKhan-cy5kt Před rokem

      @@roboage1027 thanks..... but in this video it seem very complex. I mean very very complex
      It's my FYP project and i can't figure it out it'll be very helpful if you make a video in which your robotic arm is controlled wirelessly through potentiometers and ESP32 microcontroller live (means potentiometer connected to esp32 and sending angles data wirelessly with esp32 to the simulation arm)

    • @AzharKhan-cy5kt
      @AzharKhan-cy5kt Před rokem

      @@roboage1027 and furthermore right now I'm in the first step to send data from esp32 to the gazebo simulation and control the arm in simulation after that will work on physical robot

  • @sanjeevhegderobotics
    @sanjeevhegderobotics Před měsícem

    Thanks for the wonderful tutorial!!
    Quick question: now that you have hardware interface to send position for each joints, how is this implemented on Arduino/driver side?
    Is there pid to do position control on arduino side and trajectory controller takes the responsibility of just sending different positions?
    I am confused since the trajectory controller is already sending positions by taking encoder feedback, do you still need to implement pid for each joints on Arduino, because the encoder feedback(current position ) would be sent back and you can only apply forward or reverse voltage pwm. Else wouldnt there would be 2 pid loop, one at ros controller level and one at driver level ?
    I am building a bipedal robot myself and currently i am able to control all joints using just esp32 and now looking into how i canwrite motion planning. I am very new to ros2
    You can see my robot here: czcams.com/users/shorts0abCoyroeNA?si=66RCjNYzvqmOJHYF

    • @roboage1027
      @roboage1027  Před měsícem

      @@sanjeevhegderobotics Arduino just takes position commands from ros controller and sends them to Odrive board. Odrive uses another pid loop to drive bldc motor to commanded position. It is implemented in Odrive's firmware. So basically, there are two PID loops: one on the ROS side and one on the Odrive's side . Odrive's PID outputs pwm signal to adjust voltages on motors phases.

    • @sanjeevhegderobotics
      @sanjeevhegderobotics Před měsícem

      @@roboage1027 Thanks for explaining. I now understand what I need to try.
      Apart from position, I think I need velocity interface since I want to achieve trajectory for walking where joints of 2 legs does coordinated movement to different positions with different velocity within same time frame. OR do you think the time parameterization of moveit will take care of it?

    • @roboage1027
      @roboage1027  Před měsícem +1

      @@sanjeevhegderobotics I think you are right. Time parametrisation should take care . You just need to specify correct target points for your trajectory controllers in terms of desired joints positions and time constraints.

  • @joshuanichols5249
    @joshuanichols5249 Před 10 měsíci

    "Promosm"