Very good! Question please: I am disabled, creating smart mower(small push mower). In you obstacle avoidance, each pass in mowing, the same obstacle will be seen in different positions per pass-by. Can you work out that “capability” in route decision? (Mostly). How close will your robot car pass by the OBSTACLE? I FIGURE, ADDITIONAL SENSORS ON SIDES LOOKING FORWARD COULD HELP ROBOT CALCULATE CORRECT PASSING PATH TO (CLEAR ROBOT FROM BUMPING OBSTACLE IN PASSING BY “VERY CLOSELY”. IN ORDER TO MOW GRASS EFFICIENTLY. 2ND ROBOT FOR DISABILITY IS AN ARM (RUNNING ONA RAIL IN CEILING ALONG FRONT EDGE OF WORK TABLE). BEHIND TABLE A LARGE PEG BOARD WITH ALL GROUPED VARIOUS TYPE TOOLS. I FIGURED SECTIONING OFF PEG BOARD BY TYPES OF TOOLS, THEN POSITION LABEL EACH TOOL IN SECTION, (WOULD ALLOW VOICE COMMAND. OF “SECTION THEN TOOL POSITION” TO RETRIEVE THAT SPECIFIC TOOL. SENSORS TO AVOID HITTING ME/LOCATING ME TO HAND TOOL TO ME (CLOSE BY GIVEN AREA). I CAN CALL ARM, PLACE TOOL IN IT’S HAND AND SPEAK (TO PUT BACK TOOL BY SECTION AND LOCATION). TOOLS CAN BE VERY SMALL PIECES TO CARVE WOOD (BITS), SOCKETS FOR WORKING ON MOTORS, WRENCHES, MANY DRILL BITS, PLIERS, HAMMERS , ETC. . WHAT DO YOU THINK? IS THERE A COLLEGE WILLING TO PARTNER WITH ME TO MAKE SUCH ITEMS ((((TO HELP DISABLED))).? SMART DEVICES TODAY ARE GENERATION 1 MOSTLY. WE HAVE CAPABILITY TO CREATE GENERATION 3 OR 4 I FEEL! I ALSO DISCOVERED VERY INEXPENSIVE ITEMS READILY AVAILABLE TO KEEP COST AT MINIMUM! HELP ME ENGAGE COLLEGES FOR PROJECTS FOR HUMANITY!
You’re project sounds amazing!! Forgive me though, I couldn’t possibly answer all of your questions sufficiently in comment form here. The whole obstacle avoidance question is actually something I’m working on figuring out myself. Your project is very complex, so I encourage you to break it down into smaller sections to build and prove it as you go. Take a look at my Lego robot videos for an example of this. I’m also still working on developing an obstacle avoidance algorithm for it as well so you can see how I started with a simple version of it. Best of luck on your project!
I hadn't had much luck with Zynq, had gotten an AVnet Ultra96 board at one point (second hand), couldn't figure out how to make it boot or do much of anything, kinda gave up on it... Had used the Nexys A7 (XC7A100T) for a while, then got a QMTech XC7A200T board, and had better results with these. Had also before built a robot at one point (many years ago), but it was effectively a cardboard box with cordless drill motors, and some hand-wired H-Bridge drivers and some 3D printed parts. It was running on a RasPi, with a cheap webcam for "vision". It was using a sort of differential drive system (two main drive wheels and some idle wheels). Had felt half-tempted to try to build another robot... But, not really sure if I have the time/motivation to do so. Might want to build it out of higher quality materials this time (significantly less cardboard and hot glue). Maybe use mecanum wheels or similar (and could maybe machine some amount of parts out of aluminum or similar). Had implemented a CPU for a 3-wide VLIW ISA on an FPGA, which runs at 50MHz (basically, a hobby ISA project I had called BJX2). Also wrote a C compiler and emulator and similar as well. It can basically execute up to 3 instructions per clock-cycle, and had 64x 64-bit registers (can also be used in pairs for 128-bit SIMD ops). The thing can also execute 4-wide FP-SIMD ops with a 3L/1T timing, so can pull off up to a theoretical limit of 200 MFLOP/sec per core. It seems to do "reasonably OK" at running neural nets that have been compiled into a long series of SIMD ops, so it seems maybe worth testing (had written my own tools for training the nets and converting them into a large blob of ASM for my ISA). Trying to use this for running a robot seems at least sorta tempting...
I know the pain too. Got an Ultra96v2 board 3 years ago to try out some AI but couldn't get it to bootup. The learning curve of Xilinx stuff is so stiff & took so much time is basically a wall for newbie engineers. Working as an FAE for Xilinx at a distributor help me growing a lot. But lots of work is needed to make this FPGA things to become more popular
Nice project. Question: For best utilization of the ZynqMPSoC on this kit, which do you prefer between letting PL handling all motor driving/sensor reading or letting the Cortex R5 doing it? If one these is use for that purpose, then how about the other? What good use can I make out of the rest resources?
As far as setting the GPIO, have you attempted setting udev rules for them? It looks like you should be able to add the /etc/udev/rules.d/99-gpio.rules with the following rules: SUBSYSTEM=="bcm2835-gpiomem", KERNEL=="gpiomem", GROUP="gpio", MODE="0660" SUBSYSTEM=="gpio", KERNEL=="gpiochip*", ACTION=="add", RUN+="/bin/sh -c 'chown root:gpio /sys/class/gpio/export /sys/class/gpio/unexport ; chmod 220 /sys/class/gpio/export /sys/class/gpio/unexport'" SUBSYSTEM=="gpio", KERNEL=="gpio*", ACTION=="add", RUN+="/bin/chown root:gpio /sys%p/active_low /sys%p/edge /sys%p/direction /sys%p/value", RUN+="/bin/chmod 660 /sys%p/active_low /sys%p/edge /sys%p/direction /sys%p/value" unix.stackexchange.com/questions/42122/set-gpio-permissions-cleanly
Well done! I absolutely love your style of making videos. 😊
Diligent no longer sells HB3... Do you recommend the DHB1?
Really cool project
Love this and the build video. Keep it up!
Very good! Question please:
I am disabled, creating smart mower(small push mower). In you obstacle avoidance, each pass in mowing, the same obstacle will be seen in different positions per pass-by. Can you work out that “capability” in route decision? (Mostly). How close will your robot car pass by the OBSTACLE?
I FIGURE, ADDITIONAL SENSORS ON SIDES LOOKING FORWARD COULD HELP ROBOT CALCULATE CORRECT PASSING PATH TO (CLEAR ROBOT FROM BUMPING OBSTACLE IN PASSING BY “VERY CLOSELY”. IN ORDER TO MOW GRASS EFFICIENTLY.
2ND ROBOT FOR DISABILITY IS AN ARM (RUNNING ONA RAIL IN CEILING ALONG FRONT EDGE OF WORK TABLE).
BEHIND TABLE A LARGE PEG BOARD WITH ALL GROUPED VARIOUS TYPE TOOLS. I FIGURED SECTIONING OFF PEG BOARD BY TYPES OF TOOLS, THEN POSITION LABEL EACH TOOL IN SECTION, (WOULD ALLOW VOICE COMMAND. OF “SECTION THEN TOOL POSITION” TO RETRIEVE THAT SPECIFIC TOOL.
SENSORS TO AVOID HITTING ME/LOCATING ME TO HAND TOOL TO ME (CLOSE BY GIVEN AREA).
I CAN CALL ARM, PLACE TOOL IN IT’S HAND AND SPEAK (TO PUT BACK TOOL BY SECTION AND LOCATION).
TOOLS CAN BE VERY SMALL PIECES TO CARVE WOOD (BITS), SOCKETS FOR WORKING ON MOTORS, WRENCHES, MANY DRILL BITS, PLIERS, HAMMERS , ETC. .
WHAT DO YOU THINK?
IS THERE A COLLEGE WILLING TO PARTNER WITH ME TO MAKE SUCH ITEMS ((((TO HELP DISABLED))).?
SMART DEVICES TODAY ARE GENERATION 1 MOSTLY. WE HAVE CAPABILITY TO CREATE GENERATION 3 OR 4 I FEEL!
I ALSO DISCOVERED VERY INEXPENSIVE ITEMS READILY AVAILABLE TO KEEP COST AT MINIMUM!
HELP ME ENGAGE COLLEGES FOR PROJECTS FOR HUMANITY!
You’re project sounds amazing!!
Forgive me though, I couldn’t possibly answer all of your questions sufficiently in comment form here. The whole obstacle avoidance question is actually something I’m working on figuring out myself.
Your project is very complex, so I encourage you to break it down into smaller sections to build and prove it as you go. Take a look at my Lego robot videos for an example of this. I’m also still working on developing an obstacle avoidance algorithm for it as well so you can see how I started with a simple version of it.
Best of luck on your project!
I hadn't had much luck with Zynq, had gotten an AVnet Ultra96 board at one point (second hand), couldn't figure out how to make it boot or do much of anything, kinda gave up on it...
Had used the Nexys A7 (XC7A100T) for a while, then got a QMTech XC7A200T board, and had better results with these.
Had also before built a robot at one point (many years ago), but it was effectively a cardboard box with cordless drill motors, and some hand-wired H-Bridge drivers and some 3D printed parts. It was running on a RasPi, with a cheap webcam for "vision". It was using a sort of differential drive system (two main drive wheels and some idle wheels).
Had felt half-tempted to try to build another robot... But, not really sure if I have the time/motivation to do so. Might want to build it out of higher quality materials this time (significantly less cardboard and hot glue). Maybe use mecanum wheels or similar (and could maybe machine some amount of parts out of aluminum or similar).
Had implemented a CPU for a 3-wide VLIW ISA on an FPGA, which runs at 50MHz (basically, a hobby ISA project I had called BJX2). Also wrote a C compiler and emulator and similar as well.
It can basically execute up to 3 instructions per clock-cycle, and had 64x 64-bit registers (can also be used in pairs for 128-bit SIMD ops).
The thing can also execute 4-wide FP-SIMD ops with a 3L/1T timing, so can pull off up to a theoretical limit of 200 MFLOP/sec per core.
It seems to do "reasonably OK" at running neural nets that have been compiled into a long series of SIMD ops, so it seems maybe worth testing (had written my own tools for training the nets and converting them into a large blob of ASM for my ISA).
Trying to use this for running a robot seems at least sorta tempting...
I know the pain too. Got an Ultra96v2 board 3 years ago to try out some AI but couldn't get it to bootup. The learning curve of Xilinx stuff is so stiff & took so much time is basically a wall for newbie engineers. Working as an FAE for Xilinx at a distributor help me growing a lot. But lots of work is needed to make this FPGA things to become more popular
Very cool!!! Have you looked at AMS AS5047 or AS5048 magnetic rotary encoders?
Nice project.
Question: For best utilization of the ZynqMPSoC on this kit, which do you prefer between letting PL handling all motor driving/sensor reading or letting the Cortex R5 doing it? If one these is use for that purpose, then how about the other? What good use can I make out of the rest resources?
As far as setting the GPIO, have you attempted setting udev rules for them? It looks like you should be able to add the /etc/udev/rules.d/99-gpio.rules with the following rules:
SUBSYSTEM=="bcm2835-gpiomem", KERNEL=="gpiomem", GROUP="gpio", MODE="0660"
SUBSYSTEM=="gpio", KERNEL=="gpiochip*", ACTION=="add", RUN+="/bin/sh -c 'chown root:gpio /sys/class/gpio/export /sys/class/gpio/unexport ; chmod 220 /sys/class/gpio/export /sys/class/gpio/unexport'"
SUBSYSTEM=="gpio", KERNEL=="gpio*", ACTION=="add", RUN+="/bin/chown root:gpio /sys%p/active_low /sys%p/edge /sys%p/direction /sys%p/value", RUN+="/bin/chmod 660 /sys%p/active_low /sys%p/edge /sys%p/direction /sys%p/value"
unix.stackexchange.com/questions/42122/set-gpio-permissions-cleanly