nate711 / stanforddoggoproject Goto Github PK
View Code? Open in Web Editor NEWStanford Doggo is an open source quadruped robot that jumps, flips, and trots!
License: MIT License
Stanford Doggo is an open source quadruped robot that jumps, flips, and trots!
License: MIT License
Hello, I'm on the road to rebuild Doggo. And I have bought a 3D printer, but when I download the model of the custom parts. There are two files that seem not available. They are "Outer Coaxial Tube (Set of 4)" and "3D printed 48T outer pulley":
The files in these two links are ".temp"(seems not work), where can I get this two complete files?
PS: Would the Doggo works well if I use PLA to print all the 3D printed parts?
Thank You!!
Hi all,
We have prepared everything and assembled the robot. However, currently we have a problem on setting the inital motor position for starting the robot gaits.
Is there anyone knowing how to set up the intial motor position. As far as we know, every time the robot is powered on, the encoder has to calibrate the motor position. It seems that the motor intial position depends on how the legs are manullay placed at the time of powering on. Is that true? Is there a way to sufficiently guarantee that the robot legs can be automatically and correctly configured to a right place no matter how legs are placed when the robot is powered on.
Thanks a lot.
Is there any information available on the costs involved in building this little machine? I heard from the video that it wouldn't be more than $3k which is well above what the average tinkerer can afford. I'm not sure what exactly would justify the costs of the current setup but I'm hoping that having some information about it would help figure out how to lower the costs eventually for less demanding environments.
Hi Nathan,
Great work you did here! I was wondering if you're planning to share the ICRA paper (or at least a preprint) soon. I'd love to see it.
Thanks!
Hi Nate and team,
I'm trying to build a doggo here, while checking ODrive part, I found that the battery have a peak working current of 75A, each battery supplies four motors. But banana connectors from ODrive to motor is 3.5mm which allow 30A continuous current. This is a bit unclear to follow.
Do we have any test results on how much cuurent each motor draw from the drive? Thanks.
Edit:
Also, I found it hard to figure out how the battery power is distributed to PDB and ODrive boards.
As I have experience working with quadcopter, I can think of some schemes that work, but still, i'm curious how you guys will distribute battery power.
My idea:
Battery#1
.....|
Contactor
.....|-PDB
.....|--ODrive#1
.....|--ODrive#2
Battery#2
.....|--ODrive#3
.....|--ODrive#4
Is this correct?
Hi, I had some trouble in Odrive config. I run "full_calibration"(odrive/tool/doggo_setup.py) and test motor by "set_pos_position" like this:
odrv.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
odrv.axis1.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
time.sleep(3)
odrv.axis0.controller.set_pos_setpoint(2000.0, 0.0, 0.0)
odrv.axis1.controller.set_pos_setpoint(2000.0, 0.0, 0.0)
time.sleep(3)
odrv.axis0.controller.set_pos_setpoint(0.0, 0.0, 0.0)
odrv.axis1.controller.set_pos_setpoint(0.0, 0.0, 0.0)
time.sleep(3)
odrv.axis0.controller.set_pos_setpoint(-2000, 0.0, 0.0)
odrv.axis1.controller.set_pos_setpoint(-2000.0, 0.0, 0.0)
time.sleep(3)
odrv.axis0.controller.set_pos_setpoint(0.0, 0.0, 0.0)
odrv.axis1.controller.set_pos_setpoint(0.0, 0.0, 0.0)
time.sleep(3)
odrv.axis0.controller.set_pos_setpoint(4000.0, 0.0, 0.0)
odrv.axis1.controller.set_pos_setpoint(4000.0, 0.0, 0.0)
time.sleep(3)
odrv.axis0.controller.set_pos_setpoint(0.0, 0.0, 0.0)
odrv.axis1.controller.set_pos_setpoint(0.0, 0.0, 0.0)
time.sleep(3)
odrv.axis0.controller.set_pos_setpoint(-4000, 0.0, 0.0)
odrv.axis1.controller.set_pos_setpoint(-4000.0, 0.0, 0.0)
time.sleep(3)
odrv.axis0.controller.set_pos_setpoint(0.0, 0.0, 0.0)
odrv.axis1.controller.set_pos_setpoint(0.0, 0.0, 0.0)
But the motor sometimes will go crazy and the vel_limit doesn't seem to work. I exchanged the connection of two motor and ODrive, but the motor still go crazy randomly, and not sure which one will. It seems problem is not enconder failure. When I config single axis of ODrive, there is no problem.
And I also don't understand what's the difference between the flag "startup_encoder_index_search" and "startup_encoder_offset_calibration".
There are a few minor issues in the Shaft, Leg, and Motor assemblies. They range from minor disagreement with the BOM, to a construction tree error.
I'll start with the simplest first:
94180A333
Cup Point Set Screw Pulley Bracket
missing from BOM
- This part is present in assembly, but not BOM.
- Part material needs specification: 3dp or Aluminum
Misaligned bolt in upper AS5047 plate
Part: single plate design > Screws > 92095A181 (1):17
Phantom bodies
Parts: REV 2 Small Pulley Print
, REV 2 Small Pulley LONG Print
Bodies: 1 & 2
1. Inner shaft: Unintended hole
2. Outer shaft: Unintended 0.5mm web
3. Inner shaft: Missing dowel pin
- This part is present in BOM, but not assembly
- Part number: 93600A455
- Needs interference fit sizing
[ ] Outer Big Pulley
: BOM collision
- Assembly has: 94510A310
(Brass Screw-to-Expand Inserts)
- BOM has: 94180A333
(Heat-Set Inserts)
[ ] Inner shaft spacer missing from BOM
- Assembly Name: Spacer (1)
- Needs material spec: 3dp or 16.6x12.6x1 Steel washer
[ ] Duplicate Component: SDP_a_6a53m048nf0908
and Rev 2 SDP_a_6a53m048nf0908:1
are identical
[ ] 6704 Bearings: Bom Collision
- Model Specifies 6704-ZZ
(Non-Contacting Metal Shield)
- Bom specifies 6704-2RS
(2-sided rubber seal)
- Model likely needs updating (2RS is better for this application)
Hi. Nice job! I have a problem with using microcontrollers to communicate with Odrive. I try to read encoder data by following the example given in the Odrive Arduino library. However, no matter what happens, whether the motor is moving or not, the return data is always 0. I have checked the connections by using the Odrive tool for PC, and it can read the encoder data properly. Do you have any suggestions for me? Thanks.
Dear Aaron,
Thanks so much for the great project.
Now I am plan to rebuild the Doggo . I checked the BOM ,but it is hard to map with the CAD,due to missing uniqe component ID. Especially for some small objects. For example in CAD, what is the object under encoder? : Full Doggo Assembly v170/single plate design v471:1/AS5048A v26:4/Component2:1
Is it possible to export a BOM from the CAD and then you give some comment in that BOM ? Or add more information in the CAD file .
Hi, Nate711, and the team, I met a problem and do not know why.I have tested the Odrive board with doggo_setup.py, and it looks good. I connected one Odrive board with one motor and the Teensy board through Uart1, then power on. I run the Teensy, and then it started with the led flashing and command line prompts normally. However, the motor has no any movings
or actions. I send command H, or T, or others, still the motor has no response. I use oscilloscope to check the signals on Pin0(RX1) and Pin1(TX1) of Teensy, the signals keep high without any changing all the time. So I can confirm that there is no UART data sent on Pin1 and no data received on Pin0. What is the reason that no data sent on UART 1 of Teensy? Thanks. BEN
Hello, thank you very much for providing all the materials of your wonderful work.
My friend and i are going to follow you to make a Doggo, but now we meet some problems.
1.We found that the V3.5 ODrives is not available in online shop, so we plan to buy V3.6 ODrives. Which voltage version is better? 56V or 24V? Should i buy it with connectors?
2.When i checked your BOM spreadsheet, i found that there were two 2mW Wire Antenna. But in README.md you said you used a 5mW Xbee. Which one is correct?
3.The product model of minitactor in BOM spreadsheet is P115Bda while in README.md is P105, which one is correct?
4.I can't find the BNO080 IMU in BOM spreadsheet, but i believed it was used in Doggo and you forgot to write it in the BOM spreadsheet, right?
Thank you very much!
As using ABI interface on encoders , the leg can only be calibrated to a spectical(actually I put it at) position manually before powering on , or it will keep the position when power is on as its start position and never go to the ideal one . However , the odrive firmware did not have SPI support .
So how to solve it .....
Dear everyone!
Doggo comman 'H' and 'W' are right. The 'F' command doggo is not good. The parameters use the software defualt value {0.15, 0.07, 0.06, 0.2, 0.0, 1.0, 0.0}, // FLIP;whitch value should change.
Thanks.
In issue #18 @bestjinx asks whether there is a circuit schematic for doggo. In issue #20, @HelloPlanet contributed a tentative pinout. I'd like to address the lack of schematic, and propose a way forward towards a community contributed schematic.
In particular, I'd like to entertain the theory that:
Continuing this line of thought:
We may have an opportunity to contribute a cad diagram as a community. Some notes towards this:
a) The teensy's pinouts for the AS5047D-TS_EK_AB IMU are mapped here. Note that the current generation doggo BOM does not include the IMU.
b) Teensy -> Odrive serial ports get mapped here.
c) The Xbee is connected to the Teensy via the teensy's USB host port, and simply relays USB serial commands to the Teensy (see this)
Last, but certainly not least, the electrical diagram we find in the Doggo Paper shows us that b) and c) are the only data connections in doggo. The rest of the connections are power connections that we can infer with relative ease.
A formal CAD model would be a crucial step in reducing hobbyist/student expertise barriers, and would open the way for a fully integrated open source circuit board with no breadboard component.
@bestjinx, @kigerzh, @HelloPlanet - Would you three be interested in helping an effort to reverse engineer the circuit schematic, if necessary?
@Nate711 @CrazyAZ - what would you guys recommend here? Can we get your blessings on an open schematic for doggo?
Hi,My mentor and I are very interested in your doggo project. Can you tell me the details about Odrive's PDB?Which type of PDB is it?
Amazing project!
Where can I find the specific wiring schematics diagram? I'm a bit confusing about the wiring things such as how to connect the Teensy Controller with the four Odrives.
Looking though the docs and the BOM, I'm trying to see the voltage needed to drive the motor controllers. You referenced 48v on the git, but the motor drivers are only 24v. Are you driving each controller through a separate battery? Do you have a better wiring schematic?
Dear Nate711
I just want test the system can run success,next is my operating。But the motor can't run.
Witch of the parameters is necessary to let the motor run?
I use one odrive3.5-24V(Flash firmware success)(tup.config)
One motor(is MN5212-KV340) connent to M0,one as5047d lock on moto and connect the M0 ABZ. use the power source is 150W。I send 'H' command(Teensy3.5 can receive the command)。
Odrive connet Teensy3.5 with UART1。
But the motor don't run. Some of parameters which should i set can let the motor run.
AS5047D Lock on the motor The ABI connect the ODrive M0 ABZ;Motro connect M0。
AS5047D I PIN is always low
the AB pin wave in picture。
I use the Teensy3.5(#define IMU_VERBOSE 1) power on,Receive the message
next send HOP command,receive the message
Thank You!!!
Repeat of Nate711/Doggo#39
Is the doggo able to rotate on the spot, or take arcing trajectories?
If no, are there any suggestions on how one might help contribute that functionality? My team and I are replicating doggo and if this is a meaningful contribution we can hopefully spare some manpower to try to develop this capability.
Hi Nate and team,
As i have mentioned, I'm working on building a Doggo. (Yay! Thanks!)
While choosing silicone material for Doggo's feet,
I noticed the silicone rubber in BOM, Dragon Skin™ 30,
has a hardness of Shore Hardness 30A.
As i haven't placed order yet, the options I have is from 30A to 90A.
Do I need to choose harder or softer rubber? Please advise. Thanks!
Hi all,
It looks like Doggo's v2 CAD model is experiencing some issues - From the web viewer:
Description:
The DXF export of the v2 cad shows the same issues. I could not check the file in A360 due to the "Access Denied" issue.
I could eventually rebuild the model's assembly tree if necessary. Before I do that:
I want to use your project. But unfortunately, when I clone the project, I will encounter empty folders. All folders are empty, except the photos folder. Please check this problem.
Thank you for helping me.
Hello Nate711,
I flashed your Odrive custom firmware based on version 0.4.0, but it sometimes caused the uncontrolled spinning of some motors. These motors will spin up to full speed if I use odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL. I tested the firmware of version 0.4.0-master, it still happened. But after I flashed version 0.4.11-master, it works. So maybe some problems existed in version 0.4.0.
I'm very sorry to ask if you can migrate your changes to version 0.4.11. Or is there another way to solve this problem?
Thank you so much.
We have been unable to download a zip or clone the project. Many of the folders are empty.
Dear :
I just want konw whitch xxx.ino project can download to Teensy3.5 let root work or just only creat a new project (use the code in src file)?
Thank you!
Awesome project! I'm looking to take a crack at building Doggo, but as $3k is a lot for a humble hobbyist, I'm looking to cut costs/reuse parts I already have. It'd be great to know why you chose certain parts, so I can understand what I'm trading off.
Motors
Legs
ODrive Controllers
Thanks again for sharing your work and taking questions!
Hi,
The suggested T-Motor MN 5212 is currently unavailable in Amazon. Can you give another one to replace it?
Thanks,
Yiyi
Do you know how to buy doggo ?I'd like to buy one
Hi,
When we repeat the dog, we can not find some components in item list.
Thanks,
Yiyi
@Nate711 @pslade2 @CrazyAZ I just completed the assembly. The issue is the belts are skipping teeth when I try to Trot using default parameters. The robot does stand on its own without any issue, the skipping only takes place at high velocities. I am using the provided 3D Printed Brace and HTD 3M Belts. Can you please help me?
Hello Nate, I have tried building the firmware using Platformio on both Vs code and Atom. The build was successful without errors and uploaded to the board. Even after successful build and upload. Nothing shows up in the serial monitor, and the led on board is not blinking. what might be the cause? please help me fix this. I am on the verge of completing this project.
I use ODrvie V3.6-56V and burn the modified firmware. When I run the doggo_setup.py script, it just runs the motor calibration (beep~) and exit. It seems haven't finished all the programs. Should it still have encoder calibration?. I check the errors in odrivetool, no error.
Hello,the project is very great and interesting.And I'm planning to rebuilt following the gudie.You give a hardware list and two version of the Autodesk fusion archive of Doggo.I am some confused about that which version is the hardware list for.Waiting for your answer,Thanks very much!
what is the object under encoder? Is it magnet ? Its path in the CAD : Full Doggo Assembly v170/single plate design v471:1/AS5048A v26:4/Component2:1
Hi. It is a nice job. I am trying to make a doggo, but I meet a problem. I am using AS5047P as the encoder, but the output value of the encoder changes a lot. For example, if I set the position at 1000, the output value fluctuates around 1000 and the fluctuation range is around 50. I find the motor jittering. Is it normal? How can I stop it? Now, I am ready to buy the shielded wire. Maybe, it will work. I need your help.
Hi Nate and team,
I've cloned your fork of ODrive software from this repo, and was trying to build the "custom binary protocol firmware" and flash it to my ODrives.
Upon building, the config file says
CONFIG_UART_PROTOCOL=ascii
do i need to change this, or should i just build and flash with default config?
Thanks.
Hi Nathan,
How to place the IMU board: the X point to head or Y point to head?
No information about the project's license available.
(BTW: Nice project!)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.