This page (revision-27) was last changed on 2021-08-30 01:49 by Murray Altheim

This page was created on 2019-12-23 11:18 by Murray Altheim

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
27 2021-08-30 01:49 8 KB Murray Altheim to previous
26 2021-08-30 01:47 8 KB Murray Altheim to previous | to last
25 2021-04-17 10:32 6 KB Murray Altheim to previous | to last
24 2020-03-01 01:03 6 KB Murray Altheim to previous | to last
23 2020-03-01 01:02 6 KB Murray Altheim to previous | to last
22 2020-02-29 04:06 5 KB Murray Altheim to previous | to last
21 2020-02-29 03:49 5 KB Murray Altheim to previous | to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 3 changed one line
The __KR01__ Robot is a [small robot|RobotWeightClasses] inspired by David P. Anderson's [SR04] robot. There's a series of articles describing this robot on the NZPRG blog, see ''[The KR01 Robot Project|https://robots.org.nz/2019/12/08/kr01/]''.
[{Image src='attach/KR01/on-the-bench-thumb.jpg' link='attach/KR01/on-the-bench.jpg' caption='Testing KR01 on the Bench (click to enlarge)' align='right' class='imgFloatRight'}]
At line 5 changed one line
The cost of this robot is likely to be higher than appropriate for the NZPRG, so [I'm|Murray] also designing several other lower-cost [robot prototypes].
The __KR01__ Robot is a [small robot|RobotWeightClasses] inspired by David P. Anderson's [SR04] robot. There's a series of articles describing the KR01 robot on the NZPRG blog, see ''[The KR01 Robot Project|https://robots.org.nz/2019/12/08/kr01/]''.
At line 7 added one line
The cost of this robot is likely too high to be considered as a prototype for the NZPRG (though it'd be possible to reduce costs, see below), so [I'm|Murray] also designing several other lower-cost [robot prototypes].
At line 9 added 2 lines
(you can click to enlarge images on this page)
At line 10 changed one line
This is modeled upon David Anderson's [SR04] robot:
[{Image src='attach/KR01/early-chassis-rear-thumb.jpg' link='attach/KR01/early-chassis-rear.jpg' caption='KR01 Chassis - Rear View' align='right' class='imgFloatRight'}]
At line 15 added 2 lines
The following requirements are modeled upon David Anderson's [SR04] robot:
At line 20 added one line
# to investigate, test and use the latest in sensor technology in order to develop more complex behaviours
At line 16 changed one line
Additionally, it is meant to explore [Murray's Thesis|MurraysThesis].
A fourth item has been added to David's list, as it's been almost twenty years since his SR04 was built and the hobbiest market for sensors has exploded, from postage stamp sized LiDAR distance sensors (that return values in millimeters) to AI-backed camera-as-sensor products (that can recognise objects, colors, QR codes, etc.), all well under $100. This was not possible even five years ago.
At line 24 added one line
Additionally, it is meant to explore [Murray's Thesis|MurraysThesis], which requires the development of a multi-threaded Python robot controller that includes a PID Controller, ultrasonic , LiDAR, IR and bumper sensor behaviours. ''Can it somehow learn?''
At line 26 added one line
At line 21 changed one line
[{Image src='attach/KR01/MiniTFT-1-thumb.jpg' link='attach/KR01/MiniTFT-1.jpg' caption='Mini TFT Display' align='right' class='imgFloatRight'}]
[{Image src='attach/KR01/MiniTFT-1-thumb.jpg' link='attach/KR01/MiniTFT-1.jpg' caption='Mini TFT Display on the KR01' align='right' class='imgFloatRight'}]
At line 23 changed 2 lines
* OSEPP Tank Kit chassis with either silicon tank treads or four silicon tires
* four OSEPP 9.0 volt 185 RPM motors with 1:45 gear ratio
* Raspberry Pi 3 B+
* modified OSEPP Tank Kit chassis with either silicon tank treads or four silicon tires
* four OSEPP 9.0 volt 185 RPM motors with 1:45 gear ratio and hall effect motor encoders
* uses a PiBorg ''[Thunderborg|https://www.piborg.org/motor-control-1135/thunderborg] Dual 5A Motor Controller with DC/DC & RGB LED'' for its motor controller
* three front infrared sensors
* front bumper with polycarbonate plastic bumper with three-way subminiature lever switches
* infrared motion detector
* microwave motion detector (goes through walls)
* time of flight laser distance sensor (up to 4m with 25mm accuracy)
* ICM20948 9DoF Motion Sensor, including 3 axis accelerometer, 3-axis gyroscope, 3-axis compass
* [Pixy2|https://pixycam.com/pixy2/] Object Recognition Camera (camera-as-sensor)
At line 43 added one line
!! Sensors
At line 45 added 58 lines
! Basic Obstacle Avoidance Sensors
[{Image src='attach/KR01/kr01-ir-plan-1.jpg' link='attach/KR01/kr01-ir-plan-1.jpg' caption='Mini TFT Display on the KR01' align='right' width='400' class='imgFloatRight'}]
The KR01 robot has __port__, __center__ and __starboard__ bumpers. (bumpers will be defined in a different and as-yet unspecified ''Behaviour'').
It also has __port-side__, __port__ (oblique), __center__, __starboard__ (oblique), and __starboard-side__ analog infrared sensors (Sharp GP2Y0A60SZLF 10-150cm), each with a range of about 1.5 meters. The side sensors face forward at 45° (rather than 90°, as per recommendations from the DPRG), the oblique sensors are 25° off center.
! Behaviour Plan
* The __Roam__ Behaviour uses the center IR and will slow the robot down beginning from 100% target velocity at 50cm to a full stop at 25cm. This adds a lambda function to both motor controllers to limit the top speed as a function of distance. Currently there is no recovery from the full stop, i.e., once stopped some other undefined behaviour will need to be triggered to back up or otherwise avoid the obstacle).
* The __Avoid__ (maybe "Swerve") Behaviour will add a lambda function to both motors that will progressively alter the steering (difference between the motors) as a function of distance based on the distance and difference of the port and starboard oblique sensors.
* The side infrareds have two modes: __Wall Follow__ or __Avoid Side__. In __Wall Follow__ mode it will attempt to keep the robot at a fixed distance from a perceived wall on either side. In __Avoid Side__ mode it will act similarly to the oblique sensors and attempt to push the robot away from the wall (likely at a greater distance than when in Line Follow mode), with the amount of push inversely proportional to distance.
! Current Weight
* __chassis__ (including motor controller, SSD, motors, and bumper assembly): 1.4kg
* __main board__ (including Raspberry Pi and all upper sensors): 400g
* __battery__:
** Makita 18V 3.0Ah: 730g
** Makita 18V 1.5Ah: 475g
** Makita 12V 1.5Ah: 210g
** Makita ADP05 clip: 125g (for use with 18V batteries)
Typical weight with 18V 3Ah battery: 2.6kg
!! Chassis
[{Image src='attach/KR01/KR01-chassis-0177-thumb.jpg' link='attach/KR01/KR01-chassis-0177.jpg' caption='Latest Iteration of the Chassis' align='right' class='imgFloatRight'}]
The chassis uses the __OSEPP Tank Kit__ as its basis, using an additional pack of beams and an additional pair of motors. The weight of the robot precludes using the tank treads so it uses four of the black silicon tires instead.
The chassis currently uses a Pimoroni ''[HT0740 40V / 10A Switch Breakout|https://shop.pimoroni.com/products/ht0740-breakout]'' to control power to the sensors, so that the robot can go into a "low power" mode. There is a manual bypass switch in order to use the sensors without the 10A switch control.
The bumper assembly mounts to the front of the chassis, and includes six subminiature lever switches (wired as three), to detect port, center and starboard bumps. It also has three 15cm infrared sensors that look through the polycarbonate plastic of the bumper. The center sensor is slightly offset (as it tends to see itself in the mirror and just stays on).
The aft board is a Adafruit Perma Proto Bonnet, a PC board designed to fit on top of a Raspberry Pi Zero, here repurposed to provide dual header pins to provide connections to the upper board (see [KR 01 Wiring Notes]).
! Minimal Option
The KR01 has a lot of features, a lot of experimental features, and therefore costs. The current expenditures, which includes sensors, components and hardware that may possibly not even get used (hey! it's an ''experiment''), is well over
NZ$1000. But a lot of those experiments proved essential for the robot's operation, and many of them aren't even currently mounted on the robot. Some were ideas that didn't pan out, or ideas that might be re-mounted on the robot sometime in the future.
If you wanted to get started on a lower budget you could begin with the basic OSEPP Tank Kit, some kind of [robot controller] (an Arduino, Raspberry Pi, whatever), a [motor controller] (RobotShop has some dual motor controllers starting under US$5, with many on the [market|Vendors]), and power the robot using a commonly-available USB battery. With a mechanical bumper made from lever switches it'd be possible to build this for under NZ$200.
Here's a start for around NZ$170:
* [OSEPP Tank Kit|https://www.robotshop.com/en/tank-robot-platform-kit.html] : US$100 (RobotShop)
* [Raspberry Pi Zero W|https://www.adafruit.com/product/3400] : US$10, AdaFruit
* [Maker Drive H-Bridge Motor Driver for Beginner| https://www.robotshop.com/en/maker-drive-h-bridge-motor-driver-beginner.html] : US$3.73 (RobotShop)
...you'd still need to add a battery, some sensors and miscellaneous parts. And of course, don't forget to include shipping costs in your budget!