Build MoMo
This section guides you to build your own MoMo and outlines the manufacturing and assembly process.
The following steps roughly describe the assembly procedure:
- Cut SMT aluminum construction profiles and assemble the base station.
- Manufacture custom components
- Install the motor block (see motor block instructions) in the base station.
- Connect PC and PC power supply.
- Position and wire the electronic components.
- Electronics: First set or test only the power supply and battery monitor (primary side).
- Electronics: Upload the arduino code and test all electronic components.
- Set the motor driver hardware (Maxon_Set_up instructions).
- Prepare Epos Studio and parameterize 4 motor drivers (software)
Note: You could also use different manufacturers for aluminum construction profiles, such as ITEM or Bosch, but some connector parts might vary.
Bill of Materials (BOM)
The following list contains all the components required for the assembly of the robot. The components are divided into different categories. The list is not exhaustive and some components may be missing. The list is intended to provide an overview of the components required for the assembly. The ID column is used to identify the components in the assembly instructions. The vendor column provides the name of the vendor where the component can be purchased. The link column provides a link to the vendor's website where the component can be purchased. Of course, the components can also be purchased from other vendors. There is no affiliation with the vendors mentioned in the list. The prices include taxes and are subject to change.
ID | Item Description | Provider | Price (€) | Quantity | Total Amount | Product ID | Link |
Multiblock 8 PA | SMT | 1,28 € | 20 | 25,60 € | S208MBPA | Link to vendor | |
Cross Cable Tie Block with Hammer Nut 8-30 | SMT | 0,64 € | 10 | 6,40 € | S208KKMH30 | Link to vendor | |
Cable Tie Block 8 | SMT | 0,41 € | 20 | 8,20 € | S208KBB | Link to vendor | |
Cover and Edging Profile 8 Black 1000mm | SMT | 0,81 € | 5 | 4,05 € | S208AEPSCHK | Link to vendor | |
Angle Bracket Set 8 30x30 Aluminum | SMT | 1,22 € | 10 | 12,20 € | S208WS30A | Link to vendor | |
Cube Connector Set 8 30x30 3D | SMT | 3,08 € | 10 | 30,80 € | S208WV30303DS | Link to vendor | |
T-Slot Nut 8, with Bridge, M5 | SMT | 0,23 € | 30 | 6,90 € | S208NSMS5 | Link to vendor | |
T-Slot Nut 8, with Bridge, M6 | SMT | 0,23 € | 30 | 6,90 € | S208NSMS6 | Link to vendor | |
T-Slot Nut 8, with Bridge, M8 | SMT | 0,23 € | 30 | 6,90 € | S208NSMS8 | Link to vendor | |
Joint 30x30 | SMT | 7,13 € | 6 | 42,78 € | S208G30 | Link to vendor | |
Profile 8 30x30 Black | SMT | 21,35 € | 6 | 128,10 € | S1083030SCH | Link to vendor | |
T-Slot Nut 8, with Bridge, M3 | SMT | 0,23 € | 30 | 6,90 € | S208NSMS3 | Link to vendor | |
T-Slot Nut 8, with Bridge, M4 | SMT | 0,23 € | 30 | 6,90 € | S208NSMS4 | Link to vendor | |
T-Connector Plate 30 | SMT | 1,14 € | 20 | 22,80 € | S208TVP30 | Link to vendor | |
Cover Profile 8 32x4 | SMT | 5,38 € | 4 | 21,52 € | S208AP324 | Link to vendor | |
Mecanum wheel set |
Robotshop | 554,74 € | 1 | 554,74 € | RB-Nex-74 | Link to vendor | |
ID1-ID4 | Motor Controller | Maxon Motor | 916,30 € | 4 | 3.665,20 € | 594385 | Link to vendor |
Encoder | Maxon Motor | 247,19 € | 4 | 988,76 € | 607515 | Link to vendor | |
Motors | Maxon Motor | 294,16 € | 4 | 1.176,64 € | 607946 | Link to vendor | |
Planetary Gearbox | Maxon Motor | 507,04 € | 4 | 2.028,16 € | 223086 | Link to vendor | |
Power Cable | Maxon Motor | 17,90 € | 4 | 71,60 € | 275829 | Link to vendor | |
Intelligent connector system from Harting (1 male, 1 female connector) | Harting | 512,00 € | 1 | 512,00 € | Click Here | ||
BAT1 | Lithium-ion battery 24V 60Ah 1440Wh 60A | Akkushop-24 | 569,00 € | 1 | 569,00 € | 2460 | Link to vendor |
X5 | Clamp ptfix 6/...X1.5 blue | reichelt | 3,35 € | 1 | 3,35 € | PHOE 3273332 | Link to vendor |
X4 | Clamp ptfix 6/...X1.5 red | reichelt | 3,25 € | 1 | 3,25 € | PHOE 3273334 | Link to vendor |
Flange PTFIX 1.5 | reichelt | 0,36 € | 4 | 1,44 € | 104524 | Link to vendor | |
Flange PTFIX 2.5 | reichelt | 0,36 € | 4 | 1,44 € | 104525 | Link to vendor | |
X1 | Distribution block PTFIX, 12x2.5 Gray | reichelt | 6,10 € | 1 | 6,10 € | PHOE 3273352 | Link to vendor |
X2 | Distribution block PTFIX, 12x2.5 Red | reichelt | 6,20 € | 1 | 6,20 € | PHOE 3273356 | Link to vendor |
X3 | Distribution block PTFIX, 12x2.5 Blue | reichelt | 6,10 € | 1 | 6,10 € | PHOE 3273354 | Link to vendor |
S1 | Stainless steel pressure switch Ø19mm | Metzler |
14,99 € | 2 | 29,98 € | P19-RF-RGB | Link to vendor |
U1 | Battery monitor 50A / 70A BW801e | LEAB | 137,00 € | 1 | 137,00 € | 1305041043 | Link to vendor |
U3 | Can Master Module Kvaser Leaf Light HS v2 | distrelec | 285,00 € | 1 | 285,00 € | 110-70-530 | Link to vendor |
S2 | Emergency stop button | conrad | 13,44 € | 1 | 13,44 € | 2304760 - 62 | Link to vendor |
K1 | Solid state relay TC-GSR-1-100DD 100 A | conrad | 26,04 € | 2 | 52,08 € | 2527195 - 62 | Link to vendor |
F1 | 4x circuit distributor FHA504 flat fuse | conrad | 25,20 € | 1 | 25,20 € | 1628982 - 62 | Link to vendor |
F2 | 6x FHA506 flat fuse circuit distributor | conrad | 24,36 € | 1 | 24,36 € | 1628986 - 62 | Link to vendor |
F3 | Flat fuse 50A | conrad | 3,44 € | 1 | 3,44 € | 839760 - 62 | Link to vendor |
T1 | 30V to 12V voltage converter | Amazon | 24,99 € | 1 | 24,99 € | Link to vendor | |
7-inch display | |||||||
K2 | Schneider Electric ZBRRA receiver for wireless push-button | voelkner | 165,04 € | 1 | 165,04 € | W14844 | Link to vendor |
S3 | Schneider Electric XB4BA21 Harmony XB4BA21 Push-button Actuator flat | voelkner | 11,18 € | 1 | 11,18 € | W11012 | Link to vendor |
B1 | Battery Voltage Meter | Amazon | 12,50 € | 1 | 12,50 € | Link to vendor | |
X6-X10 | Molex crimp housing - micro-fit - 2x2-pin - plug | reichelt | 0,60 € | 4 | 2,40 € | MOLEX 430200401 | Link to vendor |
X16 | USB3 Socket | Reichelt | 8,74 € | 1 | 8,74 € | Link to vendor | |
X15 | USB2 Socket | Reichelt | 6,39 € | 1 | 6,39 € | Link to vendor | |
X20 | HDMI Socket | conrad | 17,99 € | 1 | 17,99 € | Link to vendor | |
X19 | Ethernet Socket | conrad | 6,99 € | 1 | 6,99 € | Link to vendor | |
PC1 | Motherboard | bicker | 380,80 € | 1 | 380,80 € | Link to vendor | |
PC1 | CPU Fan | Voelkner | 52,65 € | 1 | 52,65 € | Link to vendor | |
PC1 | WiFi | reichelt | 16,76 € | 1 | 16,76 € | Link to vendor | |
PC1 | 64 GB RAM | cyberport | 268,00 € | 1 | 268,00 € | Link to vendor | |
PC1 | i9 12900T Processor | alternate | 625,00 € | 1 | 625,00 € | Link to vendor | |
T2 | M3-ATX-HV 6-34V DC/DC (95 W) | minipc | 69,95 € | 1 | 69,95 € | 1217 | Link to vendor |
Note: Depending on your floor it might be good to choose rubber mecanum wheels instead of nylon mecanum wheels in order to ensure better traction. Rubber mecanum wheels are recommended for smooth floors (e.g. smooth concrete) and nylon wheels are recommended for floors that have more rough texture.
Manufacture custom components
Before the assembly can begin, some custom parts need to be manufactured using a lathe and a milling machine. For the manufacturing we provide the 2D drawings of the individual components. The PDFs contain important data for the production of each part.
- Gear cover
- Spacer bearing wheel
- Flange gear motor
- Flange cover
- Wheel mounting disc
- Wheel shaft
- Motor block assembly
Instructions for Assembling the Motor Blocks
In the following the instructions for assembling the motor blocks are explained step-by-step. The entire process is visualized below:
Gather Components
For the assembly of one motor block you require the following parts:
- 2 ball bearings: 6003-2Z, Deep groove ball bearing, single row, Inner diameter 17mm / Outer diameter 35mm, Width 10mm
- 1 retaining ring (DIN 471 17x1 VE200)
- 1 wheel Shaft
- 4 countersunk screws (DIN7991 M5 x 12mm)
- 1 motor with gearbox (motor and gearbox are delivered pre-assembled)
- 1 gearbox cover
- 1 flange
- 4 cylinder screws (DIN912 M5 x 70 mm)
- 4 countersunk screws (M4 x 8mm)
- 1 spacer bearing wheel
- 4 slot nuts (M8)
- 4 cylinder screws (M8)
- 1 flange cover
- 4 countersunk screws (M4 x 8mm)
- 1 mecanum wheel (should be delivered pre-assembled)
- 1 wheel mounting disk
- 1 fine screw (DIN 912 M8 x 16)
Mount and Secure Ball Bearing on Shaft
A ball bearing with a retaining ring for a 17mm shaft must be installed as shown in the picture below.
Connection of the Gearbox cover to the Motor
On the motor, the gearbox cover is attached and secured with 4 countersunk screws (DIN7991 M5 x 12mm). Please refer to the image below!
Connecting the motor with the shaft and the flange
Then, connect the pre-assembled shaft (Step 1) 1 to the flange and secure it with 4 cylinder screws (DIN912 M5 x 70 mm). Please refer to the image below!
Attachment of the flange cover
The next step is to attach the second ball bearing with the flange cover and secure it with 4 countersunk screws (M4 x 8mm). The second ball bearing should be attached carefully as it has little slack. The flange cover must be completely closed, there should be no gap.
Assembly of the Motor Block on the Robot Frame
The assembled motor block must be mounted on the robot frame and secured. When all steps have been completed, the motor block must be attached to the robot frame and secured with the appropriate 4 cylinder screws (M4) into fitting slot nuts.
Insert the custom feather key into the corresponding slot.
Installation of the Mecanum Wheel on the Shaft
Move the Mecanum wheel onto the shaft. Secure with a wheel mounting disk and a fine screw (DIN 912 M8 x 16).
Below you can see the assembled motor block attached to the robot frame.
Connect Motor Unit to Motor Driver
After following the assembly instruction for the motor unit, the next step is connecting the motor to the motor driver. In the following, the electronic connection of the motor unit with the motor driver will be explained.
Motor unit with cables
First you have to connect the motor unit to the motor driver. There are only 3 cables (see the image below):
- Hall sensor 6 pole Molex mini connector (X4)
- Encoder 10 pole pin connector (X5)
- Motor power supply (X3a) (with white/black/red cable with 4-pin Molex connector)
Connectors X4(left), X3a(middle), X5(right)
The following image shows where to connect the cables to the motor driver.
Relevant ports on the motor driver
Once the previous steps are completed, connect power supply (24-30V) to the port X1.
DIP Switch Configuration
Locate the DIP switch SW1 on the motor driver.
DIP switch SW1
Each controller should have its own ID. It is important to identify exactly in the CAN node first motor gets ID1 and last ID4 ID must not only be changed manually on the switch, but also in the Epos Studio software under CAN settings. This is exactly where the CAN setting is entered
- ID1: Switch 1 to on all others to off
- ID2: Switch 2 to on all others to off
- ID3: Switch 1 and Switch 2 to on all others to off
- ID4: Switch 3 set to on all others set to off
Binary code values for the DIP switch SW1
CAN automatic Bit Rate Detection
DIP switch setting for enabling automatic bit rate detection
We recommend using the automatic bitrate setting for CAN node.
To use this, switch 6 must be active.
CAN Bus Termination
for CAN nodes always 2 terminating resistors each 120 Ohm. You can connect manually at the beginning/end or use internal resistors from the controller. To do this, connect as shown in the picture and set switch 7 to "on" for controller 1 and 4 Set DIP switch SW7 to "on" for CAN bus termination
Status Indicators
The EPOS4 features three sets of LED indicators to display the device condition
- A NET Status; the LEDs display communication RUN states and errors conditions.
- B Device Status; the LEDs display the device’s operation status and error conditions
Location of Status LEDs
Device Status
The LEDs (B Device Status) display the actual status and possible errors of the EPOS4:
- Green LED shows the status
- Red LED indicates errors
Status LEDs for the EPOS 4 Motor Controller
Motor Driver Software Configuration
Software setup with EPOS Studio
Installation
Install the latest EPOS-IDX Studio: EPOS Studio 3.7. The best way to get it is using the button “Download EPOS Setup” at the bottom of maxon EPOS website http://epos.maxongroup.com. After installation you can find various documentations under the following folders: C:\Program Files (x86)\maxon motor ag\EPOS IDX\EPOS4\04 Programming C:\Program Files (x86)\maxon motor ag\EPOS IDX\EPOS4\05 Applications\Application Notes Alternatively, you can find it at the bottom of the link above (§2.1), or under the Download section of any EPOS4 product detail.
Firmware Update
Update all EPOS4 boards to the latest firmware using EPOS Studio. Once you created an EPOS4 project and connected to your controller, just right click on it, and go to Wizard and then Firmware Update.
Startup settings
Open the Startup Wizard and fill the parameters based on your motor data. The following screenshots show the settings for the motor, gear, sensors, commutation, regulation, unit, limit, device control, and windows as we used them for the specific motor.
Motor parameters in EPOS Studio
Gear parameters in EPOS Studio
Sensor parameters in EPOS Studio
Communication settings
Regulation settings
Controller Unit settings
Operating Limits
Device control settings
Specify standstill window limits
Touch probe functionality parameters
Regulation Tuning
Open the Regulation Tuning Wizard and proceed to the auto tuning steps while making sure the motor can move safely.
Important: Lift the robot. The wheels should touch the ground!
CANopen settings
SDO parameters
Open the CANopen Wizard and leave the first page as it is for the SDO parameters
Service Data Objects for ID 1
The ros_canopen package expects specific PDO settings in order to function properly
Receive PDOs
For the Receive PDOs, map the CAN objects as the following screenshot, by choosing from the list on the right.
Receive PDOs for ID 1
Please make sure to keep the correct order.
Verify that the COB-IDs have the correct Node ID hexadecimal value added at the end.
For example, ID1 in this case (for Node-ID 1) the RxPDO COB-ID is 0x0000 0200 + 0x1 = 0x0000 0201.
For example, ID2 in this case (for Node-ID 2) the RxPDO COB-ID is 0x0000 0200 + 0x2 = 0x0000 0202.
For example, ID3 in this case (for Node-ID 3) the RxPDO COB-ID is 0x0000 0200 + 0x3 = 0x0000 0203.
For example, ID4 in this case (for Node-ID 4) the RxPDO COB-ID is 0x0000 0200 + 0x4 = 0x0000 0204.
Transmit PDOs
For the Transmit PDOs, select RTR and you can leave the inhibit time as 1 ms. Proceed similarly as above to do the following CAN objects mapping:
Transmit PDOs for ID 1
In the Error Protocol tab, you can leave the Heartbeat consumer and producer unchecked.
Verify that the COB-IDs have the correct Node ID hexadecimal value added at the end.
For example, ID1 in this case (for Node-ID 1) the RxPDO COB-ID is 0x0000 0200 + 0x1 = 0x0000 0201.
For example, ID2 in this case (for Node-ID 2) the RxPDO COB-ID is 0x0000 0200 + 0x2 = 0x0000 0202.
For example, ID3 in this case (for Node-ID 3) the RxPDO COB-ID is 0x0000 0200 + 0x3 = 0x0000 0203.
For example, ID4 in this case (for Node-ID 4) the RxPDO COB-ID is 0x0000 0200 + 0x4 = 0x0000 0204.
Object Dictionary
In case you are using CSP Mode with MoveIt!, it is important to adjust the CAN bus cycle time of updated “Target position” data properly by setting the EPOS4 object “Interpolation time period value” (0x60C2/01).
It is recommended to use a value of 10ms.
Please find more information about this by maxon’s public Support Center document “EPOS4 / IDX: CSP Mode -> Relevance of "Interpolation Time Period Value"?”. https://support.maxongroup.com/hc/en-us/articles/4402184834322-EPOS4-IDX-CSP-or-CSV-Mode-Relevance-of-Interpolation-Time-Period-Value
Change direction of rotation vor motor control ID 2 and ID 4
If you want to change the default direction of rotation of the EPOS, you can do so in Object 0x3000 0x04.
Write 0x00000001 (i.e., Bit0) to the Object.
Axis configuration miscellaneous
You can make the change using the EPOS Studio -> Tools -> Object Dictionary.
Important: after the change, you must also save this parameter. Right-click on the Object -> Save All Parameters.
Object Dictionary
DCF/EDS file
The ros_canopen package can be used with both DCF or EDS files. The current examples use DCF files. To export a DCF file, just right click on your EPOS4 controller, go to Wizards -> Parameter Import/Export, type a file name and do “Export Parameters to File”. To export an EDS file, go to the Object Dictionary window, right click on any line and select “Export EDS file”, as explained in the following maxon support documentation: https://support.maxongroup.com/hc/en-us/articles/360012778713.
DCF/EDS file replace
Replace the current DCF files with the ones you generated earlier in "DCF/EDS file" and make the changes in the node layer files accordingly, so that the “eds_file” tag matches your file name. The current official version of ros_canopen can’t parse boolean DataType (0x1) objects. It is therefore necessary to delete the only boolean DataType object, [2200sub2] (Internal valid logic supply), then change the SubNumber of [2200] to 2 and ParameterValue of [2200sub0] to 1 (lines in bold):
[2200]
~~SubNumber=3~~
SubNumber=2
ParameterName=Power supply
ObjectType=0x9
[2200sub0]
ParameterName=Highest sub-index supported
ObjectType=0x7
DataType=0x5
AccessType=ro
DefaultValue=2
PDOMapping=0
ObjFlags=1
~~ParameterValue=2~~
ParameterValue=1
[2200sub2]
ParameterName=Internal valid logic supply
ObjectType=0x7
DataType=0x1
AccessType=ro
PDOMapping=0
ObjFlags=1
[6098]
ParameterName=Homing method
ObjectType=0x7
DataType=0x2
AccessType=rww
~~DefaultValue=7~~
DefaultValue=0
PDOMapping=0
ObjFlags=0
~~ParameterValue=7~~
ParameterValue=0
The Homing method value 0 means “no Homing method required” according to CiA 402 standard.
Instruction for Component Configuration: Module-Electric-Connector (MEC)
Visit the homepage: https://b2b.harting.com/ebusiness/en/
CLICK ON "Configurators" at the top right corner.
In the next tab under "Industrial Connectors", CLICK ON "Configure now".
You can start the configuration with or without logging in.
CLICK ON "Start new configuration" in the further tab.
On the current tab, you should see the following selection table:
Hood
Insert top
Insert bottom
Housing
CLICK ON "Configure" below Hood.
Enter the product number in the window: "Search for product number" for the first component:
Han 24B-KG-Docking Frame (35 mm) product number: 09 30 024 1704
(this part will also be used later for Housing Subpart as these components are asymmetrically designed)
CLICK ON the plus-symbol next to the component, so that now you see a checkmark.
The component appears left in the picture as a 3-D model. CLICK ON "Apply“.
If you do not see now two components left next to the table, the selected docking frame with the belonging:
Han hinged frame plus, for 6 modules A-F with the product number: 09 14 024 0361
(hover the mouse-icon over Insert top)
CLICK ON "Configure" below Insert top although. CHOOSE the insert type: "Connector with modular insert"
You should see now in the left picture the Han hinged frame plus, for 6 modules A-F.
Now CHOOSE for the slots A to F in the top row of the docking frame the following assembly components for the upper module. Proceed with the plus-symbols as with the first selection, so that each component is marked with a checkmark, in this order, slot for slot:
slot A and B: Han USB 3.0 module product number: 09 14 001 4703
slot C and D: Han RJ45 module, female gender changer product number: 09 14 001 4721
slot E and F: Han EE Quick-Lock module, male 1,5mm² product number: 09 14 008 2634
CLICK ON "Guiding" in the top row and CHOOSE: "4 M, 0 F, hood-housing, modular" for the mounting fixation.
If you see all components in this order left in the picture. CLICK ON "Apply“.
Now you see the progress of your configuration next to the table.
For the lower part for the MEC proceed as before.
Begin with the subpart Housing. CLICK ON "Configure" below Housing for Housing Subpart.
Very likely the docking frame is already pre-selected.
Han 24B-KG-Docking Frame (35 mm) product number: 09 30 024 1704
CLICK ON "Apply“
You see the almost finished configuration next to the table.
Here you have also already through the system a pre-selection of the required assembly components in the correct order. Choose for:
Slot A and B: Han USB module, male for patch cord product number: 09 14 001 4601
Slot C and D: Adapter Han RJ45 module-RJ45 patch cabel product number: 09 14 000 9966
Slot E and F: Han EE Quick-Lock module, female 1,5mm² product number: 09 14 008 2734
CLICK ON "Guiding" in the top row and CHOOSE: "4 M, 0 F, hood-housing, modular" for the mounting fixation. CLICK ON "Apply“.
When you hower the mouse-icon over Insert top and Insert bottom can see now in the Product List all required parts, also form the system pre-selected Han-Modular Guiding Bush product number: 09 14 000 9909 and Han-Modular Guide pin product number: 09 14 000 9908 to go to the overall CLICK ON "Continue“
Make sure that all components are listed with the corresponding product numbers.
If all components are correctly configured according to the instructions, you have successfully completed the setup of your Electric-Connector-Module.
CLICK ON "Add to shopping cart".
Now you need to log in or register first.
Electronics
Make sure that you have the necessary experience in electronics before starting the assembly. The authors do not take any responsibility for any damage caused by the assembly of the electronics. The following figure shows a high-level view of all the electronics. For a more detailed visualization of all electronic connections, take a look at the circuit diagrams here: Circuit Diagrams
Once the arduino is connected to the PC, you can upload the code to the arduino. Install the arduino IDE and open the main.ino
from the arduino folder. Load the code to the arduino.