doggo's People
Forkers
alok-rajawat mjy2002 kelvinson hasufel whitespur yaoguodong hetianxia lyh85 2050utopia seewant amiaolee rabbit-zc peterzs sytdhydh happysunzone hgser jason-will aaboutl nestsec tenyearsadream permanzh ykevin dpduanpu iamwuxi mjz789 maohaihua suljaxm jinwandou zapplelove kunhuoai bingsilence chatmoon cnxqscn hitzhangchao linecode kernel2201 zxykklt lxdasi004 gitwyy binmagic jecelychen marvelgalaxy mayuanqiang collector-m leo-xxx blita autogyro anallen ttklm20 sunduoze zhang-hongjie zblcving trigrass2 1505444212 xupeng1001 mirror4ego yntantan ccszwg istfractus arvinjin begger123 starcorpceo mohamedtareque consider1001 kidf1 jackstarred liangjingli tukeyone fanner01 yourchanges kigerzh ponyhan guolizi666 bingyingl anshuai666 tienchihhsiung cxfchxy ucr-robotics mhming keranye zizai cloudolp ichbinxy lamarrr gavin0930 sakamotoyu-lab bit212-2019 doche krallb jc7tee tonyhuang1976 hf-zhang lwzbuaa dragonxu zhangfaquan magic98 introvin k18136 ericyufengwu gokulsomandoggo's Issues
BEN
Hi, guys, I am new here, and I have more than 25 years of microcontroller programming experience, and I found DOGGO platform on Internet, and I am very interested in developing more advanced features on this platform. Is any body knowing where can I or how can I buy a Doggo robot for testing? Thanks
Ben
Petrel AI System, Surrey,Canada
my email: [email protected]
Add touchdown detection to build a better bounding gait.
Add safety check to ODrive gains.
Use state transition functions
Instead of directly setting the state variable, encapsulate that behavior in a function like "TransitionToStop," which could also do things like print "Transitioning to STOP state" and also have some side effects.
Some problem in ODrive config.
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".
Add little state machine so you can start/stop the position control loop by sending a certain character.
where is the relay coil control wires connected to?
Hi, Doggo team, I am almost finishing the project. Does anybody know where is the relay coil control wires(the ESTOP) connected to ? Where is the ESTOP located? Where is the 12V volts to the relay control coming from? Thanks. BEN
Add state machine or task queue to better schedule events like jump or walking.
We could use a task queue to keep track of events such as a jump command. In that case we'd append the jump behavior to the task queue and then wait for it to complete before going back to default behavior. Using a task queue instead of a state machine might be more extensible because instead of writing an additional switch statement for every new behavior, you would instead only write the behavior function and pass that a pointer to that function to the queue. Something like that anyways.
Doggo Can‘t Stand up?(current set 60A)
I have build up a doggo。 Calibration leg downward movement,next leg turn horizontal。Next send command set parameter:h 0.15,d 0.05,u 0.05,p 0.35,l 0.1,f 1.5,s 0.0;the parameter set successful。Then put doggo on the floor,leg can't stand horizontal。Next send W command let doggo walk,but Doggo fall down can‘t stand up。
Migrate breadboard connections to perma-proto board.
Split function headers and definitions into .hpp and .cpp files respectively.
Isn't PCB open source?
Tighten outer leg and outer pulley set screws
Some Questions about Parameters
What does the parameter of “leg_direction” mean?Which leg does leg0, leg1, leg2, leg3 represent respectively?Thank you.
Add safety measure for when commanded leg length is more than feasible.
Go into some kind of e-stop mode, or at least don't execute on the command, when you command a x,y coordinate that isn't feasible for the leg.
Create time lapse figure of trot / walk / bound
Images like the stanford horse experiment.
Fix the issue where the first uart command to odrive is corrupted.
The Steps
After installing the hardware, what should I do next? (software)
Waterjet new 55mm braces. Print braces for the braces.
Add continuous sinusoidal control.
Make it so that if you change the frequency of the gait, the trajectory doesn't jump discontinuously.
Create CAD figures
Check the research document.
- Belt drive explosion
- Leg dimension diagram
Take 'hero' shots.
- Whole robot lab 64 in front of the banner
- Close up of belt drive system
- Pictures during some gait (prob trot)
BOM + cost of manufacturing
Add MIT license to github repo
The description states the code and design is open source, but it should have the MIT license (or other license) attached to it so that others can use it more freely.
Test jump code.
Test SD card logging.
Hi, Doggo team, I have finished my doggo robot, and it can right trot, jump, hop, and dance. However, it can not walk. When I send "W" command, it just move at the same location and not go forward. I check https://github.com/Nate711/Doggo , it says that "'W': (W)alk. Does not work currently". However I watch the youtube for the doggo project, in the video, it can walk. So, I just want to ask if the walk function included in the doggo code?
Motor no responding to teensy command
Hello!
We have configure teensy and odrive by your code(The only difference is we use AS5047P with a cpr of 4000, which I assume won't impact main function. We also comment out //#define USE_XBEE so we are using computer serial.)
However, when we send command (ie. E, R)to teensy by Serial software on computer, the motor was not moving at all, it just stay in close_loop state.
In the function SendByte, a "uint8_t" byte(which equals to unsigned char) is transformed into a "char", I guess this leads to my problem because when byte>=128 it will be transform to a negative number but I have not idea if this really matters.
void ODriveArduino::SendByte(uint8_t byte) { serial_ << (char)byte; }
Thanks!
Doggo code seems not running
Dear team,
I compiled and uploaded the Doggo code into my Teensy 3.5 board in PlatformIO, however there was no LED flashing and no serial information output for monitoring, so I donot know if the Doggo code is running. I spent many days and still not solved the problem. Did anybody meet this kind of problem and know how to solve it? Or, any special concerns needed for compiling the Doggo
code? Thanks. BEN
Print load cell couple.
How to configure ODrive before connect it to teensy?
Hi, I want to ask How to configure ODrive before connect it to teensy? I try to configure ODrive as follows but the motor go crazy(Rotating very fast) sometimes, is there any problem in config?
% init:
odrv0.erase_configuration()
odrv0.reboot()
odrv0.config.brake_resistance=0
odrv0.axis0.motor.config.pole_pairs=11
odrv0.axis0.motor.config.resistance_calib_max_voltage=4.0
odrv0.axis0.encoder.config.cpr=2000
odrv0.axis0.motor.config.current_lim=10
odrv0.axis0.motor.config.calibration_current=10
odrv0.axis0.motor.config.pre_calibrated=False
odrv0.axis0.encoder.config.pre_calibrated=False
odrv0.axis0.controller.config.pos_gain=0.01
odrv0.axis0.controller.config.vel_gain = 5.0/10000.0
odrv0.axis0.controller.config.vel_limit=5000.0
odrv0.axis0.controller.config.vel_integrator_gain = 0
% motor calibration:
odrv0.axis0.requested_state=AXIS_STATE_MOTOR_CALIBRATION
odrv0.axis0.motor.config.pre_calibrated=True
% encoder calibration:
odrv0.axis0.encoder.config.use_index=True
odrv0.axis0.requested_state
odrv0.axis0.requested_state=AXIS_STATE_ENCODER_INDEX_SEARCH
odrv0.axis0.requested_state
odrv0.axis0.requested_state=AXIS_STATE_ENCODER_OFFSET_CALIBRATION
odrv0.axis0.requested_state
odrv0.axis0.encoder.config.pre_calibrated=True
% startup config
odrv0.axis0.config.startup_encoder_index_search=True
odrv0.axis0.config.startup_closed_loop_control=True
odrv0.save_configuration()
% test motor
odrv0.axis0.requested_state=AXIS_STATE_CLOSED_LOOP_CONTROL %(1)
odrv0.axis0.controller.pos_setpoint = 1000 %(2)
The motor go crazy sometimes at (1) and sometimes at (2) . The encoder seem work properly, I read the encoder data find that set_postion at positive 1000 but the motor ratate in the negative direction and it's speed is getting faster and faster. Is there any sequential requirement for connection motor and ODrive connections?
Add generic quadruped gait function to remove duplicate CoupledMoveLeg Code.
How to use PlateformIO serial motitor to send signal to teensy?
Build and Upload work well. But i can't send any signal to teensy with PlatformIO: serial monitor. Could anyone tell me how to use it.
Turning
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?
Tune walk, trot, bound gaits.
A Circuit diagram is needed!!!
I really need the circuit diagram to check if my wiring is right. can you provide one to me ?
Fix conflict between SD card class and ChibiOS
Create software and electrical schematics.
- Electrical
- CS architecture
Teensy pin 13 conflicted: BlinkThread & IMU SPI all use it
Dear Team,
Now I am rebuilding the Doggo . I check the code ,find that "BlinkThread" use the LED_BUILTIN ( #define LED_BUILTIN (13) ), while the IMU SPI port still use the pin 13 as the SCK .
I know that I can re-assign a pin . But I just want to confirm that I start from a golden point .
do you know how to buy a doggo?
do you know how to buy a doggo?i want to buy it
Gather sinusoidal force tracking data
FLIP command what's the parameters set?
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.
Add fans to chassis
Build a logical system for enabling debug printing.
It would be nice to add certain serial commands that would enable certain groups of print statements, or at least add a better system of using #define DEBUG
.
doggo codes don't run as well as expected
Hello there! I have done previous jobs to run doggo codes on teensy and Odrive boards which have had been tested in doggo-firmware,are working well.The thing is when I commanded a JUMP with "J;" in Arduino Serial Monitor, the motors were nearly like stucking(the fact is that they moved 5-8 degrees) with noise of heavy "cluck".I have tried to load up the leg but it didn't move at all.The wiring of motors and Odrive, Teensy to Odrives are exactly copied from the image you guys provided.
My guess is that I have to re-tune the gains of close-loop-control because the gains and setponits of each specific movement is settled according to source code and the paras maybe differ form hardwares.
Have you guys ever met this before?I am looking forward your sooner reply!Thank you!
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.