Autonomous Navigation Mobile Robot using ROS | Jetson Nano | RPLidar | Differential Drive Kinematics

In this video I have shown the working of Autonomous mobile navigation robot using ROS navigation stack. I have 3D printed this robot. This video covers the concepts of ROS navigation stack, kinematics of differential drive, configuring ROS differential drive controller, mapping using slam_gmapping node, localization using AMCL node and mobile robot in action autonomously going to the goal location using move_base node.
Full code of this project is uploaded in my git.
My project Package: github.com/bandasaikrishna/Au...
rplidar_ros package: github.com/Slamtec/rplidar_ros
my website: www.rosroboticslearning.com/

Пікірлер: 191

  • @thalanayarmuthukumar5472
    @thalanayarmuthukumar54722 жыл бұрын

    Great video. No nonsense with no extraneous information. Very motivating as well. Something I will aspire to build. Possibly, in the initial phase will try to create a simulation. Thanks very much for creating this excellent video

  • @ahmetsaglam8852
    @ahmetsaglam88522 жыл бұрын

    From zero to hero!!! This is an amazing and complete tutorial for anyone new to robotics! Thanks for your time and effort putting this together! I hope you provide another project based on a robot navigation with only a depth camera.

  • @SanjeevKumar-lx6ci
    @SanjeevKumar-lx6ci3 жыл бұрын

    I'm very happy to give us informative video and support in ROS.

  • @antonwinter630
    @antonwinter6303 жыл бұрын

    thats a really good demo. i like how you went through all the steps. i am just starting my ros learning journey

  • @srinivasasatya6797
    @srinivasasatya67973 жыл бұрын

    That's almost some best precession. Amazing work.

  • @dhruslab9563
    @dhruslab95633 жыл бұрын

    wonderful explanation as always!!! Thank you!!!

  • @furkanedizkan7202
    @furkanedizkan72023 жыл бұрын

    Great video sir, I have been researching for a similar project, so far this is one of the best informative sources I found.

  • @roboticsandroslearning8232

    @roboticsandroslearning8232

    3 жыл бұрын

    Thank you ☺️

  • @sablezubshruz9811
    @sablezubshruz98113 жыл бұрын

    Thank you for Video! Priceless for me, working on similar project, but with only Stereo Cam (no Lidar) mounted on Quad3DOF.

  • @vikingsraven
    @vikingsraven3 жыл бұрын

    Thanks again, very informative and easy to follow.

  • @Kp61dude_
    @Kp61dude_3 жыл бұрын

    Job well done and thanks for sharing peace and love from San Diego CA!

  • @keyurborad8550
    @keyurborad85503 жыл бұрын

    This was really much informative video indeed 👍👍 .. i am looking forward for more such videos

  • @ThangNguyen-ss7dq
    @ThangNguyen-ss7dq3 жыл бұрын

    Thank you very much. This is what I need!

  • @johnalejano5625
    @johnalejano56253 жыл бұрын

    thank you for this awesome video i learned a lot and will be using lidar to our thesis

  • @gabip265
    @gabip2653 жыл бұрын

    Incredible work!

  • @audricsaragih
    @audricsaragih3 жыл бұрын

    Great demo. Thank you for sharing.

  • @yaup21c
    @yaup21c3 жыл бұрын

    I really like your work good job and thank you for sharing info.

  • @praneethp8269
    @praneethp82693 жыл бұрын

    Awesome 👍

  • @ramanabotta6285
    @ramanabotta62853 жыл бұрын

    Brother you explained great,but could not grasp all of it. Could you make another video on navigation stack and explain it from a beginner point of view please. Thank for your efforts

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

    Great work, nice video

  • @raphaellmsousa
    @raphaellmsousa3 жыл бұрын

    Amazing!

  • @GurpreetSingh-bh3wk
    @GurpreetSingh-bh3wk3 жыл бұрын

    very good built and performance

  • @Ruhgtfo
    @Ruhgtfo3 жыл бұрын

    So noice thanks for sharing

  • @KK-fh1ds
    @KK-fh1ds3 жыл бұрын

    Thanks for the informative video

  • @SanjeevKumar-lx6ci
    @SanjeevKumar-lx6ci3 жыл бұрын

    Thank you sir!

  • @OZtwo
    @OZtwo3 жыл бұрын

    Great video. I have been looking at getting a Vector Robot to play with the AI but finding it may not be up to speed. I'm simply looking for something like a Vector robot that can explore the area, charge itself, and more where the AI comes in, be able to collect small objects and take it home. For this why I picked the vector since the base design is perfect yet with too many limitations. A perfect robotic mouse which I am so shocked I can't find anything close to it.

  • @MakerTutor101
    @MakerTutor1013 жыл бұрын

    Hi Greate Video , I am your fan

  • @roboticsandroslearning8232

    @roboticsandroslearning8232

    3 жыл бұрын

    Thanks a lot. You are senior to me in making great videos :) .

  • @rajmeetsingh1625
    @rajmeetsingh16253 жыл бұрын

    Great work, kindly share the complete wire connection diagram.

  • @tanawinsiriwan453
    @tanawinsiriwan4532 жыл бұрын

    Good!!!

  • @ramanabotta6285
    @ramanabotta62853 жыл бұрын

    Thanks you brother

  • @user-we8gi9ef4w
    @user-we8gi9ef4w Жыл бұрын

    Such an excellent video and good explanation. Actually at the moment I'm working on the similar project which it might help me a lot if you can share the schematic connection and the list of components that has been used. is that possible to get it?

  • @divyaprakashbiswas8781
    @divyaprakashbiswas87812 жыл бұрын

    Amazing video!! Thanks for sharing. I am little confused about the lower level PID controllers that you wrote for the individual motors. Why did you choose to implement the controllers using Arduino library? You could have use ros_control package to do that. Is there any specific reason?

  • @erolchelik
    @erolchelik7 ай бұрын

    Thts great tnk u

  • @Dhananjay-IITBHILAI
    @Dhananjay-IITBHILAI7 ай бұрын

    Sir please provide a detailed tutorial on how you implemented this with ROS along with hardware integartion with jetson nano, it will be great help to us for understanding autonomous navigation concepts.

  • @real-1982
    @real-19823 жыл бұрын

    the first video I saw in my life that have 0 dislikes

  • @xX12VincEXx

    @xX12VincEXx

    3 жыл бұрын

    Not anymore. Joke

  • @deadyanothaikiropool1chait713

    @deadyanothaikiropool1chait713

    2 жыл бұрын

    It will.It will. I pree the like btw.

  • @mks8884
    @mks88843 жыл бұрын

    Thanks for the video, very nice. but can you provide a connection sketch ?

  • @marcoantonioaguilargonzale2334
    @marcoantonioaguilargonzale23342 жыл бұрын

    Hi brou. Gerat Work!!!!!!!!!!!!!. What communication protocol did you use? :D

  • @suryamohithmaddi2
    @suryamohithmaddi25 ай бұрын

    Great video, I'd like to learn ROS from scratch and i'm currently working on these types of projects, please help me out regarding ROS, Lidars, Autonomous Navigations

  • @andresroc1567
    @andresroc15673 жыл бұрын

    Awesome videos man congratulations. Could you create one explaining the ROS hardware Interface?

  • @roboticsandroslearning8232

    @roboticsandroslearning8232

    3 жыл бұрын

    Thank you. I have written a blog on hardware interface node. Below is the link www.rosroboticslearning.com/ros-control

  • @andresroc1567

    @andresroc1567

    3 жыл бұрын

    @@roboticsandroslearning8232 Awesome!! Thanks a lot.

  • @SAMETELMACI
    @SAMETELMACI2 жыл бұрын

    awesome videoo thanks, why you use 2 seperate arduino nano istead of just one ?

  • @arhaangarg1482
    @arhaangarg14822 жыл бұрын

    Hi, great video. Helped me a lot. The next thing I want to do is to publish the directions like turn right, turn left. Could you please help me with that? Thank you hoping for A reply

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

    Hi sir , your tutorials are amazing. But Iam getting confused with one topic i.e interfacing the urdf model with the real robot hardware which I have. Can u please guide me to do this??I have a urdf model working separately and a real robot working separately.

  • @adarshgouda847
    @adarshgouda8473 жыл бұрын

    Any particular reason why two separate Arduino for each motor? And you are publishing only wheel velocities from Arduino and publish /odom on Jetson nano? There was no mention of an IMU... how did you manage to get the encoders very accurate? very good PID tuning I suppose? or are you using laser scan matching and fuse it with wheel odometry...

  • @Marco-fj1dy
    @Marco-fj1dy2 жыл бұрын

    Hello, in which part are you connecting the encoder data with the Odom node?

  • @clementedonosok5434
    @clementedonosok54343 жыл бұрын

    Hi! Amazing project! I'm building something like that but I want to know if the encoders are 100% necessary?

  • @roboticsandroslearning8232

    @roboticsandroslearning8232

    3 жыл бұрын

    No really. All you need is the odometery data. You can get the odometery data from a tracking camera also.

  • @pramodkeshav7314
    @pramodkeshav73143 жыл бұрын

    Hi. Amazing tutorial. I have a small doubt. How did you run the Jetson Nano without a cable connected to the laptop for Display. I presume you used VNC for teleop_twist_keyboard. Can I use a wifi module on the Jetson and connect it to the same wifi network as VNC? Thanks

  • @roboticsandroslearning8232

    @roboticsandroslearning8232

    3 жыл бұрын

    Using VNC viewer. Follow below link to setup vnc server in jetson nano medium.com/@bharathsudharsan023/jetson-nano-remote-vnc-access-d1e71c82492b

  • @nosejaja
    @nosejaja2 жыл бұрын

    Hi, why do you connect the jetsons pins to arduino nanos. Is it possible to connect the motors directly to the jetson board?

  • @dorukyazici395
    @dorukyazici3958 ай бұрын

    Hello Sir, awesome project. I have a question. Can I use a Raspberry Pi instead of a NVIDIA Jetson Nano? My budget is very limited but I loved the project.

  • @ssaniljainn
    @ssaniljainn2 жыл бұрын

    Hey, I recently decided to switch to ROS Noetic in my new OS of Ubuntu 20.04. Do you think your repo can be functional in the new versions of ROS?

  • @alronnegabrieltumasis7251
    @alronnegabrieltumasis72512 жыл бұрын

    Does the LiDAR Autonomous Self-driving car needs to have training on localization for it to work? This would be my thesis. Hoping I would receive a reply from you.

  • @giraftw2002
    @giraftw20022 жыл бұрын

    may i know if register the jointLimitsHandle in the h/w interface and the joint_limits.yaml are required since velocity and acceleration limits are already specified in controllers.yaml?

  • @youarecreators369
    @youarecreators3693 жыл бұрын

    Bro why using arduino nano, can't we sent pwm signal to driver from the jetson Nano..?

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

    Will you please tell me how you tuned the PID values of your DC motors?

  • @Primus19961225
    @Primus199612252 жыл бұрын

    Great video and explanation, but I am still wondering how there is no ROS topics being subscribed by the Arduino Nano. Am I missing something?

  • @roboticsandroslearning8232

    @roboticsandroslearning8232

    2 жыл бұрын

    Arduino is connected via i2c interface to Jetson Nano.

  • @ibrahimmemon9340
    @ibrahimmemon93403 жыл бұрын

    great video but can you explain to me why two specific nano?

  • @lolkaph4738
    @lolkaph47383 жыл бұрын

    Hello sir do you have a step by step of how to install the needed ros packages im a newbie plsss thanks you

  • @akumal5819
    @akumal58193 жыл бұрын

    Please anyone answer me,after completing the project robot still needs wifi to function the Ros or works offline after?

  • @frostycarbon270
    @frostycarbon2702 жыл бұрын

    You have a link to those motors for those of us in the US?

  • @vuongnguyenphuc382
    @vuongnguyenphuc3823 жыл бұрын

    Thank for this great video, but I don’t understand your arduino codes? How’s it relative to ROS?

  • @huytran-sd1kr

    @huytran-sd1kr

    3 жыл бұрын

    hi bạn, bạn còn chạy project này ko cho mình hỏi vài thứ, mình cảm ơn

  • @mechatronicsindia5603
    @mechatronicsindia56033 жыл бұрын

    On running back your package I found issue with" Could not read from i2c slave 0x8". Although my jetson is detecting the MCU with same adress. What am I missing?

  • @vijaybande916

    @vijaybande916

    3 жыл бұрын

    Connect i2c0 to slave 8 and i2c1 to slave 9

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

    Is it possible then to write a program that divides the map into car parking spots and provides the robot with a paint unit and the robot paints the specified places

  • @muhammadyousufeisa3982
    @muhammadyousufeisa39826 ай бұрын

    Are you also including sensor noise in it and filtering it. If not then can you help me out how to include it and then use a filter like kalman to show how the noise is reduced

  • @ssaniljainn
    @ssaniljainn2 жыл бұрын

    Can you explain the structure of the files that are useful and along with the components? And also, is it possible to use RPi4 instead of Jetson Nano?

  • @roboticsandroslearning8232

    @roboticsandroslearning8232

    2 жыл бұрын

    I have shared the source code, list of components and connection diagram in my git hub. The link to the git is present in the description. Yes you can go with RPi4 instead pf Jetson Nano.

  • @ssaniljainn

    @ssaniljainn

    2 жыл бұрын

    @@roboticsandroslearning8232 Thanks! Also, I needed to know if encoders are absolutely necessary to determine the state of the wheels? I currently do not have it and looking for an alternative.

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

    Thank you very much. I implemented your project with some modifications. It is running very well. Only issue is drift in odometry while robot rotates. I used two arduino m0 samd21 instead of arduino nano. I used as5600 absolute encoders instead of incremental ones with i2c communication. In samd21 there are more than one i2c ports. I don’t understand why you use this code in Robot_hardware_interface_node.cpp if(left_prev_cmd!=velocity) { result = left_motor.writeData(wbuff,2); //ROS_INFO("Writen successfully result=%d", result); left_prev_cmd=velocity; } I couldnot run without cancel if part. Can you explain why you dont send speed value to arduino if it is same as previous one? Another issue in arduino part, i can not understand how you send negative speed value to arduino from ros. I did some change to run it. I modified code as, 0 255 full speed forward. 255 255 full speed backward. How did you design it? Thanks for your answer

  • @alexahehe7671
    @alexahehe76712 жыл бұрын

    what are the specifications of the battery which you used ?

  • @JashDoshi
    @JashDoshi3 жыл бұрын

    Can you please make a video on how to add landmarks in this map?

  • @jamesniano9659
    @jamesniano96593 жыл бұрын

    good day sir...I just want to ask where can I download the software?

  • @sahadatalam6068
    @sahadatalam60683 жыл бұрын

    What application did you used to create 3d parts?

  • @roboticsandroslearning8232

    @roboticsandroslearning8232

    3 жыл бұрын

    TinkerCad

  • @321zerhou4
    @321zerhou4 Жыл бұрын

    any alternatives for the encoder motor?

  • @RicardoRodrigues-bc2ud
    @RicardoRodrigues-bc2ud3 жыл бұрын

    Hello. Is it possible to use octomap real time instead of building a map a priori?

  • @roboticsandroslearning8232

    @roboticsandroslearning8232

    3 жыл бұрын

    ROS navigation stack needs a map to navigate autonomously. And it works on 2d maps.

  • @user-cu3hz9rx8e
    @user-cu3hz9rx8e2 жыл бұрын

    How to get the mapping.launch file? Is it related to the robot shape? Thanks.

  • @Aliye727
    @Aliye7272 жыл бұрын

    hi why you use 2 individual arduino for motor

  • @khiemvu2024
    @khiemvu20243 жыл бұрын

    Did you use VNC to remote the screen of jetson nano?

  • @roboticsandroslearning8232

    @roboticsandroslearning8232

    3 жыл бұрын

    Yes

  • @razakazmi8545
    @razakazmi85452 жыл бұрын

    Hi Good Work How to increase the speed of robot? Thanks

  • @rajmeetsingh1625
    @rajmeetsingh16252 жыл бұрын

    hi, i want to run same navigation on arduino + raspberry + ros my map is saved , kindly help me for autonomous navigation (hardware interface node)

  • @user-eh4gq4er5z
    @user-eh4gq4er5z9 ай бұрын

    Is there a playlist for building this from scratch?

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

    Hello i made the robot using your package with a different body, but i don't know why, the robot is not moving while using teleop

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

    I'am a newbie I wonder why this project use 2 power (portable charger + battery pin bonus) can you explain it, pls

  • @ramoncarrasquel
    @ramoncarrasquel2 жыл бұрын

    Hi! How do I get the value 1856.0 of my motor?

  • @sanjunamathews-robotechietips
    @sanjunamathews-robotechietips3 жыл бұрын

    Have u done imu integration for odom?

  • @roboticsandroslearning8232

    @roboticsandroslearning8232

    3 жыл бұрын

    No.

  • @clementedonosok5434
    @clementedonosok54343 жыл бұрын

    Hi! I wondering with what did you supply the motors and the jetson nano?

  • @roboticsandroslearning8232

    @roboticsandroslearning8232

    3 жыл бұрын

    I have shown the battery in the video

  • @clementedonosok5434

    @clementedonosok5434

    3 жыл бұрын

    @@roboticsandroslearning8232 yeah I know, but You show also a poder bank, did you use it? Or just with the 12V battery you supply the motors and the Jetson nano?

  • @roboticsandroslearning8232

    @roboticsandroslearning8232

    3 жыл бұрын

    I did not use the power bank. The motors and jetson nano are powered with the 12V li-ion battery

  • @user-wz8rr9el9w

    @user-wz8rr9el9w

    3 жыл бұрын

    @@roboticsandroslearning8232 Hello, in the connection diagram you posted on git, the 12v battery is only connected to the motor driver, does both Jetson Nano and Arduino Nano supply power from lithium batteries?

  • @leninsingharam.g6708
    @leninsingharam.g670810 ай бұрын

    pls send the buying link of the above components used.

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

    How did you connect robot and laptop wirelessly, can you do a video on that?

  • @roboticsandroslearning8232

    @roboticsandroslearning8232

    Жыл бұрын

    Using VNC viewer. It is simple you just have to enter the wlan ip adress in vnc viewer. If you face any problem follow below link medium.com/@bharathsudharsan023/jetson-nano-remote-vnc-access-d1e71c82492b

  • @AlberDroid
    @AlberDroid3 жыл бұрын

    Nice project and thank you for sharing! i have a question, can I make this robot using incremental rotatory encoders? Hope you answer me, greetings!

  • @roboticsandroslearning8232

    @roboticsandroslearning8232

    3 жыл бұрын

    Yes. The encoder what I used in this project is incremental encoder.

  • @AlberDroid

    @AlberDroid

    3 жыл бұрын

    @@roboticsandroslearning8232 wow thank you very much for your answer! And again, thanks for sharing this amazing project

  • @batoolhamdan3585

    @batoolhamdan3585

    2 жыл бұрын

    @@roboticsandroslearning8232 plz tell me why u use raspberry pi ?

  • @nishantsharma4465
    @nishantsharma44653 жыл бұрын

    very informative video as always ! . Can you please provide some sort of contact details

  • @profCEObasi
    @profCEObasi2 жыл бұрын

    how can I download the ROS software. is it open source?

  • @aakashmuthaiya2624
    @aakashmuthaiya26243 жыл бұрын

    what type of DC motors used in this....? can you share Specifications

  • @roboticsandroslearning8232

    @roboticsandroslearning8232

    3 жыл бұрын

    robokits.co.in/motors/rhino-gb37-12v-dc-geared-motor/dc-12v-encoder-servo-motors/rhino-gb37-12v-60rpm-10.4kgcm-dc-geared-encoder-servo-motor

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

    Pleas ,can you give me the link to load the backage form terminal

  • @shantanubhavsar1369
    @shantanubhavsar13692 жыл бұрын

    2gb kit is enough to make this bot?

  • @rajmeetsingh1625
    @rajmeetsingh16253 жыл бұрын

    which version of ubuntu do you install on jetson nano?

  • @roboticsandroslearning8232

    @roboticsandroslearning8232

    3 жыл бұрын

    18.04

  • @nguyenien4896
    @nguyenien48963 жыл бұрын

    I cannot connect I2C between 2 arduino nano with jetson nano. I have error address 09. Hope you can help with the method of connecting hardware and software?

  • @roboticsandroslearning8232

    @roboticsandroslearning8232

    3 жыл бұрын

    I have upload the connection diagram for reference. Hope this help. github.com/bandasaikrishna/Autonomous_Mobile_Robot/blob/main/mobile_robot_autonomous_navigation/Connection_Diagram.jpg

  • @nguyenien4896

    @nguyenien4896

    3 жыл бұрын

    @@roboticsandroslearning8232 Thank you very much, I will try again.

  • @weplaygames4891
    @weplaygames48913 жыл бұрын

    Thank you so much Sir, I have a question, what do I need change when I change a other motor. Please help me!! I just change 1856 to 616 for my motor but it run so strange

  • @weplaygames4891

    @weplaygames4891

    3 жыл бұрын

    I just check PID and add it to arduino code but it not work

  • @VLSystems
    @VLSystems3 жыл бұрын

    Hi )) Why if i start only move_base node my robot all work, move_base subscribe on /scan But if i start amcl with move_base amcl subscriber on /scan, but move_base not subscribe on /scan, and robot dos not work Pls helm me please)

  • @asdasd60
    @asdasd602 жыл бұрын

    Your robot has two different arduino. What is the reason of this, can i use a single arduino?

  • @unknown_known-oi9ni
    @unknown_known-oi9ni4 ай бұрын

    what is the use of seq_of_goals.py file use?

  • @tuanhero91
    @tuanhero912 жыл бұрын

    Hi bro Please help me - When I roslaunch controller_check.launch Is not run - Does this project have catkin_make ? Because I catkin_make then error "Could not find amcl (missing:amvl_dir) - I looking for internet then just only sudo apt install ros_moetic-amcl I already run but sill can not catkin_make

  • @TESTIOT

    @TESTIOT

    Жыл бұрын

    file ho up len github bi bo bot file r

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

    hello sir can you help me to doing this project . i need help

  • @ashwinks3487
    @ashwinks34872 жыл бұрын

    Is ROS Kinetic valid even now??

  • @shubhamtakbhate8534
    @shubhamtakbhate85343 жыл бұрын

    Do you mind sharing github link for your project?

  • @roboticsandroslearning8232

    @roboticsandroslearning8232

    3 жыл бұрын

    The link is present in the description of the video.

  • @rajmeetsingh1625
    @rajmeetsingh16252 жыл бұрын

    i am facing error " could not read from I2C Slave "

  • @GamerEngineer1345
    @GamerEngineer13452 жыл бұрын

    Hello sir, Great tutorial but I have a question; how does jetson nano communicate with PC and receive commands ?

  • @voxelliptic6592

    @voxelliptic6592

    2 жыл бұрын

    Network configuration. Roscore of one device must have same IP address as other device.