Autonomous Navigation Mobile Robot using ROS | Jetson Nano | RPLidar | Differential Drive Kinematics
ฝัง
- เผยแพร่เมื่อ 7 ก.พ. 2025
- 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/ban...
rplidar_ros package: github.com/Sla...
my website: www.rosrobotic...
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.
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
I'm very happy to give us informative video and support in ROS.
Great video sir, I have been researching for a similar project, so far this is one of the best informative sources I found.
Thank you ☺️
thats a really good demo. i like how you went through all the steps. i am just starting my ros learning journey
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
That's almost some best precession.
Amazing work.
the first video I saw in my life that have 0 dislikes
Not anymore.
Joke
It will.It will.
I pree the like btw.
Job well done and thanks for sharing peace and love from San Diego CA!
Hi Greate Video , I am your fan
Thanks a lot. You are senior to me in making great videos :) .
Thank you for Video! Priceless for me, working on similar project, but with only Stereo Cam (no Lidar) mounted on Quad3DOF.
thank you for this awesome video i learned a lot and will be using lidar to our thesis
Thanks again, very informative and easy to follow.
Thank you very much. This is what I need!
This was really much informative video indeed 👍👍 .. i am looking forward for more such videos
I really like your work good job and thank you for sharing info.
Great demo. Thank you for sharing.
Incredible work!
you are a gemmmmmmmmm bro💎
Thanks bro 🙏
very good built and performance
Great work, nice video
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.
Great work, kindly share the complete wire connection diagram.
Thanks for the informative video
Thank you sir!
So noice thanks for sharing
Thanks you brother
Awesome 👍
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
Bro why using arduino nano, can't we sent pwm signal to driver from the jetson Nano..?
Amazing!
Thts great tnk u
Camera for Autonomous Mobile Robots (AMR)▶th-cam.com/video/dqY7wVgc2Ag/w-d-xo.html
Hi brou. Gerat Work!!!!!!!!!!!!!. What communication protocol did you use? :D
Good!!!
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?
Thanks for the video, very nice.
but can you provide a connection sketch ?
Awesome videos man congratulations. Could you create one explaining the ROS hardware Interface?
Thank you. I have written a blog on hardware interface node. Below is the link
www.rosroboticslearning.com/ros-control
@@roboticsandroslearning8232 Awesome!! Thanks a lot.
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.
awesome videoo thanks, why you use 2 seperate arduino nano istead of just one ?
Please anyone answer me,after completing the project robot still needs wifi to function the Ros or works offline after?
hi why you use 2 individual arduino for motor
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
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
Hello, in which part are you connecting the encoder data with the Odom node?
Can somebody show me the connection of boost converter , inputs and outputs??
Hi Bro, Thank you for the amazing video! I have an issue with my robot, the laser keeps drifting although I have used ekf filter but i think the value of the imu is not filtered by the robot_pose_ekf. can you please help me with that or share me the imu complementary filter package please
Hello sir do you have a step by step of how to install the needed ros packages im a newbie plsss thanks you
I'am a newbie
I wonder why this project use 2 power (portable charger + battery pin bonus)
can you explain it, pls
Will you please tell me how you tuned the PID values of your DC motors?
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.
Hi, why do you connect the jetsons pins to arduino nanos. Is it possible to connect the motors directly to the jetson board?
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
Is there a playlist for building this from scratch?
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?
pls send the buying link of the above components used.
what are the specifications of the battery which you used ?
what is the use of seq_of_goals.py file use?
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?
Arduino is connected via i2c interface to Jetson Nano.
Is this support noetic
any alternatives for the encoder motor?
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
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...
great video but can you explain to me why two specific nano?
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.
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?
Connect i2c0 to slave 8 and i2c1 to slave 9
Hi Good Work
How to increase the speed of robot?
Thanks
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
Hey bro, My Rviz keep fixing as the robot it's self. The map is updated every time the robot rotates. Can you help me please
Chek the global fixed frame in rviz, that should be set to robots base link in your case. Change the fixed frame to /map frame.
@@roboticsandroslearning8232 i already done that but it's not working
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?
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
@@roboticsandroslearning8232 Thank you very much, I will try again.
2gb kit is enough to make this bot?
i am facing error " could not read from I2C Slave "
can this be used with flying Drone in 3D environment?
No, nav2 is designed for 2d (ground) mobile robots
Your robot has two different arduino. What is the reason of this, can i use a single arduino?
How did you connect robot and laptop wirelessly, can you do a video on that?
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
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?
You have a link to those motors for those of us in the US?
How to use the navigation stack with the Pioneer robot (with rosary) and the rplidar a3 sensor (Hector Slam or Gmapping library)
Hey,
My question is how to use the ros Navigation Stack library to perform autonomous navigation on the pioneer robot that I am using the rosaria library for control, I am also using the rplidar_03 sensor with the hector slam library in the project. If anyone can help me
Pleas ,can you give me the link to load the backage form terminal
hi, i want to run same navigation on arduino + raspberry + ros
my map is saved , kindly help me for autonomous navigation (hardware interface node)
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.
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?
Is ROS Kinetic valid even now??
Hi! Amazing project! I'm building something like that but I want to know if the encoders are 100% necessary?
No really. All you need is the odometery data. You can get the odometery data from a tracking camera also.
Can you please make a video on how to add landmarks in this map?
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?
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.
@@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.
Hi! How do I get the value 1856.0 of my motor?
can we use jetson nano 2GB instead of jetson nano 4GB?
I did not try it on 2GB jetson Nano.
How to control Jetson nano from another computer?
I used vnc viewer
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
file ho up len github bi bo bot file r
does this work on ROS melodic ? , if not which ROS should i install to do this project .... please help me anyone
This project is made on ROS Melodic
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
Using VNC viewer. Follow below link to setup vnc server in jetson nano
medium.com/@bharathsudharsan023/jetson-nano-remote-vnc-access-d1e71c82492b
How to get the mapping.launch file? Is it related to the robot shape? Thanks.
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)
Did you use VNC to remote the screen of jetson nano?
Yes
Hello. Is it possible to use octomap real time instead of building a map a priori?
ROS navigation stack needs a map to navigate autonomously. And it works on 2d maps.
how can I download the ROS software. is it open source?
what type of DC motors used in this....? can you share Specifications
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
Thank for this great video, but I don’t understand your arduino codes? How’s it relative to ROS?
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
What component used
Component list is provided in the git.