What's pretty cool about the Nvidia Jetbot (and other ROS builds) is that you don't have to actually program things the way you'd expect. In Ros, you say things like Left_Motor and Right_Motor
What I'm not understanding is where in the software ROS knows to send signals to which PWM pins
I'm not seeing where the Adafruit Featherwing is defined as being the motor controller
Step ONE is working, with step one being that the remote controller (the xbox game pad thingy) successfully controls the motors (and therefore, movement) of the robot from a remote computer connected via wifi
As I suspected, a straight line is problematic due to the fact that each motor is controlled individually from a left and right joystick. On the upside, it's digital proportional, so I do have speed control. On the other hand, once the robot is controlling itself, that becomes irrelevant
Step TWO is the camera is working perfectly (finally, after I bought the right part. The Pi Cam needs to be VERSION 2, an older one doesn't work)
Step THREE is a new button on the controller being pressed causes the software to save a picture of the moment
All 3 are functioning perfectly 🙂
Step FOUR is creating the dataset for machine learning of "Blocked" or "Free" movement, which is currently failing for some reason with the error msg saying "Directories not created because they already exist", which I don't believe to be true due to the fact that a search of the entire hard drive reveals not a single folder called "dataset" or "blocked" or "free"...
Which leaves me stuck. I have no idea what to do at this point. The Jetbot forum is populated by people who are obviously far more intelligent than I am because I'm extremely incapable of following any of their instructions due to the fact that the tech-speak that they speak is so far above me that it might as well be ancient Sumerian
Can anybody help ?
The upgraded software provided one critical fix, and one (sort of) critical new function (which, in my opinion, should have been included in the first place)
The critical fix was the repair of the training function which now... functions. It would have been nice if they'd added the training buttons to the xbox controller joystick gizmo, considering all the extra buttons the thing has since only 3 out of the 24 or 25 buttons on the thing are currently assigned to anything (I've also mounted a robot arm to the roof of the bot, which would be fully functional, if I knew how to assign the buttons to it. Right now all it's doing is sitting there looking impressive)
I could probably mount a pi to the project and have the arm be the only thing that the pi is responsible for, but, that would be stupid (and totally something I would do)
And the sorta critical new function is the "Follow Me" function, which is totally cool (or, will be once I get all the data for "blocked" and "free" sorted out)
This is all I actually wanted my project to do in the first place...
#1 Be a toolbox
#2 Follow me around so I don't have to push the toolbox
#3 Maybe have some pretty flashy lights
#4 Talk to me (cuz I get lonely sometimes)
#5 Shoot lasers out the eyes
#6 Eat annoying children
Admittedly, #2 won't be as straightforward as it sounds, because the jetbot is programmed to communicate with the Adafruit Featherwing Motor Controller, and is absolutely not capable of handling the amperage I intend to pump thru it to power the motors for a fully loaded toolbox. It's definitely going to need something as beefy as the MD10C's and the gear motors that I bought for this project
My hope was that I could somehow simply replace the featherwing with the MD10C, but, I think that's the part that's going to present a problem to me due to the fact that I have no idea what I'm doing
But, hey, it's forward progress, right ?
I'm calling that a win 🙂
#3 Should be fairly simply. Lights I can figure out
#4 I was planning on sticking my SNIPS box in there. Not sure how well I could integrate it into the Jetson's software tho. But I've already got the box. I might need to think about speakers now that I think about it, unless I can learn to read the mind of a Not-So-Intelligent-Artificial-Intelligence whose only actual intelligence will be to not bump into walls, and my cat can do that.
On the other hand, my cat only has a one word vocabulary, and I have no idea what it means since I haven't learned to speak cat...
Nor have I had any luck teaching Klingon to the cat
#5 Could possibly be an issue with management, but, a guy can dream, can't he ?
#6 More than likely WILL be an issue with management, and probably the local constabulary as well, and I should definitely leave it off the list of things to do, but, hey, a guy can dream, can't he ?
That's a nice looking robot chassis and arm. Is this a homemade chassis or was it a kit? I wouldn't mind having a chassis like this as a temporary robot body for my new Jetson Nano.
Everything except the circuit boards, screws, and the two pieces of sheet metal came off my Anet A8 printers INCLUDING the tank treads (which I removed and replaced with uniwheels, which I didn't print)
The arm, sadly, doesn't do anything other than look fancy. It IS connected to the motor controller and power, but it lacks the programatical incentive to "reach out and touch" anything
As a test I uploaded a script from my dancing OttoBot into the arm
That proved to be a successful test of all the servos as well as being slightly entertaining for a few minutes
EDIT: Oh, I forgot to mention... it IS temporary. Once it works, I'm taking the guts out and it's going into my toolbox
Ok, I'll probably build something from scratch myself. I really can't afford to be buying a kit anyway.
The arm looks similar in design to a "Me Arm" but it appears to be much sturdier.
I have a "Me Arm", but it's pretty flimsy to try to do any serious work with it. I'd like to build one based on a similar design but far more robust. In fact, I've been thinking of possibly using stepper motors with powerful gear ratios instead of trying to drive it directly off a servo shaft. It might move slower, but if that results in a far more powerful arm that would be ok by me. I'd rather have the power than the speed.
The arm looks similar in design to a "Me Arm" but it appears to be much sturdier
Yea, these rods have a kind of "I" beam design to them. I looked at the "me arm" but I didn't like it. This one is the "eezybotarm". I think I found it on tinkercad
I printed it in carbon fiber, so it's stronger than it would've been anyway
Instructables is currently unavailable to me right now. I'm getting a wierd game that I can't seem to play well when I click on that link
Here's a link to the one you see on my bot...
And it looks like he's upgraded it, and made it bigger and stronger. The servos look bigger, but the BOM still says SG90
It's a nice design, but, like you, I would have preferred not having all the stress on the horns of the servos, and with that thought in mind, I had an idea about the Nema17 motors that run my printers. Those things are pretty powerful, kinda big, but powerful. They do have smaller sizes tho, which are not as strong, but, easier to hide inside something...
And there's a smaller one
And some fairly inexpensive ones
Now, if you were to put a gear on the shaft, and a bigger gear next to it, you could have a servo capable of lifting probably a few pounds, maybe more, I haven't done any calculations, but just by eyeing it, it looks doable. So I checked Servo City (where I get my actobotics stuff) and they do have 5mm ID gears and shafts, as well as 5mm bearings. Heck, with a motor that strong, and a 12 or 15:1 gear ratio, and you've got some power there
So the parts are there to make a much stronger arm
It's not in the cards this week, and an arm isn't on my list of things to do for the toolbox, but, it IS giving me some ideas
I gotta figure out how to get that arm working 😉
And some fairly inexpensive ones
Those NEMA17 motors look pretty nice. Four for a quarter isn't too bad either. They look like they would be quite powerful.
I was actually thinking of using the 28BYJ-48 steppers only because I already have a ton of them laying around. I'm not sure how powerful these are but they do contain an internal gearbox. I'm thinking they should be more powerful than the small servo motors, but I'm not sure yet. I'll have to study the spec sheets and find out.
Yes, an obvious tell on whether a motor has an internal gearbox is when the shaft doesn't come out the middle 😉
I have a bunch of those myself. Haven't done anything with them yet tho
I think I made one turn once, as an experiment, then got distracted by another project, like I am now
I should be training the free and blocked model, but one of the stupid motors is malfunctioning, and now I have to rip the stupid tank apart, which, believe me, is a nightmare of one part connected to another, to another to another
There's just no simple way to do this
I went on a www cruise while my 3d printer is churning out pieces of EEZYbotArm (the mk1, like spyder's) and here is the mk3 that robo-pi may be interested in (it's a mk1 adapted to use 3 of these small steppers) : https://www.thingiverse.com/thing:2838859
His web site is good : http://www.eezyrobots.it/
I like the more sturdy mk2 but i don't have the required hardware right now so I'm first going to build the mk1 with MG90 servos and then play with the software side of things.
here is the mk3 that robo-pi may be interested in (it's a mk1 adapted to use 3 of these small steppers)
Thanks for posting this. It does help to see how someone else designed the arm using the 28BYJ-48 servo motors. I like how he designed the base motor. That's basically what I was thinking. I was planning on using a large ring gear on the base and a gear on the stepper motor to drive it instead of running the base directly off the output shaft of the motor as was done with the earlier servo models.
You can see the base gears clearly in the video at about 2:28
I would have liked to have seen him pick up some fairly heavy objects just to see what it can handle. He says in his article:
During development I found the stepper a little weak for the purpose, so I redesigned the transmissions on vertical arms, and apply a modification on stepper from unipolar to bipolar.
He notes that they were a bit weak in his initial design and that he made some modifications. But he doesn't mention what the original weaknesses were or how much improvement he managed to achieve.
The other thing about this design is that there is no wrist action on these models. I would also prefer to eliminate the servo motor at the end of the arm. I was thinking of using cables to control the gripper and adding wrist motion too. Then running those cables via stepper motors too that can also be located in the base instead of on the end of the arm.
In any case, I don't have a 3D printer, so I'll need to manufacture my parts on a milling machine. So I'll most likely be designing entirely new parts as well. I supposed when I'm finished with my arm I'll have to make an article for it. Other people who have 3D printers could then print the parts that I had made by hand on a milling machine.
Hi how did you controlled the speed of motors (by python code) during teleoperation experiment i.e remote control jetbot using gamepad. On https://html5gamepad.com/ (HTML5 gamepad tester site) my gamepad is shown as following
I can use following axes
If above code which is given in notebook applied as it is then robot moves very fast, can not control its speed, Please let me know how can I control speed of motor in this code.
I want to move robot precisely slowly to take snaps of line follower track using gamepad controller. but with this speed I cant move robot slowly.
It will helpful in collision avoidance experiment also, since in that we have to train for 200 images of different textures/walls/floor etc. Did anyone in this forum completed all the notebook experiments in NVIDIA Jetbot guide?