MarIOnette: Control Robots Inside Blender

Sdílet
Vložit
  • čas přidán 10. 04. 2023
  • Thank you so much for watching!
    Here is the official project page: github.com/knee-koh/MarIOnette
    Other projects featured in the video:
    Piro - tinyurl.com/yc88kujc
    Alpha Training Blue - • Jurassic World Alpha T...
    More of my work:
    www.nikovladimirov.com
    kneeekoh
    Special thanks to:
    Arduino - www.arduino.cc/
    Blender Foundation - www.blender.org
    Neil Boyer- www.linkedin.com/in/neal-boyer/
    IDEO - www.ideo.com
    Playlab - ideotoys
    Peter Slattery - greensleevless and www.peter-slattery.com
    Andrew Stewart - grundle_head
    Music Used:
    C2C - The Cell

Komentáře • 58

  • @Nekotico
    @Nekotico Před 10 měsíci +9

    This is exactly what I was looking for, if a sd card can play the animation, then I can program something on Arduino to run a specific animation with a controller, this has endless potential

    • @knee-koh
      @knee-koh  Před 8 měsíci +6

      Hi, there's a new version of MarIOnette that supports local SD card playback! Check the github for the latest release, and be on the lookout in the coming weeks for another tutorial video that will cover this feature in more detail.

    • @mioszkolenda9777
      @mioszkolenda9777 Před 4 měsíci +1

      @@knee-koh I am looking forward next tutorials! :) You made awesome thing

  • @LOC-Ness
    @LOC-Ness Před 6 dny

    glad to see someone's already made this

  • @VesuviusAntaria
    @VesuviusAntaria Před rokem +10

    Thank you very much for creating this add-on for Blender. 👍
    This offers new possibilities. In the past, this was easy to do in Blender. But then they changed the API, making it no longer possible.

  • @victorespada_
    @victorespada_ Před rokem +5

    This is extremely promising, thx for this

  • @Najebanski
    @Najebanski Před rokem +4

    That's super cool. I would have never thought this was possible

  • @BadPractices
    @BadPractices Před rokem +1

    This video is exactly what I needed. Thank you for makin this.
    Also, your video quality is exceptional relative to your subscriber count. I have no doubt that you will surely rise to the top and I’d like to mark my spot as the 538th subscriber!

  • @adrianram5524
    @adrianram5524 Před rokem +1

    I'm now....officially ....a blender addict ... that is WAY cool !

  • @purplepenguin2947
    @purplepenguin2947 Před rokem +5

    OMG this is really cool!!🎉🎉🎉

  • @badejoolatuiyi1365
    @badejoolatuiyi1365 Před rokem +1

    amazing , thank you for this.

  • @martenj94
    @martenj94 Před 8 měsíci

    I’ve been thinking about this stuff for years and how I could get blender and arduino to talk in a streamluned way. Can’t wait to test this out!

  • @Brainwizard.2
    @Brainwizard.2 Před rokem +2

    So it has started..
    I love it!!!!!

  • @ckat609
    @ckat609 Před 11 měsíci

    Woah! This is insane!

  • @chairulhalim4447
    @chairulhalim4447 Před rokem +1

    Interesting one for robotic lab project

  • @davonraymond3274
    @davonraymond3274 Před 8 měsíci

    Bro thanks alot this is awesome stuff

  • @swannschilling474
    @swannschilling474 Před 7 měsíci

    This is great!!!! 😍

  • @Ducerobot
    @Ducerobot Před rokem

    Dude this is cool . I'm definatly using it😁👍

  • @dts_user1389
    @dts_user1389 Před 3 měsíci

    Man, I might be able to use this at my job. I work in robotic thermal spray application for gas turbine components...
    Currently, I have not been able to find any programming tool out there that has the set of features I need, so I am looking to build it myself.
    If this works out, I will get my company to drop some big money on you. 😁
    (I'm still trying to lay out the groundwork for this project, so it's only at the stage of lip service rn. But I'ma get there!!!)

  • @mech2159
    @mech2159 Před rokem

    What i needed to see

  • @simonjames732
    @simonjames732 Před 5 měsíci +1

    Hi would this be compatible with a pca9685 module so I could add many servos to that and not clutter the io of the Arduino? The drawing arm worked fine when I tested it and is great as I'm an avid blender user thanks for making it as I've been looking for a way to use blender for creating an animation over to my animatronic project and now I can it seems.
    Where you mention you can render out animation do you mean store it to be referred to by the loop?

  • @klepto2902
    @klepto2902 Před 10 měsíci +1

    Thank you for making this awesome add-on just what I needed!! We are using a Rpi 3B+ to control a humanoid with 17 servo motors.. Will let you know if this works... FingersCrossed.

  • @MUKHTAR_THE_DREEMER
    @MUKHTAR_THE_DREEMER Před 9 měsíci

    amazing

  • @yannhuang6996
    @yannhuang6996 Před rokem +1

    wowww super useful

  • @jordanhenshaw
    @jordanhenshaw Před 8 měsíci +1

    I'm working on a similar add-on for technical theatre. Question: have you had any difficulty with jerkiness when the motors receive the f-curve data? Any unexpected vibrations, overheating, or other bizarre interpolation anomalies?

    • @knee-koh
      @knee-koh  Před 8 měsíci

      I haven't noticed anything like this in my tests. Blender does start to slow down a little (depending on your machine) once you add in lots of motors and LEDs, but still within reasonable limits (I've tested ~60 unique values at 45fps on an M1 macbook pro).
      Things like USB bus speed can affect jerkiness if the receiving microcontroller doesn't have a large enough buffer to read in all the motor values quickly enough (so some might get dropped). Power requirements are also really important: making sure all your grounds are connected, and the motors are receiving enough power so they don't draw too much load that might brown-out your main controller. Finally, motor resolution can affect smoothness; I've used really cheap rc servos in the past that had a small range, so moving between two values (say 101 and 102) visually looked like the motor moved a few degrees.
      It's hard to say what's causing the anomalies without seeing how things are set up IRL, but hopefully some of the above can help!

  • @anonymousyoutube7259
    @anonymousyoutube7259 Před rokem

    Thank you.

  • @sethitsseth
    @sethitsseth Před rokem

    Badass!

  • @__yusuf__
    @__yusuf__ Před 8 měsíci +2

    This is awesome, good work, thanks a lot :) May I ask, how can we put animations to SD cart and trigger them in our own codes? Is there a tutorial? Because I want to create animations and trigger them in my custom codes. Thanks again! Best Add-on to Blender in my opinion.

    • @knee-koh
      @knee-koh  Před 8 měsíci

      Tutorial coming soon! The 1.0.3 build of MarIOnette supports this feature. You save the animation to your hard drive, transfer to an SD card, and then trigger it in the Arduino code. The latest .ino Arduino file in the github has some commented code on lines 167-177 that shows an example of how to load in an animation.

    • @__yusuf__
      @__yusuf__ Před 8 měsíci

      @@knee-koh Thanks! I will look at arduino code. If I knew before I could understand how to do it without a tutorial lol :) One of the best features imo! Its good we will have an tutorial too! Good luck!

  • @hankb7725
    @hankb7725 Před 4 měsíci

    Are you planning to add support for saving the movement instructions from blender to the Arduino? It would be great if the animation created in blender can be triggered on demand directly from your robot with a button or some other trigger without having it to stay attached to the computer.

  • @erreib
    @erreib Před rokem +3

    Looks great! Are the design and instructions for the spider bot project project available online? Thanks

  • @happyloper
    @happyloper Před rokem

    great! I have a question. What is the difference with ros moveit?

    • @knee-koh
      @knee-koh  Před rokem

      This runs inside Blender, so CG artists or people familiar with the software can leverage its many animation and other tools to drive animatronics. I have never used Ros Moveit, so I cannot speak to the exact differences, but it looks like it's more specifically oriented towards factory and industrial robotics.

  • @mikealbert728
    @mikealbert728 Před rokem +1

    Very cool. I am curious. Can this work in reverse? Can it be setup to manipulate the real world device and make the 3d model move in Blender?

    • @VesuviusAntaria
      @VesuviusAntaria Před rokem

      That is also possible that you can do that with Blender. czcams.com/video/bS2h98qkiQQ/video.html

    • @knee-koh
      @knee-koh  Před rokem +1

      It does, but it's a feature that is still in development: github.com/knee-koh/MarIOnette/blob/main/Media/Gifs/ElmoInput1.gif. Currently the Blender viewport has some latency in regards to the input. I will likely store the inputs locally on the microcontroller and then push the animation frame-by-frame to Blender in order to get frame-perfect captures.

  • @mysticalsoulqc
    @mysticalsoulqc Před rokem

    wow, you did it! Bravo, this is the future to create self-sustaining 3d printed houses and all the rest for the people by the people! I made open-source giants 3 printers 9 feet by 14 feet prints for less than 1000$ can you animate it? for the people? or how much would you charge?

    • @knee-koh
      @knee-koh  Před 8 měsíci

      I think MarIOnette could animate it, assuming you are running stepper motors on the printer. If you want your machine to print real objects, a slicer that will output g-code will likely be more efficient and useful.

  • @benploughman4145
    @benploughman4145 Před 8 měsíci +1

    When I export an animation, the file seems to not have any extension and the contents look like some kind of encryption. What am I doing wrong?

    • @knee-koh
      @knee-koh  Před 8 měsíci +1

      Hi, this is normal behavior! I'm working on a tutorial to go over more features, but here's a short overview until then:
      - First, make sure the "Enable SD Card" box is ticked, so the Arduino knows what to read from. If you're using a standalone SD reader module, uncheck "use internal SD card" and select the CS pin number
      - I would definitely recommend checking the "write cache header line" box, because the Arduino uses that line to figure out the fps and number of frames in an animation
      - Cache the animation and save it to your computer, then transfer it to the SD card and insert it into your microcontroller
      - Sync the configuration (in MarIOnette sync panel) and update the code to the microcontroller so it loads in the SD library
      - To play back a file, you can uncomment lines 167-177 in the MarIonette_Template_V1.ino code to see how to begin playback. The animation will run (assuming it's found on the SD card) and end automatically. You can track progress by monitoring the microcontroller over Serial
      As for the encryption you mentioned, this is also normal. In order to save processing time and space, each value is stored as two bytes that get combined into a 16-bit integer. The bytes look like gibberish in plaintext because they are being stored as ASCII values. The only thing that is readable is the aforementioned header line, since it only gets read in at the beginning of playback. As for the extension, that's also normal to not have an extension. Since there are certain bytes that signal end of file for .txt filetypes, I chose to make the animation files extension-less, since all of the operating systems and microcontrollers I tested this on are able to open and read from them without the end of file byte problem.

    • @benploughman4145
      @benploughman4145 Před 8 měsíci +1

      Thanks so much for the detailed reply and talking me through the procedure! I'm eagerly looking forward to your next tutorial.
      As for my other comment on the other video, thanks for following up on that as well. I ended up going another direction that got me to a place I needed to be. However, I am starting to work with Dynamixels and definitely want to shift back to Marionette for that.
      I updated from 1.0.2 to 1.0.3 yesterday after I sent this message and was glad to see the new SD card options. this is going to come in very handy. I did however have some trouble when I attempted to Cache the animation in the SpidahBahtV1 sample file. When I would press "Cache File" it would read that it's "Writing file" show the "Percentage done" hang on 0% with no file created. Could there be some conflict with that particular file? I also noticed that in the code for the add-on that Dynamixel was commented out for the dropdown selection. it seemed to default to LewanSoul for the actuator selection. was that intentional?

    • @knee-koh
      @knee-koh  Před 8 měsíci

      @@benploughman4145 great catch on the SpidahBaht example! It looks like the mapping on that bone is a little off, causing it to output negative values. For that specific example, you can set Servo 2 in the Actuator Setup panel to have a Min bone angle of -180 and Max bone angle of 180, just to get the caching to work. I'll work on fixing this bug to make sure negative values get clamped to 0 to prevent this from happening in the future.
      A quick tip on debugging errors: if you go to the scripting tab in Blender, you should see a red error in the bottom left showing what MarIOnette is angry about. When I'm in a rush I just tweak values until the error go away XD
      Dynamixels are the last thing on my list of things to implement, since there's more options that can be implemented. If you need it to work right away, and have a board that converts 2pin serial/Uart from the Arduino to the 1 data pin of the Dynamixel, you can use the DynamixelSerial library on the github (Arduino Code > Libraries) and include it in the Arduino .h file. From there you'll need to setup the Dynamixels in the .h file (use the examples found in that library) and then replace any Servo.write() or Servo.writeMicroseconds() commands with the corresponding Dynamixel calls.
      Version 1.0.4 will include basic Dynamixel support, I just need a few days/weeks to test functionality.

    • @benploughman4145
      @benploughman4145 Před 8 měsíci

      Brilliant. Thanks for the debugging tip and really all of the info you've shared. Super helpful. Looking forward to seeing all this evolves. You've made a really cool thing here.

    • @benploughman4145
      @benploughman4145 Před 6 měsíci

      Im working on setting up Dynamixels and there's a section in the Marionette panel under the Dynamixel ID number for 'Select Serial Port for Dynamixel link' and the drop down lists 'Serial1, Serial2, Serial3, etc..' . I'm curious as to what differentiates this from the Serial Setup section at the top.

  • @reallemonboi7957
    @reallemonboi7957 Před rokem

    in the vid u said it can save to microcontrollers, but can you export this into a python script to play it alongside other code on a RasPi?

    • @knee-koh
      @knee-koh  Před rokem +2

      Yes, saving to the microcontroller means saving a file to the SD card. That file can be read by any filesystem, and I've run the files from a Raspberry Pi in python on past projects. I will try and post example code to the github for the next release.

    • @reallemonboi7957
      @reallemonboi7957 Před rokem

      @@knee-koh oh I see, thank you!

    • @reallemonboi7957
      @reallemonboi7957 Před rokem

      ps. this is such a cool tool for creators and engineers, thank you for all the great work that was put into this entire addon

  • @00budge
    @00budge Před rokem

    no errors adding the add on apparently, but cant find it in there

    • @knee-koh
      @knee-koh  Před rokem +1

      Can't find it in the viewport, or inside the addon window? I made a tutorial to walk through installation: czcams.com/video/nJkThBeOZog/video.html

    • @00budge
      @00budge Před rokem

      It's not showing up in the add ons on windows. Does it work with blender 3.5

    • @knee-koh
      @knee-koh  Před rokem +1

      @@00budge I have updated the github to a new version that should fix this issue. Please try the new version and post any issues to the github, where I can track them more quickly.