Это видео недоступно.
Сожалеем об этом.
Building a ROS Robot for Mapping and Navigation #1
HTML-код
- Опубликовано: 17 авг 2024
- Get your first 10 PCBs for free at www.pcbway.com/
I previously showed a demo of Turtlebot 3 doing mapping and navigation with ROS. Now it's time to attempt to built a robot from scratch and understand how ROS hangs together and which components we need to implement it all from scratch. I'm using my NERF Blaster Robot chassis to try this because it has wheel encoders and already has an Arduino on board.
In this video I've added a Raspberry Pi 4, and an RPLidar A1 which we'll look at more closely next time.
Links for this video:
Free ROS book: emanual.roboti...
Robot Ignite Academy: www.theconstru...
Ubuntu Mate on Rasp Pi 4: • Install Ubuntu MATE On...
wiki.ros.org/RO...
wiki.ros.org/ca...
You can support me on Patreon or buy my Merchandise:
***************************
Patreon: / xrobots
Merchandise: teespring.com/...
***************************
Affiliate links - I will get some money of you use them to sign up or buy something:
***************************
Matterhackers 3D printing supplies: www.matterhacke...?aff=7500
Music for your RUclips videos: share.epidemics...
Amazon US: www.amazon.com...
Amazon UK: www.amazon.co....
Amazon FR France: www.amazon.fr/...
Amazon DE Germany: www.amazon.de/...
Amazon ES Spain: www.amazon.es/...
Amazon IT Italy: www.amazon.it/...
***************************
Other socials:
***************************
Instagram: / xrobotsuk
Facebook: / xrobotsuk
Twitter: / xrobotsuk
***************************
CAD and Code for my projects: github.com/XRo...
Huge thanks to my Patrons, without whom my standard of living would drastically decline. Like, inside out-Farm Foods bag decline. Plus a very special shoutout to Lulzbot, Inc who keep me in LulzBot 3D printers and support me via Patreon.
HARDWARE/SOFTWARE
Below you can also find a lot of the typical tools, equipment and supplies used in my projects:
Lulzbot 3D Printers: bit.ly/2Sj6nil
Lincoln Electric Welder: bit.ly/2Rqhqos
CNC Router: bit.ly/2QdsNjt
Ryobi Tools: bit.ly/2RhArcD
Axminster Micro Lathe: bit.ly/2Sj6eeN
3D Printer Filament: bit.ly/2PdcdUu
Soldering Iron: bit.ly/2DrNWDR
Vectric CNC Software: bit.ly/2zxpZqv
Why not join my community, who are mostly made up of actual geniuses. There’s a Facebook group and everything: / 287089964833488
XROBOTS
Former toy designer, current RUclips maker and general robotics, electrical and mechanical engineer, I’m a fan of doing it yourself and innovation by trial and error. My channel is where I share some of my useful and not-so-useful inventions, designs and maker advice. Iron Man is my go-to cosplay, and 3D printing can solve most issues - broken bolts, missing parts, world hunger, you name it.
XRobots is the community around my content where you can get in touch, share tips and advice, and more build FAQs, schematics and designs are also available.
I had been trying to get into ROS and couldn’t find my way into it. Thanks to you I have now started in RoboIgnite Academy.
This series has just become more fascinating!
What an amazing display of software abilities.
Excellent! You covered a semester in a few minutes. I will recommend your videos to students.
He should put a biting head on it
I've been using ROS for a few years now, and I'm stoked to see one of my favourite youtubers also getting into it. Can't wait to see the openDog doing cool autonomous stuff using ROS.
thanks, that is the eventual aim.
can you suggest some free tutorials
Same here !
@@aryaanand759 do the ros tutorials!
Can't stop hearing it as ROSberry Pi :D
I hear it as “green needle.”
Rosberry Pi is the Ros image for raspberry pi 4
Graduating soon(ish), COVID willing, and I can't help but thank you for your awesome work which has been a huge part of what inspired my to pursue engineering. Cheers James.
i'm not sure if people realize and appreciate enough the work you do, in the sense that just reducing the gear ration from the motors, converting that into code, calibrate the 2 motors (which are opposite to each other) to match each other's speed, get the accurate reading from the encoders, and this is not even talking about the communication and translation between devices when you are using ros or electronics, etc, is just talking about that small part on wheels+encoders+arduino IDE. Well done!
This series will become the most view robotics realated video on youtube crystal clear explnation
thanks!, Part 2 gets a bit more hectic though ;-)
@@jamesbruton Are you allright? everything ok? no video this week ? :(
I love how you build things up one chunk and interface at a time, debugging each before moving to the next
When open dog v2 can walk properly he should put a lidar scanner on it
Yes! OpenDog 2 with full autonomy would be epic!
Maybe one of those OpenNI depth cameras, too. I think Orbec is the company that makes the "Astra" one I've seen and liked the look of before.
Thumbs up for the crystal clear explanation.. Waiting for part 2 🤘
man you got me into Arduino, then I got interested in pi, and now you introduce ROS. Im gonna go bankrupt this way lol. I actually applied for different jobs for the sole purpose of funding this hobby xD. Thanks haha
This video is really informative. I had a similar project a year ago for a University subject. However seeing how you done it makes me want to improve so so more! Thanks for sharing!
Awesome. Correct me if I'm wrong, but ROS essentially looks like a standardized communication API for robotics. Can't wait to see more and what useful robots you can make with this!
Pretty much, the main advantage for me is that there are so many ready-made nodes that can immediately make the robot intelligent.
If it helps anyone, the way I think of ROS topics is less "pipes" and more "pigeon-hole message box". A ROS node can theoretically subscribe to any topic it wants and go to collect the latest data whenever required.
I’m looking forward to your video on ROS with a laser scanner for mapping. I just ordered a laser scanner but I have no idea how to use it yet!
Congrats on getting through that James - I know how hard ROS is to learn! This is very exciting to see this developed.
thanks, part 2 is a bit more hectic!
Systems Planet Unless you’re trying to be innovative. The competitor would have had to learn that which was hard to learn in order to make it easier to learn
I like your debug setup!
The site for the free ROS book seems to have gone offline. But the actual book was always on Dropbox and is still available there - unfortunately, RUclips usually censors comments with links so, I'll just say you can find everything via the Wayback Machine. In any case, the book covers ROS Kinetic Kame which came out in 2016 and belongs to the old ROS 1 series of releases. ROS 2 came out in 2017 and has been stable for a long time - so, it's probably best to start on a book or tutorial that covers it. James's videos are still a great place to get a high-level intro to the general ideas.
I'm usually sad when you work on projects that aren't your spectacular robot dogs! But I love the idea of one of these on the dog that I'm going to be even more thrilled if it works out really well!!
Fantastic coverage of ROS. Looking forward to the next video on this
The next one is not as straight forward ;-)
@@jamesbruton Ive been working on a tracked rover and looking at ROS. This video unlocked a couple issues I was stuck on. Im using the same LIDAR you are so Im going to be following very closely
Oh I want that T-Shirt! :D _checks description..._ Ooh goodie! There's a store.
Great update video
Great update project
Thanks for sharing 👍😀
thanks!
This will be the best series ever!
Just read a comment about the VM for ROS. It's not really the best option. neither is the other workstation xD.
You can switch to ROS2 which can run on windows (it's newer than ROS and does not have much documentation and support as ROS so it's a good step to start with ROS).
Or you can use dual boot. you will get both windows and ubuntu running on the same machine (you get to choose which OS to load when booting).
nice i didnt know there was so much learning courses on the subject. definitely going to check it out.
For a rolling vehicle on a flat surface the static traction (tires not slipping) is solely determined by the coefficient of friction of the tires and the force (weight) applied to those tires.
This is because as the contact patch is increased in size the relative pressure is decreased proportionally and therefore grip remains the same.
If you need more traction and wear isn't a concern you can just switch to a softer durometer gripper tire. If wear is a concern then a softer durometer and a wider tire.
This all gets way more complicated when considering something like a race car going around a track with contact patches changing size dynamically, uneven road surfaces, changing coefficient of friction with temperature and track surface. But for slow robots things are nice and simple.
Ooo...I love this! This will be PERFECT for an autonomous lawn mower / Weed wacker! Actually I have been thinking and designing one already...LIDAR is what I am missing.
The challenge with lawns is that there's lots of open space, so the LIDAR might not see anything
@@jamesbruton Not even a toothbrush ?
@@jamesbruton I was thinking using the sonar you get from Adafruit and then once it detects, then kick on the LIDAR. That should work?
18:15 "It is Captain Speed, as I say..."
lol
“Capped in speed” heh
You could easily build up an optical mouse style sensing apparatus to determine ground travel direction and velocity. Whether using "mouse" type circuits or a camera and computer vision it's a straightforward way to establish accurate ground tracking.
I was hoping I could do it with the lidar...
Please help to answer a few quiz questions for this video:
1: What is the purpose of a ROS-enabled robot?
A. To play music
B. To do mapping and navigation
C. To cook food
D. To clean windows
2: Which Arduino board was used in the robot setup?
A. Arduino Uno
B. Arduino Mega
C. Arduino Nano
D. Arduino Due
3: What type of power bank was used to power the Raspberry Pi?
A. 10 amp hour
B. 15 amp hour
C. 20 amp hour
D. 25 amp hour
4: What is the purpose of a PID controller in robotics?
A. To regulate motor speed
B. To control temperature
C. To measure humidity
D. To adjust lighting
5: Which Linux distribution was used in the setup?
A. Ubuntu Mate
B. Fedora
C. Arch Linux
D. Debian
6: What is the purpose of a catkin workspace in ROS?
A. To store cat pictures
B. To organize source code
C. To manage hardware components
D. To control robot movement
7: Which topic is used for driving robots around in ROS?
A. Velocity topic
B. Acceleration topic
C. Position topic
D. Rotation topic
8: What is the purpose of the ROS serial node in the setup?
A. To send messages to the Arduino
B. To control the laser scanner
C. To communicate with the Raspberry Pi
D. To debug data from the Arduino
9: Which tool was used for PCB manufacturing and assembly?
A. PCB Maker
B. Circuit Builder
C. PCB Way
D. Electronics Pro
10: What is the purpose of the tf transform in ROS?
A. To transform images
B. To control motor speed
C. To provide odometry data
D. To debug Arduino code
I can't find the code of the project, what"s the name of the repository on Github?
did you find it, i also couldn't find it
I don't if you take it as compliment (I hope so), but you're far better than Iron Man himself! Thank you for the lesson!
When I was at University I started out studying MechE, but was particularly interested in robotics, so I was curious if maybe software was a better route. I managed to get a job in the Robotics and Artificial Intelligence Lab for a summer where I had to learn to work with ROS for 3 months. After that, I was 100% confident MechE was the right choice for me! Even as someone who knows their way around Python and a bit of C, that was a gauntlet of fire... Even other people I know who are software developers tell me they hate working with ROS.
Hi James
Fantastic video, really appreciate it
so interesting! ty ... looking forward for next part
Just subscribed
Came from Mark Rober
Nice job explaining a much more complex set of abstractions than usual. I notice you don’t tend to use diagrams. Have you considered a bit of white boarding for this Ros stuff?
Great video! I appreciate the detail.
rosserial doesn't work in ROS2 & everything is quite a bit different, but each participant is a full node & there's auto discovery. so it's harder to use an 8 bit part, but something slightly bigger like an esp32 or pi pico is a first class node. i dunno if you got the returns you were looking for in your ROS videos but i'd love to see more. mundane stuff like buttons and LEDs got a lot tougher to just throw in there
You are so smart it blows my mind.
To be fair the resources at wiki.ros.org/ROS/Tutorials are well worth working through. by the time you make it to wiki.ros.org/ROS/Tutorials/ExaminingServiceClient you have all the knowledge required to "understand" what James is talking about here.
In /some/ depth if you actually build and follow through the code examples as the wiki suggests. Certainly enough to follow along so far. Hope that helps.
Меня так умиляет, когда он говорит "йЭбАнтУ"
Hey buddy your work is awesome :D
Hello James, thank you for making this video. Do you have the code for this particular robot uploaded to github? I can't seem to find it any where.
did anyone find the code??
Ever consider doing an ROV/submersible robot?
Doing optical/photogrammetric SLAM in short-visibility with an ROV seems like a really interesting challenge :D would be super useful for archeology, cheap, safe, automated photogrammetry of underwater sites.
Yes I'm doing research for that now.
I like this video with more of a software focus!
Very impressive. As usual....
Robots will make our human society better! Please make them more and more !Just learn it if u want u will find information!Believe your self those who are reading this message.
hello from Qazaqstan!
VirtualBox is an open source alternative to VMware Player.
It's not fully open source, and Oracle's been chasing people down to pay for the PUEL licenced extension pack. If you want open source, go with Xen or qemu.
First! LUL , Oh baby. You the man James. This series is the best
thanks!
FYI, I have compiled ros from source on a pi0w. Just the build time alone was almost 30 hours.
Hi Bouton, this is a nice work on your video. I am working on a project with serial communication between Raspberry Pi and Arduino as well. However I discovered there is a half second delay for sending a letter, and 3~5 second delay for sending a string. I glad to know how would you going to solve it.
Use cssh to connect to sets of servers and run the same command on all of them at the same time.
There's a cmd_vel publisher in Android store called 'ros control'. Which means you can use your phone to steer it if you want
I tried it but it won't go forwards?
Loved the video
I like your tshirt man
Awesome video! Any chance of a future VR project? You did some great ones in the past. Wandering if it was possible to create a really cheap and light strap on exoskeleton for full body tracking without any external detection systems...
Man my boss would be so happy if I commented my code like James lol
I think he'd be disappointed if you coded your code like James though.
I'd certainly be disappointed. Needs more comments, all over.
Why do you need the 5 V regulator , already having the l298 like motor controllers? Confusing only because there are no schematics .Thanks.
I'd like to see this turned into super roomba vacuum
Raspian is built off of Debian (Which Ubuntu is also built off of) and everything Debian already uses Aptitude as its package manager, the thing that changes which packages are available for the system is the architecture of the processor the package is compiled for and the source list for APT. As far as I can see ROS is available on Raspian by default, so I wonder what went wrong when you tried it?
It also won't let me install ROS kinetic on Ubuntu 18.04 or Melodic on 16.04 by default. So this was the easiest way to do it. Bear in mind that my experience in limited.
Thanks for sharing ebook
What's the best and cheapest raspberry pi alternate? Because I can't seem to find them at a good price anywhere.
Love the series keep it up :)
Nice video! Thank you 🙏🏻
How do these LIDAR thingys work outdoors around foliage and other obstacles not composed of hard flat surfaces?
Hi sir, can you display the codes and the packages of ros in the libraries with proper arrangements?
It would be interesting to hear why you're adding in the Arduino Mega and not driving the motors from the pi itself.
(Not critiquing what you've done, interested in hearing your analysis of pros Vs cons)
Mainly because I'm better at Arduino and most of my projects have been Arduino based. That said, I also prefer handling hardware like encoders without the o/s in the way.
@@jamesbruton Use the Teensy then... same code, faster processor. You already know this though...
and could get the encoders working at high speed, which means you could put them on the correct side of the gearing, which means you wouldn't need to do the integral hack with the PIDs, and if you also put a thicker tire on the wheel, you could have made it work pretty much perfectly, and the whole video would have made things a lot easier to understand.
Obviously. (And people stop saying obviously when things might not be obvious to people. Obviously not everyone knows as much as you do, or comes so the obvious thing to do is not make them feel stupid. But obviously you already know that.)
This what am ı looking for, thanks!
Crazy. Wow.
Even in future projects that don't use ROS, studying software in general will help you. As a software engineer, I've noticed that your coding skill is nowhere near the same level as your hardware and design.
This is what I need I think .
I've got always the problem with episodes that include a lot of talking about coding because I just know basic english. But thats of course no critiscm, it's just the reason I prefer the videos with focus on building the actual robot
Looks like you are using classic ROS I think. For us ROS newbies, Would be great to understand why you chose classic ROS over ROS2.
Documentation and existing examples mainly.
Is the board on the previous kit that reads the arduino sensors based on the stm32?
you should make a channel for this stuff that's called Ros Creations
Thank you really helpful.
Do you still have the code from this video? I don't see it on GitHub.
Great again! What if you put the rotary encoders on non powered wheel to avoid bad encoder data when powered wheels drifted on the floor ?
Unable to find the repo for this exact project. Can you help me ?
From where I can source the code for wheel encoder testing? i can not find it on your github
I didn´t quite get the part where you made a connection between the raspberry pi and the workstation. Did you set the ROS_MASTER_URI to the workstation and ROS_IP to the raspberry IP on the robot?
Cool. I am trying to do something similar in my native language as well
You know it is easier to build a velocity controller on the wheels and use the differential robot kinematic model to work out the velocity vectors. Meaning your node computes the wheels velocity from the kinematic model and the Arduino simply runs the PID controller
Yes it possibly is. Part 2 gets even more hectic and then I'll be taking what I learned to build a much better V2 from the hardware up.
I'd like to make a similar robot able to roll around a home or business mapping the walls, ceilings, doors, windows, base trim, etc and then paint the space autonomously.
i hade an idea for your next robot, a telepresence robot that can go a fair distance from your home if needed.
2 interrupts per encoder? is that wrong or is there some advantage over using an interrupt and a normal pin and polling the non interrupt pin on interrupt?
There are two phases on each one?
awesome
I don't know waht the link is for the arduino playground.
Awesome
Since you built a perfect Hulkbuster armour could you build a mark 38 also known as the igor armour?
Hello I really live your work can i ask under what name did you upload your package in the github link
can you please make a more detailed video on setting up the pi and the remote system
Thank you really helpful
The videos is really great!! Thank you for the information.
I'm already working on ROS I have connected RPlidar and Arduino Mega to Jetson nano. The /dev/ttyUSB0 and 1 continuously switches between Mega and Nano causes error. How can I define particular port to Mega and Nano. Or How can i read wheather its a Mega or Nano.
Please if possible mention the same in the next video.
Thank you.
Hi, you can write a small udev rule to assign a given 'device' name to your USB serial device (Arduino or else). Link: unix.stackexchange.com/questions/66901/how-to-bind-usb-device-under-a-static-name
@@jcugnoni Thank you sir !!
I'll try the same
sounds a bit like ROS works with MQTT internally to link and Node-Red to form the logic...
I'm having trouble finding the playground code, can I get a link?
If you are limiting the speed of the motors, then could the encoders be attached directly to the motors? You said you didn’t because they were moving too fast (unregulated/limited) but now that they are, is it feasible?
from experience it's on the edge of the MEGA being able to read them accurately.
James Bruton ah just curious. Thanks for awesome content dude !
Thank you very much for this video. May you please upload the Arduino code? I know you have uploaded the updated version but I need this code specifically. Thank you very much.
which motor driver it that?
you are the best