Getting Started with Jetbot: Navigation Stack
What is Jetbot?
Jetbot is a small DIY robotics kit that allows users to learn how to code and build their own robots. It’s powered by the NVIDIA Jetson Nano, a small computer that can be used for a variety of applications including robotics, machine learning, and computer vision.
One of the key features of Jetbot is that it is designed to be easy to use and assemble, even for those with little experience in robotics or coding. The kit comes with all the necessary parts and instructions to build the robot, and it can be assembled in just a few hours.
Once you’ve assembled Jetbot, you can use it to learn how to code and build your own robot applications. Jetbot runs on the NVIDIA Jetson Nano, which comes with a range of tools and libraries that make it easy to develop and run your own robot programs.
Some of the things you can do with Jetbot include:
- Use Jetbot’s built-in camera to capture images and video, and use computer vision algorithms to detect and track objects.
- Use Jetbot’s motors and sensors to navigate and interact with the environment.
- Use machine learning algorithms to train Jetbot to recognize and respond to different objects and situations.
- Use Jetbot’s built-in display and speakers to provide feedback and information to the user.
- Connect Jetbot to other devices and sensors, such as a game controller or additional sensors, to expand its capabilities.
Below I will show you how to get started with Jetbot with an example, using the navigation stack to control the robot equipped with a ZED2 camera.
I wrote a tutorial along with configs for this blog in order to help you replicate my results and put them all online here.
Navigation Stack
The navigation stack is a part of ROS that provides all the necessary components for building a mobile robot that can navigate in a known environment.
It includes algorithms for localization (determining the robot’s position in the environment), mapping (constructing a map of the environment), path planning (computing a safe and efficient path for the robot to follow), and motion control (following the computed path and avoiding obstacles along the way).
The navigation stack is designed to be modular and flexible, allowing users to choose and configure the specific algorithms and parameters that best suit their needs. It also includes a number of useful tools and utilities for visualizing and debugging the robot’s behavior, such as rviz (a 3D visualization tool) and rqt (a GUI-based tool for inspecting and modifying the robot’s configuration).
To install the navigation stack, clone this repository.
Jetbot ROS
ROS (Robot Operating System) is an open-source robotics platform that provides a set of tools and libraries for developing robotics applications.
To control the robot using the navigation stack, you’ll need a ROS package for jetbot.
Luckily there’s an open-source ROS package for jetbot here.
ZED2 ROS
The ZED2 camera from StereoLabs is a high-resolution, stereo-depth camera that provides accurate 3D perception of the environment. It is designed for use in a wide range of applications, including robotics, augmented reality, and autonomous vehicles.
To stream the camera and access it with ROS, you can use this open-source ZED wrapper.
Setup
Below is a diagram of the complete navigation stack along with the main packages that need configuration with move base in order to control the robot.
In this tutorial that I created, I added basic config files to get you started, but you’ll probably need to do some tuning to get it to work properly with your robot.
Demo
This is a short demo I recorded of jetbot using the ZED2 camera and does obstacle avoidance by itself:
The navigation stack is a powerful tool for enabling mobile robots to navigate safely and efficiently in known environments. It is widely used in research and industry for a variety of applications, including service robots, inspection robots, and autonomous vehicles.
Conclusion
Overall, Jetbot is a great tool for anyone interested in learning how to code and build their own robot applications. It’s a fun and engaging way to learn about robotics, computer vision, and machine learning, and it can be a valuable addition to any maker’s toolkit.
If you had any trouble running any parts of the configuration or need help, feel free to reach out!