Giter VIP home page Giter VIP logo

quadrupedrobot's Introduction

Installation

Flash Ubuntu preinstalled image to the SD card.

Boot Raspberry Pi

cd ~
sudo apt-get update
sudo apt install git
mkdir Robotics
cd Robotics
git clone https://github.com/mangdangroboticsclub/QuadrupedRobot
cd QuadrupedRobot/Legacy/
sudo bash pre_install.sh
cd ..
sudo bash install.sh
sudo reboot

sudo mv Mangdang/System/restart_joy.service /usr/lib/systemd/system/
sudo mv Mangdang/System/joystart.sh /usr/sbin/
sudo systemctl enable restart_joy
sudo reboot

Mini Pupper 2 is already launched on Kickstarter

https://www.kickstarter.com/projects/336477435/mini-pupper-2-open-source-ros2-robot-kit-for-dreamers

Mini Pupper 2

Mini Pupper - ROS, OpenCV, Open-source, Pi Robot Dog

Online channel: Discord, FaceBook, Youtube, Twitter

Document: https://minipupperdocs.readthedocs.io/en/latest/index.html

Mini Pupper will make robotics easier for schools, homeschool families, enthusiasts and beyond.

  • ROS: support ROS SLAM&Navigation robot dog at low-cost price, endorsed by ROS.
  • OpenCV: support OpenCV official OAK-D-Lite 3D camera module, endorsed by OpenCV.
  • Open-source: DIY and custom what you want, won a HackadayPrize!
  • Raspberry Pi: it’s super expandable, endorsed by Raspberry Pi.

Mini Pupper

Mini Pupper was showed both on the first page of Kickstarter and Makuake campaign platform, and got many backers! Mini Pupper Campaign

Mini Pupper had a wonderful workshop on Amazon 2022 re:MARS event. Mini Pupper Amazon re:MARS

Mini Pupper will have a workshop on ROSCon 2022 event. Mini Pupper ROSCon

Regarding the Mini Pupper story, you can find more in the interviews with Katherine Scott@ROS and Audrow Nash@Sense Think Act Podcast #18. Mini Pupper Amazon ROS

Mini Pupper ROS Navigation

Mini Pupper Pees

Background

You maybe see many demos from Boston Dynamics Spot Mini, and so on, many guys want to own their own robot dog to explore the functions, but the price is too high to accept, and it is not easy to explore the robot dog features.

TurtleBot is very convenient for wheeled robot study, but not legged robots. That means, there is no ROS, open-source robot dog platform to study at less than $1,000USD.

Beginning 2020, as Stanford Pupper vendor, we shipped many Stanford Pupper units worldwide. After such global success with Pupper, we took to heart all the feedback from this endeavor. What do our customers want in our products? What kind of products do they like? After more than 11 months pursuing these requests, we would like to show you what we came up with. Mini Pupper!

Coming

Solution and Product

Mini Pupper is the ROS, open-source robot dog platform that supports ROS SLAM, Navigation, and OpenCV AI features with Lidar, camera sensors. It's really a Boston Dynamics Spot Robot Dog in the Palm and legged "TurtleBot" for study at less than $500USD.

ObjectTracking

Mini Pupper will make robotics easier for schools, homeschool families, enthusiasts, and beyond.

Pace

jumpRope

The project is generously supported by Nathan Kau, a member of Stanford Student Robotics, and MangDang Technology Co., Limited

Design

Our Mini Pupper servo is a custom servo to meet the requirements of our new Pupper! Compact, Durable, Unique. To run the Mini Pupper organically and smoothly, high torque & high-fidelity servos were required. We tested many servos on the market and have not found any 9g servo up to the task. After too many Q.C issues we finally gave up on off-the-shelf hobbyist servos, the last thing we want is for our intelligent customers to be let down by poor quality servos. So, we spent several months optimizing and configuring a servo that would work for our project, including tuning the servo parameters ourselves! It is now named Mini Pupper servo. MiniPupper Servo

Explore the Gait Performances

You can use our Mini Pupper to explore many gait performances, such as Trot (diagonal pairs), Pace (lateral pairs), and the Bound (front and rear pairs). We’re confident our Mini Pupper Servos will outperform any servo for the balance of performance and price. MiniPupper gait performances

The Mechanical Design

The mechanical design is simple, stable, and beautiful. You can find many prototype quadruped robots, but few can go to market because of their complex design! Difficult to assemble, lack stability while trotting, and require unpredictable costly repairs. For the average engineering student or extremely curious individual these quadrupeds will work, however, they are not suitable for mass production. The Mini Pupper addresses these issues by creating a professional robot designed specifically for mass production, driving unit costs low enough for even low-budget schools to acquire the robots for learning. Driving innovation for the next generation of robotics enthusiasts. Unlike other 3D printed robots, we use metal threaded inserts to ensure customers can disassemble and reassemble easily while making repairs after extensive use. All parts are secured with quality fasteners ensuring great fit and function as well as durability of the unit. Cleaner builds were achieved by customizing the servo cable length and integrating the IMU into our carry board to reduce the wiring necessary and have an overall clean setup in the body of Mini Pupper. No lose wires! Unlike other enthusiast-made kits, our Mini Pupper does not require the user to plug or unplug wires to power the unit on and off. A simple flick of a switch is all you need! The Mini Pupper battery is charged without the need to remove the battery from the robot, onboard voltmeters will sound alarm and warn you that your unit needs energy. Mini Pupper's design was based on the feedback we received from our existing customers. Because of this we now have a quadruped robot easier to set up and play with than any other robot on the market. Customers with minimal or no experience will be able to use this robot. MiniPupperSize

The Mini Pupper has 12 DOF (degree of freedom), unlike the 8 DOF available through similar projects. There was a lot of debate within our team about whether we should keep with norms and produce the same 8 DOF. After much debate, we concluded 8 DOF robots lack the ability to follow natural biological movements. The benefits of an 8 DOF quadruped only seemed to benefit the producer as the cost of the robot and parts required would be less. But we would have lost the original inspiration of the project… Which was to provide our customers with the highest quality best performing robot in this price range. All the servos are controlled one by one by a PCA9685. The gait performance is dependent on the 12 servos control loop time, requiring more effort to optimize 12 DOF vs 8DOF. There were doubts we could accomplish this with such a low price point. Although it was a challenge, after several months Mini Pupper is the first consumer 12 DOF quadruped robot in the world with a mass production intention.

The HMI (Human-Machine-Interface)

The HMI (Human-Machine-Interface) LCD is another wonderful function. Taking Mini Pupper from a bunch of screws and motors, an animalistic appearance is given to Mini Pupper. You can communicate with it, you can customize it. Mini Pupper is the first consumer quadruped robot with LCD’s adding animal behaviors to your robot.

Eye

Education Courses

We are targeting Mini Pupper for education. Education courses are also coming. To make the study of Mini Pupper easy and convenient, the courses will be released step by step, including mechanical, hardware, ROS, SLAM, navigation, AI functions, and so on. If you’ve been searching for an open-sourced consumer-grade quadruped research robot, Mini Pupper is the best platform for you. We are inviting 10 professional hackers worldwide to prepare the courses. It will be unlike anything that you've ever seen before. MiniPupper OnlineCourse

How to Work Smart

The main software improvement from Pupper is our FSN (Full Self-Navigation) system, based on Ubuntu&ROS and OpenCV. We are moving forward to the FSN target step by step. The interface is also open, we absolutely welcome people to contribute to the project. If you want to join us and move together with us, please don't hesitate to send us an email! handSignal

How to Build

To get started, check out the pages linked below on part sourcing and assembly.

How to Purchase

If you purchase the parts yourself one by one, it’ll run you about $800 and more time. However, you can purchase a kit to build the robot from MangDang channel for cheaper and one-stop shopping. The Kickstarter,Indiegogo, Makuake Crowdfunding Campaigns already closed. You can order by the below channels:

About Stanford Student Robotics

Stanford Student Robotics is an entirely student-run group dedicated to building cool robots and learning new things. You can find many amazing projects on the website. Mini Pupper project is supported by Nathan Kau from Stanford Student Robotics.

About MangDang Technology Co., Limited

Founded in 2020, MangDang specializes in the research, development, and production of robot products that make peoples lives better. Mangdang is headquartered in HongKong, with offices in Beijing/China, Tokyo/Japan. We are a global team with members from many countries and regions such as the United States, Japan, Europe, China and so on.

We are all dreamers, we look forward to connecting talents worldwide and innovating together to perform splendid times!

quadrupedrobot's People

Contributors

alphalambdaepsilonxi avatar gavinmangdang avatar mangdangroboticsclub avatar r3dfish avatar tannergilbert avatar tiryoh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

quadrupedrobot's Issues

Display Backlight missing

Hi,
I am using pupper with ROS and it works fine so far. I managed to run lidar navigation and also could connect a pi camera. Is there a way to use the LCD Display? At the moment it boots with a text on it "Mini Pupper" and has no backlight. What is the smart way to control it on ROS?

Thanks and best regards

Daniel

How to begin developing this Open Source Project. (Software, Custom Parts)

@mangdangroboticsclub Hello! I am very interested in building this project. I love this project so much! There are just some things I am confused about.

1: I understand that there is a BOM list but I don't know where to order the custom Carbon fiber parts. I will order from the section that says Custom parts but I don't see the Carbon fiber shell there. If I can print the Carbon Fiber shell using standard PLA, please let me know.

2: I also noticed that the Software Installation tutorial is not working and shows the 404 error here. If possible, can you provide a link? I would be using a Raspberry Pi 4 for this.

I will also try to add new features to this bot such as GPS location and more. I would then update this Open Source Project with access to its code.

Thank you so much in advance!

Lidar installation:

Do you have instructions for mechanical installation of the provided lidar?

STL Files

Hello there are some stl files missing as fiber parts. Can you share it?

Can you share de fusion360 obj to improve and change some parts?

Thanks.

Assembly Instructions instead of placeholders?

Hi,
It seems most assembly instructions, apart from the Legs video, are simply placeholders for missing, euh, Assembly Instructions

Do they still need to be copied from another repository, or are these documented elsewhere?

Please supply cad files of the delivered kickstarter!

I want to make a base-on-a-stick, like in the examples and tutorials. For that it would be helpful if the CAD file of the baseplate was available. I want to 'click' it into place where the battery normally sits, but for that you need something with tabs which slide into place.

Life would be easier if the baseplate design would be available.

Mini Pupper WiFi

Do you have instructions for setting up the WiFi for the Mini Pupper?

Idea: smart servo

Hello,

Since you created your own servo motors, which means that you can customize the PCB of the servo, I think that you could actually use the servos as a sensor too. I guess that your servos are classic digital model with a PID control loop, sensing the current position, and sending electricity to the motor to move to the correct position.

This means that if the robot is "hitting" something with its legs, we could detect it. Indeed, the servo could return what was the actual movement based on the servo's sensor versus the electricity sent. Then, an algorithm could detect "anomalies", like the motor didn't turn as much as expected based on the current sent, or that the motor moved suddenly without electrical impulse.

To achieve this, you could replace the "PWM" cable, but an I2C or CAN bus, with all motors in daisy-chain, and the Raspberry Pi reading the sensor values. Each servo could have a dip switch to attribute unique bus ID/address to each sensor. Maybe even the servo's PCB could use a tiny AVR microcontroller so that it can be programmed using Arduino, and the community could help improve those algorithms.

The idea is to make the Mini Pupper even more high-tech, without adding much cost. Cost could even be saved if you can simplify the Raspberry Pi expansion PCB, and control all servos straight from the Pi using I2C. Such a servo could also benefit many other robots!

Thanks for this cool project :-)

Laurent

Wrong file format for images in cartoons folder

Several images in QuadrupedRobot/Mangdang/LCD/cartoons have a .png extensions: logo.png, notconnect.png, turnaround.png, walk.png, walk_r1.png.
But these are actually jpg files, which is confusing. Please convert them to .png.

Software Installation

With the pre-installed image the services for joystick and robot are running, but the robot doesn't move while running "calibrate_servos.py".

Therefore I tried to install a empty "ubuntu-18.04.5-preinstalled-server-arm64+raspi4.img" image and cloned and used the "MiniPupper_V2" repro. After installing bluez for bluetooth the connection to the PS4 controller works but for the robot services I get this error:

Traceback (most recent call last): File "run_robot.py", line 16, in <module> from src.Controller import Controller File "/home/ubuntu/QuadrupedRobot/StanfordQuadruped/src/Controller.py", line 2, in <module> from src.GaitScheme import GaitScheme ImportError: /home/ubuntu/QuadrupedRobot/StanfordQuadruped/src/GaitScheme.so: undefined symbol: PyInterpreterState_GetID

Are there other requirements besides bluez I need to manually install? Or should I use another software version?

Issues with leg 3 thigh

Hey there. I'm seeing issues with the movement for what seems to be the thigh motor on leg 3. You can see from the video that it seems to miss the full range of movement. In the calibration tool it has no problems with the full range.

IMG_2095.mov

calibrate_tool not able to access calibration file

I have issues with the calibrate tool. At start it gives an error message:

Error, get nv calibration params failed, use default value. Please calibrate your pupper !

When I press the 'Update' button I get this error:

out
[[ -9.   9.  12.  15.]
 [ 35.  35.  60.  35.]
 [-30. -27. -22. -48.]]
Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python3.8/tkinter/__init__.py", line 1892, in __call__
    return self.func(*args)
  File "calibrate_tool.py", line 239, in updateButton2Event
    self.writeCalibrationFile()
  File "calibrate_tool.py", line 193, in writeCalibrationFile
    with open(ServoCalibrationFilePath, "w") as nv_f:
FileNotFoundError: [Errno 2] No such file or directory: '/sys/bus/nvmem/devices/3-00501/nvmem'

The mentioned path does not exist. Apparently the name is wrong:

# ls  /sys/bus/nvmem/devices/
3-00500

So I changed the path to /sys/bus/nvmem/devices/3-00500/nvmem and tried again.
Now it works and there are no error messages

Running into 'Servos overload please check' issue

After many attempts in assembly, I got the mini pupper assembled. After fixing wifi and figuring out how to run calibrate_tool from the command line, I am running into the 'servos overload please check' issue.

tk.messagebox.showwarning('Warning','Servos overload, please check !!!')

Any suggestions?

I am using the (64bit)v1.0.0.20220219.MiniPupper_V2_ROS&OpenCV_Ubuntu20.04.03.img.zip image.

Calibration Leg 4 Calf

Image 20220109_v1.7.0_MiniPupper_V2_PS4_Ubuntu_21.10.0_Baseline.img.zip
Can't Calibrate Leg 4 Calf. It always moves to the previous position.
Angle Matrix
[-6.0, -9.0, 5.0, -6.0]
[56.0, 79.0, 56.0, 15.0]
[-38.0, -31.0, -35.0, -90.0]
It's the last value in the last row. Seems -90 is the maximum value.
I edited the code, now it updates with -98 and look fine. why is 90 max value in code?

Missing Parts / Files / URDF / Specifications

Good day,

I have not received several of the parts advertised with the developer package, but what it is more concerning there is no information about these parts anywhere, making it impossible to buy them, or print them.

Regarding missing parts information in the BOM Lists:

  • The 4 bearings/brushings used in the chassis of the robot are not listed, and its specifications are not known making it impossible to buy these parts (WHICH DID NOT COME WITH MY PACKAGE). Are these bearings? or brushings? please provide a link to them or at least their specifications.
    image

Regarding missing STL files:

  • Robot feet. I did not receive the robot feet with my package, there is not 3D file to them, nor a mechanism for ordering them

Can you share the Fusion360 assembly file, such that we can use it for more than visualization, that is, so we can use this assembly to obtain a URDF file and to properly make modifications to the robot parts, and assembly?.

ROS integration

Hello! Really nice project! Is there any plan to connect it with ROS?

password and link not working

I tried using the preinstalled image, but clicking on it says page not found. I tried installing through Etcher and it says incorrect login when I use ubuntu as the username and mangdang for the password. Thanks for the help. I am really excited about using this!

stl file

Leg_Arm_Upper part of mine was broken. Can you afford the stl file so that I can print it with my 3D printer?

no way to pair the PS4 joystick

Hi there

I took the 20220109_v1.7.0_MiniPupper_V2_PS4_Ubuntu_21_10_0_Baseline.Img corresponding the V2 custom circuit board and I did not get any problem for the installation.

I Run sudo systemctl status joystick and I got the following:
Sjoystick_service

which looks good as well. However, pairing the PS4 joystick did not succeed. So I run sudo hciconfig hci0 up as you mentioned in a doc, restart the PI and still no pairing.... I do not know how to debug this bluetooth stuff to be honest... and not familiar with it as well.

I ran hciconfig -a and here is the result:
inquiry

So if you can suggest some hint, I will be more than happy

Otherwise, because I would like to see this robot working, how can I test it without the joystick?

I ran also sudo systemctl status robot and I noticed some modules did not match the runtime version, is it something to consider or not?
robot_service

Thanks for your support

Softwareinstallation pain

Hi,
-Step 3: "this version so everyone is using the same version" is not there, so I used the official image
-4. Verify everything is working leads to: Wifi is gone, see other issue here, is fixable but Bluetooth is not working (Failed to start discovery: org.bluez.Error.InProgress)
-4. is follwed by 7. where is 5. and 6.

It looks promising, but the problems that arise are traditional.

Command is not bind to robot more than a few seconds

Hi all.

After solving the servo issue, I'm not facing another one.

My command (the one that came with the KIT) is not bound to the robot more than a few seconds or until a first command. After that, it just turns off (the LED turns off) and the robot does not respond anymore to it. The LCD face also changes to when is not activated.

I'm following the instructions. The command is bound to the robot - the LED turns green.
I press the L1 button to activate the robot. It does activate.
I press the left joystick - nothing happens.
I press the R1 button - from rest to throttle - it starts the throttle - very weirdly I must say. I press the R1 again to rest -
The green LED turns off... The face of the robot changes... IT does not respond anymore...

I need to repeat the bind process again... L1 to activate the robot - joystick does nothing... R1 is the only thing that works...

What's happening ?

Thank you

sudo bash QuadrupedRobot/Mangdang/PWMController/install.sh

/home/ubuntu/Robotics/QuadrupedRobot/Mangdang/PWMController/pwm-pca9685.c:540:13: error: void value not ignored as it ought to be
540 | ret = pwmchip_remove(&pca->chip);
| ^
make[2]: *** [scripts/Makefile.build:285: /home/ubuntu/Robotics/QuadrupedRobot/Mangdang/PWMController/pwm-pca9685.o] Error 1
make[1]: *** [Makefile:1875: /home/ubuntu/Robotics/QuadrupedRobot/Mangdang/PWMController] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-1012-raspi'
make: *** [Makefile:8: all] Error 2

Error in SLAM installation guide Section 1.1.1

The code snippet should read as below (edits in bold text):

cd ~
sudo apt-get update
sudo apt-get install -y python3-wstool python3-rosdep ninja-build stow
mkdir carto_ws
cd carto_ws
wstool init src
wstool merge -t src https://raw.githubusercontent.com/cartographer-project/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=noetic-y
src/cartographer/scripts/install_abseil.sh
source /opt/ros/noetic/setup.bash
sudo apt-get remove ros-${ROS_DISTRO}-abseil-cpp
catkin_make_isolated --install --use-ninja
source install_isolated/setup.bash

Otherwise cartographer_ros will not install.

DKMS

After updating Ubuntu packages, caribration data was not restored.
I re-instaled initial image, then it worked as expected.

I think it was caused by lack of kernel module for newly installed kernel.
I suggest to use DKMS (Dynamic Kernel Module Support framework) that automatically compiles and installs custom kernel module for newly installed kernel.

[Ubuntu20.04] After reboot, the WLAN does not work

Hi,
I followed this link, all things go well, but I can only use my wifi ... Then after executing

sudo bash install.sh & sudo reboot

The WLAN cannot work.
There're some ideas , but after

sudo netplan apply

I got

a dependency job for netplan-wpa-wlan0.service failed

ANY ideas? Thx.

P.S. Another link also does not support wifi?

Question about the code

Hi there,

I am digging in the code but I do see that there are two .so files and no source code associated, can you tell me hay it is like this? Also what is the content of GaitScheme.so ?
Thank you for your help
Regards

Code Of ROS

I read the code of this project, but I did not find code about ROS? Could you tell me where can I find?

is there an updated build instruction

comparing the parts I got with the BOM I see that there are differences in length and size - e.g at the inserts and the standoffs
Is there an update build instruction available?

What are the specs of the Servo?

What are the specs of the servo, if someone customises their build and needs to increase the power-weight ratio proportionally?

Battery monitor not working after upgrading ubuntu 21.04

I used the 20220109_v1.7.0_MiniPupper_V2_PS4_Ubuntu_21.10.0_Baseline.img.zip image.
The battery monitor was working. I could read the data from /sys/class/power_supply/max1720x_battery.
After installing I did a apt upgrade the battery monitor was no longer working.
During the upgrade a new kernel was installed (5.13.0-1015-raspi). The previous kernel was 5.13.0-1011-raspi.
It turns out that the max1720x_battery kernel module is not present in the new kernel.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.