For the purpose of an online course, I’m currently looking to build an autonomous robot to simulate a self-driving car.
I discovered RoboShop, but there are so many products that it’s very hard to chose.
Ideally, this robot would:
Be on Raspberry Pi, Or Jetson Nano
Have a LiDAR
Have a Stereo Camera
Have the possibility to use a RADAR, Ultrasonics, or other sensors
Work on Ubuntu, with ROS (Robotic OS)
If possible, I would like to spend as little time as possible on the assembly, and to be able to remove components if I already own them (ex: Raspberry).
Budget: Since the robots will be suggested to the course’s students, it would be ideal if it’s an affordable price (<1000$).
Thank you so much in advance for your help!
Jeremy
Hello @Jeremy26 and welcome to the RobotShop community,
Unfortunately, most of the platforms that include the components you mention are high end and therefore have a high price tag. Some examples are:
However, if you have a limited budget an excellent option is to purchase the components separately and assemble the platform yourself, a good way to save time would be to look for a chassis that includes the electronics, and then you can add the Raspberry Pi/Jetson Nano and the sensors you need.
Keep in mind that if you add a stereo camera, the LIDAR may not be necessary. Also, it is worth noting that for an autonomous car you need to perform vision tasks quickly so the Raspberry Pi may not be the best choice unless you use a camera that is capable of doing the image processing. Some ideas:
Thank you very much for your awesome answer Geraldine.
Regarding the configuration you offered, is this all we need to order? The wheels and the Pi?
About the stereo camera, the idea was to add redundancy and perform sensor fusion, so 2 different sensors was a nice thing to explore.
I also don’t understand well how to interface with this platform? How to run it autonomously? How to pick a rover kit in general? How to know that it will work with a Raspberry Pi?
Regarding the configuration you offered, is this all we need to order? The wheels and the Pi?
No, it depends on which robotic platform you choose. Most of the kits available include the motors but not the electronics so you must select the motor controller, the receiver/transmitter (if you want to control it remotely), the battery and the charger. Here you can find some useful guides:
Also if you choose to use the Raspberry Pi you would also need to buy some accesories, like a power supply, a micro SD card, and you it would be helpful to have (for the initial setup) a USB mouse, a keyboard, a monitor a micro HDMI to regular HDMI adapter/cable. You can find most of these things in the Raspberry Pi Accessories / HATs section of the store.
About the stereo camera, the idea was to add redundancy and perform sensor fusion, so 2 different sensors was a nice thing to explore.
You could easily add more sensors if you like you would simply need to check if they are compatible with the Raspberry Pi, some good options are an ultrasonic, or infrared distance sensor, or even a LIDAR. What I meant with my previous comment of the LIDAR not being necessary if you have a stereo camera has more to deal with the limited budget (as LIDARs are more expensive than other solutions). For example, the camera I linked is an AI camera that includes a visual processing unit that allows you to do computer vision tasks (which is very important for autonomous robots), is also very user-friendly so it should help students in the learning process. That module also has two stereo cameras that allow depth sensing which is perfect for navigation. However, if you also want to use your robot outdoors you will also need other localization sensors, like a GPS for example. You can find some ideas here:
I also don’t understand well how to interface with this platform?
Then I widely recommend checking these tutorial series:
But the general idea is that to have a robotic platform with motors which are the controller with a motor driver, if you simply wanted to control it remotely then would add a remote controller, but since you want to make it autonomous you need to add a “brain” and sensors. The brain could be a microcontroller or a single board computer, the choice relies on how much processing power the robot needs, as you want to use a camera you will need to do computer vision tasks which need a lot of processing power, this is why boards like the Jetson Nano are used for this type of robots (because they have a GPU which is great for image processing) you could also use other boards as the brain, like a Raspberry Pi.
How to run it autonomously?
You would need to program the robot to be autonomous or you could buy a kit that includes the software.
How to pick a rover kit in general?
Depends on the tasks you want the robot to make. But in general, you check the parts that the kits include, if it includes motors you check the specs (speed, torque, voltage, current), you check the type of wheels it uses. If it has electronics like a motor controller you check the control methods, if it has a remote control you check the control range. If it has a “brain” you check its capabilities, and how easy is to add sensors to it, if you need external boards or HATs to do so. If it has batteries you check their capacity. But there are so many things that the best option would be to ask for specific things, either way, I hope I have solved some of your doubts.
After a few days looking, I think I have a configuration:
This kit looks like a good fit. There is also a V-kit, an X-Kit, a 4WD Kit, and another… not sure what the difference is.
Do you think it’s a good idea in general?
Then, I would use a Raspberry Pi 4 B+, and purchase the sensors that go with it (camera, ultrasonics, …).
I’m totally aware it’s not perfect for Vision, but I think it’s doable if we use pretrained and optimized models. Otherwise, I could add a VPU from Intel.
The PRLiDAR or the YDLiDAR seems affordable, if ever needed. Can it be added to this kit?
I still have a question: Do you think this robot would work with ROS? How can I interfere with this and send a message like ‘accelerate’ or ‘angle: 20°’?
This kit looks like a good fit. There is also a V-kit, an X-Kit, a 4WD Kit, and another… not sure what the difference is.
Do you think it’s a good idea in general?
Yes, that type of kit can be used to learn about autonomous robots, so if you are on a low budget I think it is a great idea! To find the differences I recommend checking the what’s included section of each product. Some differences I found were:
RB-Suf-96: Includes sensors (Line Follower Module, Ultrasonic Obstacle Avoidance Module, Light Follower Module) but doesn’t include a camera.
RB-Suf-80: Includes a 120° Wide-angle USB Camera but doesn’t include sensors.
RB-Suf-181: Includes a 120° Wide-angle USB Camera but doesn’t include sensors. Works with all cell phones, tablets, etc.
RB-Suf-40: Includes a USB Camera but doesn’t include sensors. Includes a USB Wi-Fi Adapter (not necessary for the RPi 4)
Then, I would use a Raspberry Pi 4 B+, and purchase the sensors that go with it (camera, ultrasonics, …).
I’m totally aware it’s not perfect for Vision, but I think it’s doable if we use pre-trained and optimized models. Otherwise, I could add a VPU from Intel.
That’s a great idea! The Pi 4 + VPU is a great combo. Actually, the camera I suggested uses Intel’s Movidius Myriad X VPU (the same one used on Intel’s Neural Compute Stick) and comes with some pre-trained models that could be useful for your project. Oh and you might be interested in checking this blog:
The PRLiDAR or the YDLiDAR seems affordable, if ever needed. Can it be added to this kit?
Yes, but you would need a USB adapter board.
I still have a question: Do you think this robot would work with ROS? How can I interfere with this and send a message like ‘accelerate’ or ‘angle: 20°’?
As you’re planning on using a Raspberry Pi, and you previously mentioned you wanted to work with Ubuntu then yes you can work with ROS. However, the SDK available with the robots you mentioned does not support ROS so you would have to program the ROS nodes by yourself.
I don’t have a definite answer for you. It would be interesting to review your algorithms.
Among all the above platforms, I can recommend the BEEPTOOLKIT platform, which allows you not only to test, but also to most of the tasks for simulation, prototyping and conducting educational courses.