Creating a rough 3D model of our robot with URDF

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 articulatedrobotics.xyz/mobil...
TF Overview • The ROS Transform Syst...
URDF Overview • Why do I think you sho...
Commit at this stage github.com/joshnewans/articub...
Inertial macros file github.com/joshnewans/articub...
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

Пікірлер: 85

  • @deepakramani05
    @deepakramani052 жыл бұрын

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

  • @ArticulatedRobotics

    @ArticulatedRobotics

    2 жыл бұрын

    Thank you!

  • @niccolodejito5643
    @niccolodejito5643 Жыл бұрын

    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

    Жыл бұрын

    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!

  • @iurireis8024
    @iurireis8024Ай бұрын

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

  • @lancerobbins332
    @lancerobbins332 Жыл бұрын

    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

    10 ай бұрын

    your 3yr old is gonna be the next elon musk

  • @abhismirai10
    @abhismirai10Ай бұрын

    really enjoying these series thank you so much

  • @MrFelipeX300
    @MrFelipeX3002 жыл бұрын

    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

    2 жыл бұрын

    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
    @cssociety37402 жыл бұрын

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

  • @ArticulatedRobotics

    @ArticulatedRobotics

    2 жыл бұрын

    Thanks!

  • @user-ei5lv7gz5d
    @user-ei5lv7gz5d11 ай бұрын

    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

  • @JoeyMoreland
    @JoeyMoreland Жыл бұрын

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

  • @nrdesign1991
    @nrdesign1991 Жыл бұрын

    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.

  • @davidfarning8246
    @davidfarning82462 жыл бұрын

    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.

  • @8bit711
    @8bit711 Жыл бұрын

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

  • @sUASNews
    @sUASNews2 жыл бұрын

    Loving your video series, well done

  • @ArticulatedRobotics

    @ArticulatedRobotics

    2 жыл бұрын

    Thank you!

  • @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...)

  • @robinkarlsson1460
    @robinkarlsson1460 Жыл бұрын

    You are a natural dude gj!

  • @hiepoanminh8477
    @hiepoanminh84772 ай бұрын

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

  • @rahgirarefinrafi4586
    @rahgirarefinrafi45864 ай бұрын

    Dude, you are my new fav tech guy

  • @ArticulatedRobotics

    @ArticulatedRobotics

    4 ай бұрын

    Thanks!

  • @AndresAndTheCaps
    @AndresAndTheCaps3 ай бұрын

    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?

  • @annamcfarlane9563
    @annamcfarlane95632 жыл бұрын

    really enjoyed this one :)

  • @MarcusRobertsonTwo

    @MarcusRobertsonTwo

    2 жыл бұрын

    Me too!

  • @prasannamg2449
    @prasannamg24496 ай бұрын

    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.

  • @artchu9886
    @artchu98863 ай бұрын

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

  • @musaakyuz4386
    @musaakyuz438611 ай бұрын

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

  • @enginetempsensor
    @enginetempsensor11 ай бұрын

    Very cool.

  • @iremmertyuz8167
    @iremmertyuz81677 ай бұрын

    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?

  • @quocanalexdjentertaiment99996
    @quocanalexdjentertaiment999964 ай бұрын

    Hey Josh,video your are so beatiful

  • @ptptp7826
    @ptptp78262 жыл бұрын

    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?

  • @user-fy8dz7cy7l
    @user-fy8dz7cy7l2 жыл бұрын

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

  • @EnesBalayX
    @EnesBalayX2 жыл бұрын

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

  • @akhadtop2067
    @akhadtop2067 Жыл бұрын

    Man too goood.

  • @harshitbalaji1019
    @harshitbalaji1019 Жыл бұрын

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

  • @KSLEEProjects
    @KSLEEProjects4 ай бұрын

    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

  • @alexrus6878
    @alexrus6878Ай бұрын

    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

    Ай бұрын

    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.

  • @mbulucay
    @mbulucay2 жыл бұрын

    u r great

  • @ArticulatedRobotics

    @ArticulatedRobotics

    2 жыл бұрын

    Thanks!

  • @siddharthu5120
    @siddharthu51202 жыл бұрын

    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 жыл бұрын

    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.!

  • @iskandarabdelhedi4569
    @iskandarabdelhedi45694 ай бұрын

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

  • @ByteHendTechX
    @ByteHendTechX Жыл бұрын

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

  • @norhanfathy6816
    @norhanfathy6816 Жыл бұрын

    finally done take about 2 days to follow all steps 😪

  • @ArticulatedRobotics

    @ArticulatedRobotics

    Жыл бұрын

    Good on you for doing it though!

  • @iremmertyuz8167
    @iremmertyuz81673 ай бұрын

    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

  • @user-xw6ch1co6d
    @user-xw6ch1co6d8 ай бұрын

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

  • @septianmegantara5414
    @septianmegantara5414 Жыл бұрын

    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

  • @abdullahusman6563
    @abdullahusman65632 ай бұрын

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

  • @karanbirchahal3268
    @karanbirchahal3268 Жыл бұрын

    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

    Жыл бұрын

    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 !

  • @gneyhabub
    @gneyhabub11 ай бұрын

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

  • @rahulsain3604
    @rahulsain3604 Жыл бұрын

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

  • @duyphuong9217
    @duyphuong9217 Жыл бұрын

    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

  • @kaedensaunders6222

    @kaedensaunders6222

    10 күн бұрын

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

  • @Indresh-bi5xn
    @Indresh-bi5xn26 күн бұрын

    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

  • @andrzejszafarczyk990
    @andrzejszafarczyk990 Жыл бұрын

    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

    Жыл бұрын

    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

    Жыл бұрын

    Nice, I'm glad you got it sorted!

  • @grantkeefe9866
    @grantkeefe9866 Жыл бұрын

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

  • @ArticulatedRobotics

    @ArticulatedRobotics

    Жыл бұрын

    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

    Жыл бұрын

    @@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

  • @messerschmidtfpv4419
    @messerschmidtfpv4419 Жыл бұрын

    heavy stuff...

  • @warviksam
    @warviksam2 жыл бұрын

    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!

  • @hassanhaq604
    @hassanhaq604 Жыл бұрын

    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

    6 ай бұрын

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

  • @yaraosama7573

    @yaraosama7573

    6 ай бұрын

    @@mugimugi5128 do you know how to do that

  • @amannoufel8141

    @amannoufel8141

    6 ай бұрын

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

  • @viorelgheorghe5655
    @viorelgheorghe56555 ай бұрын

    Nice video, sorry for the late subscribe!

  • @vihaanravishankar5189
    @vihaanravishankar51895 күн бұрын

    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

  • @gowthamp6553
    @gowthamp65532 жыл бұрын

    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

    2 жыл бұрын

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