Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Old parts on BOM? #3

Open
tinducvo opened this issue Nov 15, 2022 · 10 comments
Open

Old parts on BOM? #3

tinducvo opened this issue Nov 15, 2022 · 10 comments

Comments

@tinducvo
Copy link

Could you help me read the BOM? (https://ros-mobile-robots.com/components/)

I'm looking to build the REMO Robot for a demo and I see there's a Grove stepper driver, Grove I2C splitter, I/O expander, front ultrasonic, etc that are not in the assembly video or gumroad assembly.

Thank you!

@tinducvo
Copy link
Author

It looks like there are DiffBot parts in there.

@fjp
Copy link
Member

fjp commented Nov 15, 2022

Thanks for pointing this out @parkournerd, I'll try to clarify this in the documentation.

You are correct that the Grove stepper driver, Grove I2C hub and ultrasonic sensor are not used for REMO. For REMO the Adafruit DC Motor (+ Stepper) FeatherWing is used. You could use the Grove I2C hub as shown in the electronics schematic: https://ros-mobile-robots.com/hardware_setup/electronics/ to connect additional I2C devices, but I currently have the I2C of the feather wing motor driver directly connected to the teensy mcu (without using the I2C hub).

I am not entirely sure what you mean by the I/O expander but in case you refer to the extension cable then it is also optional and might be only useful for testing purposes.

@tinducvo
Copy link
Author

Thanks for getting back so quickly and in detail.

Where is the best place to ask small questions by the way? I'm going to build one, so they will likely come up. For instance, I saw you used a teensy for its encoder counter, but I'm thinking you could just do that the SBC itself since that should only require 144hz polling.

@fjp
Copy link
Member

fjp commented Nov 16, 2022

Where is the best place to ask small questions by the way? I'm going to build one, so they will likely come up.

For code related questions I'd suggest to first check the discussions in the diffbot code repo and if there is nothing that helps, feel free to open a new question. Creating an issue is also fine.

For instance, I saw you used a teensy for its encoder counter, but I'm thinking you could just do that the SBC itself since that should only require 144hz polling.

That is also something I wanted to do in the first place, but I was warned that some ticks might be missed by the Raspberry Pi SBC. May I ask how do you get to the 144 Hz polling value? And do you know which maximum frequency the SBC is capable of polling over its GPIO pins?

I've never actually tested a direct connection between the encoders and the SBC myself but there is an open issue about it: ros-mobile-robots/diffbot#4 (comment). In the comment it is mentioned that with a device tree overlay for a rotary encoder no ticks were missed (one motor/encoder). There seems to be already a rotary-encoder overlay inside the official raspbian image but I am not sure about the ubuntu mate image, then you probably have to compile it as mentioned in the comment.

@tinducvo
Copy link
Author

Sweet, I'll go there first next time. This was my calculation assuming you don't have erroneous reads or noise:
(2 pulses per rotation) x (48 motor ratio) x (90 rpm) / (60s/min) = 144 pulses/s per channel

@tinducvo
Copy link
Author

We'd have to just test it because it all depends on the scheduling

@fjp
Copy link
Member

fjp commented Nov 16, 2022

I'd expect a higher frequency because these quadrature encoders of the DG01D-E motors seem to provide roughly 542 counts (aka ticks) per one full rotation of the wheel (not measured at the motor shaft). You can find some more infos about the encoders, including the pole count of 6, on this documentation page https://ros-mobile-robots.com/DG01D-E-motor-with-encoder/.

Also I am not entirely sure if the gear ratio (1:48) is correctly specified in the data sheet. But it is probably close to this ratio.

I agree it would be interesting to test if the SBC can handle all the ticks.

@tinducvo
Copy link
Author

I calculated assuming single pole pair oops: (144 pulses / s) x (3 pole pairs) = 432 pulses / s per channel
Your calculation: (1344PPR) / (2 channels) / (1.5 rps) = 448 pulses / s per channel
So, the theoretical and empirical line up ... "enough" lol


Thanks!

@tinducvo
Copy link
Author

tinducvo commented Dec 7, 2022

Could you let me know where the 25mm screws / threaded inserts go? I reviewed the assembly video and only saw short screws ... threaded inserts into the plastic motor body?

Also, might want to clarify:

  • that the wheels come from the kit or https://www.sparkfun.com/products/13259
  • easy specifications in case people can't source the exact same materials (i.e. any smooth, durable 3/4" for the caster)

@fjp
Copy link
Member

fjp commented Dec 7, 2022

Hi @parkournerd, thanks for the hints, that is definitely something that I'll improve!

Regarding the threaded inserts: you might find this assembly page useful in case you haven't seen it yet. It is definitely not complete and I should extend the description on this page but the first image after the video shows where the four threaded inserts go:

image

The threaded inserts are useful to avoid damaging the threads in the base frame, in case one would use the self tapping screws (the ones that are mostly shown). The decks might be something that are swapped multiple times and that's why the brass threaded inserts are used here to avoid this wear and tear. For the threaded inserts I use four M2 with a thread length of 8mm.

I just realized another issue in the BOM (which I also just fixed now). The 25mm screws should actually be M3 (not M2), which are used to mount the motors to the base frame:

image

However, M2 x 25 mm should also be fine, in case you already bought them. And just to clarify, most of the screws that are used are such self tapping screws (I should also clarify this in the documentation):

image

And to summarize:

  • The four M2 x 8mm screws are the ones that connect the deck(s) to the base frame and are screwed into the threaded brass inserts.
  • The longer M3 x 25 mm are used to fix the motors to the base frame together with a M3 nut, as shown in the image above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants