Showing posts with label RPI. Show all posts
Showing posts with label RPI. Show all posts

Saturday, April 6, 2019

Wild Weasel - Tracked Robot (#3)

I have just posted a YouTube Video of the assembly of the Wild Weasel track.  You can find it here:


Wild Weasel a completely 3D printed Tracked Robot.  I wanted to build a tracked robot, due to their stability, and at the same time use some motors that I had recovered from recycled printers.

The project went very smoothly, a lot of CAD work was need to design the treads, chassis, and gears used.  The robot uses a Raspberry Pi and an L298N motor driver. This was my first time to use a Tallent Cell power bank, which provides 12V and 5V power - great for RPI and the motors.

Saturday, March 2, 2019

Wild Weasel - tracked robot (#2)


The first build of the Wild Weasel tracked robot seems to be working well.


Wild Weasel Tracks - in Robot configuration
Here is a video from back in early build, where I first tested out the track.  The track is using two white gears that are from the recycled printer. I went on to recreate these and printing a duplicate set for the second track.  This involved counting the teeth and height and angle of the gears.  Here is a video from my YouTube channel:



As you can see from the video, it is very energetic with 12v of "shore" (mains plug) power. It was running all around my desk, especially as it had no frame besides for the track unit itself - as designed!! ;)

I have since added the Chassis frame consisting of modular units:  a battery bay, a controller bay, and the initial sensor platform.  The robot is fitted out with a tallent cell 12v/5v battery, Raspberry Pi, L298N motor driver, Logitech 920C camera, and USB speakers.



If you would like to drive the robot remotely...  !!  go to LetsRobot.tv and it might be available.  I try to put it online using my TotallyNotEvilRobotArmy stream on LetsRobot.tv.  You can find it here:  TNE-RobotArmy WildWeasel

LetsRobot.tv controls for Wild Weasel (type in chat to speak

Ready to go!
Wild Weasel in LetsRobot Configuration (with lance!)
Learnings and Next Steps:

After some time spent with users operating the Wild Weasel on LetsRobot.tv, there are some learnings. LR is a great way to test out design, the robot gets a lot of (sometimes hard) use.  

  • My clever design for locking the module connections does not work.  the 3D printed pin and loops shear off under force. a better solution is to use metal nails perhaps.
  • One of the motor stalls much earlier than the other. This may be due to low power from the battery. I will test this further.  The impact is that the robot will not drive straight
  • The MQTT client is reading duplicate values sent from the streaming site. I will update the code to ignore long strings of the same command.
  • Need a better override at the MQTT level. perhaps a second command channel that will allow me to flush the stream from the other channels.


Anti-Collision detection
Most important, I will be adding an Anti-collision code to the motor controller. I will be using an HC-SR04 ultrasonic distance sensor to determine if the robot is against a wall or other object. I believe the best interface will be just to ignore commands that would try to continue to drive into the obstacle.  more details on this to come.



Sunday, December 23, 2018

Robot Arcade - LetsRobot.tv

I am creating a "Robot Arcade" on LetsRobot.tv as a holiday project!  You can visit the site LIVE here:


Robot Arcade - LetsRobot.tv
It is a work in progress, but works well to get all of the robot fantasy out of your head.  I am building this "robot" with mostly parts from recycled printers and some 3D printed parts.  It is using an L298N as the motor controller.  All driven by a Raspberry Pi that is streaming video and controls between it and the LetsRobot.tv servers. I will be using MQTT to pipe commands from the server to various computers controlling the scene.

In the first boot strap days, it was 'challenged' by the 'internet' robot operators.  my motors were not secured and were dancing around the scene.  Actually somewhat fun.  Today I put together this motor mount design and will be using it to build out the Arcade.

3D CAD designed to be a motor mount

I don't quite know what I will do with this yet, but I would like it to be some form of a remote robot - 'game of skill'.  it is fun to see some form of a battle or skill challenge performed by the remote operators.

I am open to suggestions for game ideas!  :)

Friday, November 23, 2018

TNERA now Robocasting on Letsrobot.tv

The Totally Not Evil Robot Army is now on LetsRobot.tv

you can now drive one of the robot, or many other enthusiast robots through the robot streaming system.




I have converted the original RC Cart Robot - Polybot, to be on LetsRobot.tv.

Polybot


check out the site (Polybot on LetsRobot.tv) and if the robot is streaming you can control it.

Friday, June 1, 2018

Hello World!

"Hello World" is the ubiquitous start to all things technical! It is the classic program that beginners write to understand what the most 'basic' program is. For the maker working with physical computing, "Blinky light" is stated as the "Hello World" equivalent. Now that we have makers by the droves jumping into Robotics and Mechatronics, what would be the bench mark for "Hello World"? Perhaps, it should be the ever popular "RC Car with Camera Rover".

Here is my "Hello World!" in Robotics.  "Polybot" - the Rover:



It is comprised of fairly standard components for this type of build:
  • Chassis of an old RC car. Removed all of the existing controller components. Kept the physical chassis, wheels, struts, drive motor, steering motor, and awesome bumper.
  • Raspberry PI for the brains.  Command, control, communications, video, etc.
  • Off-the-Shelf USB webcam
  • Double H-Bridge for motor control
  • Portable power: 4XAA battery pack for the motors, USB Power bank for the RPI
  • 3D printed frame to attach the RPI, Camera, and stow away the power bank
For hardware, this is a pretty basic set up. It does not get much simpler. One of the challenges for a beginner is how power is managed. In this case, by having a separate power source for the motors, separate from the RPI, solves the issue of having to use a Buck Converter to reduce the voltage for the RPI.

Of course, its the control of the Rover that makes it a Robot vs. a RC car. I used Python as the base language to set up the code to drive my Rover.  Python's control of the GPIO of the PI is simple enough to control the car. The drive software takes a simple command of forward/reverse, left/right/straight combinations. 

To add my own twist to the Polybot Rover, I decided to use MQTT as a protocol to communicate with the Rover and provide it with commands. This would allow me to create different clients that can provide the command signals to the rover.  By nature that would mean that the rover could be controlled by humans - or a massive Totally Not Evil Robot Army Controller, mewha ha ha. But, I digress.



To use MQTT, I created a 'Base Station' that hosted a Mosquito Broker. The Rover's command software is a MQTT Listener written in Python. And I wrote a Flask Web App, that uses Socket IO and MQTT Client to input the commands and publish them to the broker. 

The Flask, Socket IO, and MQTT are all Python libraries and easy to program. The interface used a simple 6 quadrant set of buttons for Left Forward, Forward, Right Forward, Left Reverse, Reverse, and Right Reverse. It also contained an input field to designate the 'distance/time' to be traveling. The MQTT messages were a very simple LF3 - Left Forward Three, command protocol.

One advantage of using Flask for the Web App is that it is immediately viable for use on a mobile device. The device just needs to be on the same Wifi Network as the Rover, and then connect to the Web App.



Web cam streaming, was provided by using FFMPEG to capture video from the camera and pipe it to stdout. This allows for the ability to create a lifestream on YouTube. This streaming ability has a significant lag, but it really cool to see your Rover on YouTube.  Cool, but not quite FPV! :)

The best part of doing a "Hello World" is that is gets you actually started 'doing it'!  Once you get comfortable with the very most basic, then you can start making your really cool ideas become reality.

There are lots of ways to take the Polybot Rover forward.
  • Add better portable power, with more energy for the motors
  • integrated streaming on the Web App
  • Status messages, Sensor feedback
  • Commands, servos, and actuators on the Rover.  Grippers!!
  • Autonomous control, AI
  • make 10k more rovers, and create a Totally Not Evil Robot Army (ma haha)!!
its only limited by imagination! :)