Creating a rough 3D model of our robot with URDF

Поділитися
Вставка
  • Опубліковано 10 лют 2025
  • Using URDF we can quickly rough out a 3D design for our robot, that we'll soon be able to use for simulations.
    Companion blog post available at articulatedrob...
    TF Overview • The ROS Transform Syst...
    URDF Overview • Why do I think you sho...
    Commit at this stage github.com/jos...
    Inertial macros file github.com/jos...
    00:00 - Intro
    00:40 - Differential Drive Concept
    02:12 - Prep steps
    02:43 - Recap of important ideas
    04:22 - Creating a core file and base link
    08:54 - Chassis
    12:35 - Drive Wheels
    17:55 - Caster Wheel
    20:11 - Collision Geometry
    21:22 - Inertia
    25:10 - Save & Wrap up

КОМЕНТАРІ • 106

  • @niccolodejito5643
    @niccolodejito5643 2 роки тому +18

    Thank you for documenting your work! Robotics is an overwhelmingly technical field and i find your videos to reduce the uncertainty, enough to motivate me to continue building my project

    • @ArticulatedRobotics
      @ArticulatedRobotics  2 роки тому +4

      Thanks! Hearing that my videos have motivated someone to keep going and try new things is always super encouraging, so I appreciate that :D

    • @leonstafford9792
      @leonstafford9792 Рік тому

      @@ArticulatedRobotics 100%! You're making all of this accessible to way more people, myself included (desktop/web software dev without any math experience). Thank you for teaching so many of us!

  • @deepakramani05
    @deepakramani05 3 роки тому +9

    Another great video and tutorial. Your enthusiasm and dedication are appreciated. This video series will be helpful to many. Thank you.

  • @nrdesign1991
    @nrdesign1991 2 роки тому +1

    I had a brief RoS robotics course in university, but it was a much more hands-on learn as you go course. "Here's an RC car, a bunch of sensors and your task. You figure it out."
    Would love to repeat that proper.

  • @iurireis8024
    @iurireis8024 9 місяців тому +1

    Congratulations one more time, you are doing a really great content, great video!

  • @8bit711
    @8bit711 Рік тому

    As usual Thank you very much Josh! You are one smart cookie. I think I've become your Padawan.

  • @lancerobbins332
    @lancerobbins332 Рік тому +2

    Dude your awesome I love your content , good on you for putting this all together. I m hoping to build your prototype with my 3 year old to get her introduced to working with her hands and on a project. Thank you for doing this . Very inspirational!

    • @nikolaiphilipenko9210
      @nikolaiphilipenko9210 Рік тому +3

      your 3yr old is gonna be the next elon musk

    • @erniea5843
      @erniea5843 Місяць тому

      No kidding! I bought a Vex robot kit for my 8 year old!

  • @davidfarning8246
    @davidfarning8246 2 роки тому +7

    Humble tester :) What a pain in the butt.... This has been my first ros2 + gazebo ignition project. The upstream documentation is really driving me bananas. In many cases it seems like the documentation from one version to the next is just cut and pasted without modification. It is then left up to users to figure out what has changed.
    To make matters worse, the documentaion is in git hub, rather than a wiki. It is a lot harder to fix a bug in the documention when you find it :(
    Thanks for the great series. Following along with your project is helping me stay on track with my project. It is all too easy to get lost in the weeds without an overall plan.

  • @aarohgokhale8832
    @aarohgokhale8832 6 місяців тому

    Adding the collisions from the visuals was an excellent opportunity for a vim macro!

  • @sUASNews
    @sUASNews 3 роки тому +1

    Loving your video series, well done

  • @ParamOza-s7q
    @ParamOza-s7q Рік тому +5

    Hi Josh, your videos are amazing brother, it helps when getting into robotics is not as easy, if you could make a series on a 6 dof robotic arm using ros2, that would be epic. thanks for the videos

  • @MrFelipeX300
    @MrFelipeX300 3 роки тому +1

    Really nice video as always. I'm looking forward to the ros2_control part as I need it for a robotic arm I'm building. Thanks a lot for your videos, you are the best!

    • @ArticulatedRobotics
      @ArticulatedRobotics  3 роки тому +1

      Thanks Felipe! The ros2_control guys have been working hard to try and improve their documentation and make it a bit easier to get started, although it is ultimately just a complex system (for good reason!)
      If you haven't already seen it, check out the readme of the ros2_control_demos repo, it has some good tutorials to get started github.com/ros-controls/ros2_control_demos
      Their main documentation page also has a detailed overview of how the system works control.ros.org/getting_started.html

  • @cssociety3740
    @cssociety3740 2 роки тому

    please continue. feeling good to see you and learn from you

  • @abhismirai10
    @abhismirai10 9 місяців тому

    really enjoying these series thank you so much

  • @rahgirarefinrafi4586
    @rahgirarefinrafi4586 Рік тому

    Dude, you are my new fav tech guy

  • @JoeyMoreland
    @JoeyMoreland Рік тому

    Great video(s). Thank you so much for making these.

  • @artchu9886
    @artchu9886 11 місяців тому

    Низкий поклон тебе друг, проделанная тобой работа очень важна для меня. Спасибо

  • @robinkarlsson1460
    @robinkarlsson1460 Рік тому

    You are a natural dude gj!

  • @hiepoanminh8477
    @hiepoanminh8477 10 місяців тому

    You're my teacher !!!. Thanks you so much

  • @unknown-o4f1o
    @unknown-o4f1o 20 днів тому +1

    Do I want to follow this guy to build my own robot but I want my robot to look like a Roomba so I assume I have to change this model a bit but I have no idea how to do that

  • @annamcfarlane9563
    @annamcfarlane9563 3 роки тому +1

    really enjoyed this one :)

  • @samynwaisser376
    @samynwaisser376 2 дні тому

    My robot is compleate red, I have defind all colors like shown in the video, but the robot is only red. The funktion is working it is only the color wrong. What could be the reason?

  • @weichihl
    @weichihl Рік тому

    This series is super helpful and I love it. I just want to point out that there is a typo on the URDF of wheels on the blog. There is an extra "/>" in the cylinder tag.

    • @ArticulatedRobotics
      @ArticulatedRobotics  Рік тому

      Thank you! I will try to remember to fix that next time I'm updating the blog (which I have been a bit slow at...)

  • @CerebralDad
    @CerebralDad 5 місяців тому

    after installing xacro for iron and running the launch file i get the exception that there is no module named xacro - should i try to do a brute pip install of xacro - not sure how to proceed. thanks!

  • @prasannamg2449
    @prasannamg2449 Рік тому

    Thanks for your amazing videos. I am still a little confused with respect to the coordinate placements of joints and the visuals. Could you make a separate slower video only for understanding this part. Watching this about 3-4 times definitely clarifies it, but hammers my slow brain haha.

  • @enginetempsensor
    @enginetempsensor Рік тому

    Very cool.

  • @RileyEllis888
    @RileyEllis888 5 місяців тому

    Thanks for the video series, so far it is very informative! I noticed that for the inertia tensor of your cylinder, the axis of rotation is about the z axis. Since your wheels are rotated about the x axis by pi/2, their axes of rotation are now about the y axis. When you define the origin of the inertial tags for the left and right wheel, shouldn't you also rotate the defined inertia tensor about the x axis by pi/2 as well?

    • @RileyEllis888
      @RileyEllis888 5 місяців тому

      or is this not needed because you have rotated the axis of the joint around x and then stated that the axis of rotation is about z (which was originally aligned with y). I think i answered my question

  • @duyphuong9217
    @duyphuong9217 2 роки тому +1

    hi , i have some problem with inertial_macros.xacro: ERROR] [launch]: Caught exception in launch (see debug for traceback): Caught exception when trying to load file of format [py]: can't multiply sequence by non-int of type 'float'
    when evaluating expression '(2/5) * mass * (radius*radius)' . Can you show me your exactly inertial_macros.xacro file ?. Many thanks

    • @pandascientist1
      @pandascientist1 8 місяців тому

      My problem was that I was trying to make xacro properties in the core file and forgot to put ${chassis_x} in the ${}

  • @musaakyuz4386
    @musaakyuz4386 Рік тому

    Hey, before the thing, thank you for awesome presentation. Just, ı realized the wrong link in description. ı think the your URDF overview video is different.

  • @iskandarabdelhedi4569
    @iskandarabdelhedi4569 Рік тому

    hello , thanks for your helps but how can i add meshes to my .xacro file ?

  • @AndresAndTheCaps
    @AndresAndTheCaps 11 місяців тому

    Great video and extremely helpful!!! I was able to make 4 wheel to resemble my own robot, but how would you recommend going about this for omnidirectional wheels? Do I just proceed with normal cylinders and configure them when navigating later on or do they need to be designed differently now?

  • @emmanueladewara
    @emmanueladewara Місяць тому

    Sir, is there a way I can design it on Fusion then bring it to Gazebo and Rviz?

  • @Teyros
    @Teyros 3 місяці тому

    I made the changes in the robot_core.xacro but I cant seem to see the base_link and Chassis_link show up on the terminal? I tried closing, and sourcing ros2 and sourcing the install/setup.bash, using colcon build again in the src folder but still doesn't show up. Any help would be great, by the way love these videos and you have a real knack for teaching!

  • @quocanalexdjentertaiment99996

    Hey Josh,video your are so beatiful

  • @alexrus6878
    @alexrus6878 9 місяців тому

    If I wanted to build a more complex design for the chassis could I use for example Fusion and import the geometry and write a xacro file manually? Or how would you do it try to build everything in xacro only?

    • @ArticulatedRobotics
      @ArticulatedRobotics  9 місяців тому

      That's a great question. There are tools for converting from Fusion to URDF which I've never used but should probably try, and then make a video on, I'm pretty sure people are using it out there in industry. I'd personally be inclined to do it manually for the sake of simplicity and clarity, but it depends on the project.

  • @iremmertyuz8167
    @iremmertyuz8167 Рік тому

    Thanks for the video series. Why don't you use solidworks for robot design? Ros supports sw_urdf_exporter. Can you add a study about this?

  • @iremmertyuz8167
    @iremmertyuz8167 11 місяців тому +1

    Need help! Even though I made 'ros2 run joint_state_publisher_gui joint_state_publisher_gui' I cannot see the wheels in Rviz2. But I can tf of wheels

    • @vihaanravishankar5189
      @vihaanravishankar5189 7 місяців тому

      neither can I HELP. I am getting status error under robot model

  • @karanbirchahal3268
    @karanbirchahal3268 Рік тому +1

    Im trying to use foxglove to publish to joint state and for some reason I cant get my wheels to to turn on publishing to /joint_states.
    I am using docker + ROS2 so running rviz by forwarding the X display is not working for me for some reason hence foxglove. But foxglove doesnt have joint publisher GUI :(

    • @karanbirchahal3268
      @karanbirchahal3268 Рік тому

      I finally got it to work, had to install ros2 foxy on bare metal, change the DDS version to cyclonedds and then run rviz and gui state publisher on bare metal to be able to control the wheel, It would be great if you do a series that just focuses on ROS 2 networking and make it a first class docker citizen

    • @ArticulatedRobotics
      @ArticulatedRobotics  Рік тому +1

      Glad you got it sorted. Honestly, I find the DDS stuff maddening sometimes. When it works it's great, but when it doesn't it's very opaque and hard to troubleshoot.
      I'll definitely be doing some videos on ROS and Docker, but I'm no expert, I'll just be showing off what works for me haha

    • @karanbirchahal3268
      @karanbirchahal3268 Рік тому

      Actually if one does xhost + and forward the DISPLAY env variables to the docker. It works. I am able to get gazebo and rviz up from inside the docker. So life is good haha

    • @karanbirchahal3268
      @karanbirchahal3268 Рік тому

      @@ArticulatedRobotics micro ros and stm32 board tutorials would be amazing ! Byw really looking forward to those arm videos. I am really interested in inverse kinematics, position and torque control !

  • @grantkeefe9866
    @grantkeefe9866 2 роки тому

    Probably a dumb question but the rvis2 command just returns command not found. Ive tried installing plug ins, what am I missing?

    • @ArticulatedRobotics
      @ArticulatedRobotics  2 роки тому +1

      Just checking - the command is rviz2 with a "z" not an "s", is that your mistake? I do that one all the time :)

    • @homemadelemonai7243
      @homemadelemonai7243 Рік тому +1

      @@ArticulatedRobotics lmao ive been struggling with that through all the previous videos, ive been resorting to copy pasting from the ros2 docs because I could figure it out. thanks alot, but that blunder doesnt fill me with confidence haha

  • @akshaykannan251
    @akshaykannan251 3 місяці тому

  • @鄭長詳
    @鄭長詳 2 роки тому

    Great teach. Cylinder can not set type="continuous". Rviz error message :"can not transformer". So I change to fixed.

  • @akhadtop2067
    @akhadtop2067 2 роки тому

    Man too goood.

  • @ByteHendTechX
    @ByteHendTechX Рік тому +1

    can i add a converted SLDW to URDF with meshes to this?

  • @נהורוייס
    @נהורוייס Рік тому

    Hi for some reason joint state publisher didn’t run.. the ros didn’t recugnize it

  • @abdullahusman6563
    @abdullahusman6563 10 місяців тому

    I followed your steps but when state publisher does not show the chassis link i created

  • @mbulucay
    @mbulucay 3 роки тому +1

    u r great

  • @harshitbalaji1019
    @harshitbalaji1019 Рік тому

    Hi. I'm kinda new to robotics... Can you help me get started? What should I start learning from?

  • @EnesBalayX
    @EnesBalayX 2 роки тому

    Rez alın buralar değerlenecek. I am from Turkey :).

  • @KSLEEProjects
    @KSLEEProjects Рік тому

    Hello, I am following along on your tutorial. And when I try to visualize your URDF file from your github, RVIZ says that the wheel transforms are missing. Why is that?
    Thank you for the tutorial!
    EDIT: NVM! I shoulda kept watching lol

    • @pranaysatija2950
      @pranaysatija2950 7 місяців тому

      brother same problem can u tell me how to fix ? i really need it

  • @ptptp7826
    @ptptp7826 2 роки тому

    Good tutorial, anyway is it necessary to configure the model by hardcoded? I've seen another video turotials doing some joint's or model's configuration through the gazebo's UI, and later we can save it by .dae file. What's the difference?

    • @ArticulatedRobotics
      @ArticulatedRobotics  2 роки тому

      Thanks! I'm not quite sure what you mean, perhaps you can include a link to the other tutorial? I would say:
      - To integrate with ROS we should write a URDF. Not everything needs to be hardcoded (can use properties etc), but it will probably need to be written out in XML/xacro/URDF.
      - If just using Gazebo, we can write an SDF file directly, or build it using the Gazebo UI (which is a bit rough)
      - The dae format can be used to include a complex mesh as part of an SDF/URDF rather than using the simple solids (box/sphere/cylinder).
      I would not be surprised if there are plugins available for other CAD software that let you export both a URDF and a DAE to simplify the process, perhaps you saw a video of that?

  • @WK123WK
    @WK123WK 5 місяців тому

    I am having an error. Once I added the wheels, the rviz2 complains that "No transform [left_wheel] to [base_line]" "No transform [right_wheel] to [base_line]". I am using ROS2 Humble. Anyone else is having this issue? And any ideas how to fix it?

    • @el.mahesh
      @el.mahesh 4 місяці тому +1

      try joint_state_publisher_gui in new terminal that will open a gui to control wheels, watch at 17:19

  • @septianmegantara5414
    @septianmegantara5414 2 роки тому

    I am sorry, i want to ask, when i try this tutorial i got error message that ros2: command not found, can you tell me how to fix this??? thank you

  • @gneyhabub
    @gneyhabub Рік тому

    Why do we need a base link here? Why can't we have our chassis as our base?

  • @warviksam
    @warviksam 2 роки тому

    Need help! Despite installing joint state publisher gui, I couldn't find it in the ros2 pkg list and it wont start.

    • @ArticulatedRobotics
      @ArticulatedRobotics  2 роки тому

      Strange... so it installed successfully but then won't run? And you definitely installed ros-foxy-joint-state-publisher-gui?
      I'd try re-sourcing the base ROS installation (e.g. by closing and reopening terminal if you have the correct line in your .bashrc). Then rerun the command.
      If that doesn't work, try replying here with the print out and we'll see what we can find :)

    • @warviksam
      @warviksam 2 роки тому

      @@ArticulatedRobotics yeah I tried restarting the termial (also sourcing) but I keep getting this when I did the result was successful and no error message was there. I guess I didn't make a mistake in that process. However, when I search now using I couldn't find joint state publisher (or anything like that) as a package.
      ...and I am very new to ROS so it is possible that I made a silly mistake and not realised it. Appreciate any help! Thanks much!

  • @andrzejszafarczyk990
    @andrzejszafarczyk990 2 роки тому

    Had someone came across the problem with ros-foxy on wsl2 ubuntu focal ?
    After: sudo apt install ros-foxy-joint-state-publisher-gui and sourcing
    and: ros2 run joint_state_publisher_gui joint_state_publisher_gui
    I'm getting: Package 'joint_state_publisher_gui' not found

    • @andrzejszafarczyk990
      @andrzejszafarczyk990 2 роки тому

      Okay, the problem was, that I was sourcing the wrong global setup script. I was using the downloaded biniarieres instead of /opt/ros/foxy, and the downloaded packages are installed under /opt/ros/foxy/lib

    • @ArticulatedRobotics
      @ArticulatedRobotics  2 роки тому

      Nice, I'm glad you got it sorted!

  • @rahulsain3604
    @rahulsain3604 2 роки тому

    im using ros-humble cant run rviz, localhost retrying error

  • @siddharthu5120
    @siddharthu5120 2 роки тому

    Thank you for making this video. I'd like to know how to assign the mass of the URDF. Consider like I want my robot model to weigh 250 kgs.

    • @ArticulatedRobotics
      @ArticulatedRobotics  2 роки тому +1

      Hi Siddharth! In the Inertia section of the video I show how to set the masses of each link when using the inertial macros (e.g. at 22:39 I set the chassis to be 0.5kg), so you can set your masses appropriately. If you are writing out your inertial blocks in full you can also set the mass there (see my URDF overview video for more details on that). I recommend using the macros though as it is much simpler.

    • @siddharthu5120
      @siddharthu5120 2 роки тому

      Thanks man I got it.!

  • @vihaanravishankar5189
    @vihaanravishankar5189 8 місяців тому

    Im enjoying your playlist while doing this, however, i cannot seem to make it work. when I run the launch program it just says robot initialized and doesn't continue any further. pls help @ArticulatedRobotics

  • @hassanhaq604
    @hassanhaq604 Рік тому +1

    It's too complex and complicated. We can simply design a robot on gazebo so what's the point of all of this Urdf and launch files. ? Any body who clear this all out to me

    • @mugimugi5128
      @mugimugi5128 Рік тому +1

      First you design on solidworks than you import as urdf file to gazebo

    • @yaraosama7573
      @yaraosama7573 Рік тому

      @@mugimugi5128 do you know how to do that

    • @amannoufel8141
      @amannoufel8141 Рік тому

      @@yaraosama7573 there's an extension for fusion 360, but not sure how its done in solid works

  • @Indresh-bi5xn
    @Indresh-bi5xn 8 місяців тому

    there is a problem where i couldnt run the package of joint_publisher_gui in which it says package not found.eventhough i had sourced it but no use.kindly help anyone

    • @mayssaknani
      @mayssaknani 3 місяці тому

      Same problem here ! did you fix it ? if yes, could you tell me how please ?

  • @norhanfathy6816
    @norhanfathy6816 Рік тому

    finally done take about 2 days to follow all steps 😪

  • @BELABEDAbdelkader-k7c
    @BELABEDAbdelkader-k7c 7 місяців тому

    Hi, im phd student of (DRL based autonomous navigation) can i find anyone to help me

  • @viorelgheorghe5655
    @viorelgheorghe5655 Рік тому

    Nice video, sorry for the late subscribe!

  • @messerschmidtfpv4419
    @messerschmidtfpv4419 2 роки тому

    heavy stuff...

  • @skrame01
    @skrame01 13 днів тому

    I hate loud keyboards.

  • @gowthamp6553
    @gowthamp6553 3 роки тому +1

    hi hope you are doing well, i getting there warnings continuously any idea why? TF_REPEATED_DATA ignoring data with redundant timestamp for frame left_wheel_1 at time 1564.233000 according to authority unknown_publisher

    • @ArticulatedRobotics
      @ArticulatedRobotics  3 роки тому

      Hi, what are you doing at the point when the error occurs? Are you possibly running two copies of robot_state_publisher?