Great video, thanks ! Getting a stable gait is a lot harder than it seems at first. I succeeded after quite a lot of trial and error. I still have not got my dog to turn on the spot, but I am working on it. The geometry of turning circles and foot placement is interesting, could you do a video about that...
Hi Paul! Thanks for watching my video! I explained pivot turn at 5:23 ~. Basically, that is all I know. Here is a list of technical papers quadrupedalism.com/d/22-a-list-of-quad-related-papers I hope these papers will help you.
@@robotmania8896 Great information for beginners such as me, thanks for your efforts!! The website link on technical papers is non-existent, can u kindly check and do the needful. If u could also provide any suggestion on resources for quadrupedal robots, it will be very much appreciated. Thanks in advance!!
@@mukunthans3600 Thanks for watching my video! Yes, unfortunately that page was suspended while ago. If you are a student, maybe you can access papers like this through your university or college. link.springer.com/chapter/10.1007/978-3-642-41968-3_59
@@robotmania8896 yeah, this will be of tremendous help!! Thanks for your immediate response. I wish you continue to make robotics more accessible to people who don't have the privilege of ivy league education
Thanks so much for this amazingly informative video! I've had a look at your other uploads and they're all incredible resources for anyone into robotics, you've definitely earned a new sub for all the work you must have put in in order to produce these. Although I understood ‘enough’ to follow along, I keep getting stuck at the graphic you showed at 4:10 and can't fully get my head around what it means. What does Kp, or the s, 1/s stand for? steps? I'm probably overlooking something very easy here
Hi Sally! Thanks for watching my video! This is a scheme of a PID controller. Kp, Kd, Ki are controller gains. “p”,”d” and “i” stand for proportional, differential and integral respectively. “s” and “1/s” are Laplace transformation of the differential and integral. Please refer to these pages for further information. en.wikipedia.org/wiki/PID_controller Why the Laplace transform of the integral is 1/s? - Mathematics Stack Exchange
Really love your videos! This helped me out a ton when building my own quadruped and getting it to move correctly in Gazebo. I was wondering, I would like to give it a try to enable it to handle stairs as well, perhaps through some kind of reinforcement learning. What would you recommend to start looking into for solving something like that? Thanks again for the great content!
Hi Mikael Trana! Thanks for watching my videos! I think it is possible to add stairs climbing movement using classic control. The difficult part will be recognizing stairs themselves and calculating proper foot placement. Also, you have to implement torque/force sensors to detect contact with a surface.
@@robotmania8896 Great, thanks for the reply. Sounds lika a good idea to try solving it using classic control. Guess I was a bit eager to try out some reinforcement learning for it 😅.
Thank you so much for this tutorial! Its a wonderful introduction to quadruped robots and really helped me out. Have you published any paper or document about your work? I would like to reference and give credit to you.
Hi juggernaut7453! I don’t have any papers related to this work since I am explaining already known facts from theoretical point of view. But I am glad if this video has helped you!
Hi MAEN HP! Thanks for watching my video! There is a lot of papers regarding machine learning of quadruped robots, but I don’t know whether there is a paper about dynamics of it. I think you should just study basic mechanics.
I think there's a "mistake" in the inverse kinematics. The angle you have represented in with a blue semi-circle is not atan(y/x) but pi-atan(y/x) so it would probably be easier to understand if you wrote theta1 = pi-atan(y/x) -atan(AG/OA) where pi-atan(y/x) would be blue to match your drawing. Thank you again for the great video, I just rewatched it. Best from Simon.
Would be really interesting to see a video on the actual programming of the gait, how to go from the IK to the gaits... Or am I missing something here...
Hi Rutger Visscher! Thanks for watching my video! The gate describes the order and position of legs at each time step. IK calculates angle of each joint to place legs to positions specified by gate. So, both functions are implemented in this program.
Hi, I am getting an error when running the script. "Could not load controller 'rear_left_shin_joint' because controller type 'effort_controllers/JointPositionController' does not exist"
Hi Doski! Thanks for watching my video! Maybe you don’t have the necessary packages. Try this $ sudo apt install ros-noetic-ros-control $ sudo apt install ros-noetic-ros-controllers
Hi Oracid! Thanks for watching my video! I did a little research, and it seems that you can run gazebo and ros noetic on windows. But I personally recommend you run ros and gazebo on ubuntu. Since running ros on windows is not common, it might be difficult to find support if you got problems with it. If you are using windows, you can install VMware workstation to use ubuntu.
Very nice work! By the way, are you planning to have a github for this pkg? I think it's a good opportunity if you or someone would like to upgrade or debug something. One I have tried is migration from ros to ros2 humble env. Also, you may fixed it already, but at the beginning when I down load the code, there is some incorrect path to the mesh files in the urdf file, so it would be great if you have updated it already.
Hi Towerboi! Thanks for watching my video! I am currently not planning to create a GitHub repository for this project, but I will fix errors if there are any. Please tell me in which URDF file exactly you have found an incorrect path? I am planning to make another tutorial with quadruped robot using ros2. But currently I have some difficulties with ros2 control (even though it might not be a ros2 control problem), so it will take me a while.
the : there is no /STL/base folder, in stead it should be /STL/body for the collision tag. I have already tried to spawn your urdf with ros2 control in Gazebo, so if you want me to share it, that's is very welcome!
Hey, I've followed the instructions perfectly and have changed the chmod permission to allow gazebo to access the controller scripts. I have also installed the ros-noetic-control and controllers libraries. But the robot still cannot do the stand up function or change its pose. It just stands there in the crouch pose. Am I doing something wrong? Please help and thanks in advance.
Hello, thanks for the great video. I use Ubuntu 18 and ROS melodic. When launching the file, there are some errors. "ImportError: dynamic module does not define module export function (PyInit__tf2)" and "ERROR: cannot launch node of type [joy/joy_node]: joy". Do you have any clue to fix these? Thank you!
This project is made using ROS Noetic, so it will not run with Melodic since melodic uses python2 whereas Noetic uses python3. Also, regarding the error of joy_node, you probably have to install the joy_node package. Try to do this “sudo apt install ros-melodic-joy”.
Hello robot mania. I am building a gazebo simulation for my own robot as well, however when I enable controllers in my simulation the robot starts slipping around. I can tell there's a bit of slip in your model as well but it is far less than what I am experiencing. Would you have any clue how to fix feet slipping? Thanks!
Hi Simon Jeppesen! Thanks for watching my video! Probably this happens because either physical properties of your robot or PID gain values of joint controllers are set to inappropriate values. Please check origin, mass, inertia, friction coefficient values for each part of your robot. Also, check PID gain values in controllers.yaml file. Maybe these values are too high.
@@robotmania8896 Thank you I appreciate it. I''ve gone over everything and adjusted all parameters individually it seems that I've managed to find an appropriate combination that minimizes slipping. Thanks
Hi The Congo! Thanks for watching my video! If I understand correctly, you are talking about your own robot. If the robot is not moving, it means that there is not enough reaction force from the ground. You have to make your robot kind of kick the ground to move forward.
@@robotmania8896 this is my video of the quadratic I was referring to. If you can take a look and tell me what you think the issue may be ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE--69tfw6I6Ug.htmlsi=uuZ099Tzzx17pffy
It seems to me that the biggest problem of this structure is that your robot only has one joint on each leg. So, when the robot moves one leg, other legs resist and the robot is not able to move forward.
Since the robot should move its center of mass to the left and right, I actually think that 3 joints are required for each leg. Just as I described in my video.
Hi Mustafa Görür! Thanks for watching my video! You should use GUI which you can execute using the controller.py script. I explain it in the video at 10:20~
Hey there. Great video, loved it! We are working on building a quadruped robot, do you have any useful references you could share? We have already made the mechanical construction we are soon to implement gait controllers and probably WBC and MPC (if we have time). I am sure we can use some of your code to establish a simulation thank you!
Hi Simon Jeppesen! Thanks for watching my video! I don’t have many articles about quadruped robots. This is the only one I could find. drive.google.com/drive/folders/1iQ5dOQ95Eb8nRnrZjcthdj5pu4xGXXAC?usp=sharing Also, you may find valuable information here quadrupedalism.com/d/22-a-list-of-quad-related-papers
Thank you for your great video! Can I ask some problem? I want to install catkin. But The problem is not solved. (catkin : depends: python3-catkin-pkg (>= 0.4.14-2) but it is not going to be installed) I used in Ubuntu 20.04. (Ryzen 5900HS + RTX 3060 Notebook).
@@robotmania8896 Yes. I have tried this all steps. But the problem is not solved. [sudo] password for dogeon: Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: catkin : Depends: python3-catkin-pkg (>= 0.4.14-2) but it is not going to be installed E: Unable to correct problems, you have held broken packages.
@neo1960 Here I found identical issue to yours. answers.ros.org/question/258444/sudo-apt-install-catkin-not-working/ Also, you may reinstall Ubuntu, since it seems that something is wrong with your apt.
Hi Kittapas Chuaymee! Thanks for watching my video! To run this project, please download the zip folder from the google drive. The link is in the description to this video.
The Zlobins, hi! Thanks for watching my video! I don’t have git repository for this project, but I have uploaded all packages to the google drive. The link is in the description. I also have explained how to use these packages in the video (9:26~). Please see that part for details.
Hello. thanks for the great video, very well explained I also had an error when running the script. "Could not load controller 'rear_left_shin_joint' because controller type 'effort_controllers/JointPositionController' does not exist" but when I manually run joypad.py and robot_controller_gazebo.py manually and then "roslunch" the project it works perfectly. I'm not familiar with ROS nor catkin. do you think you can take a look at it? thank you so much for sharing.
Hi navid sabet! Thanks for watching my video! Usually, errors like “'effort_controllers/JointPositionController' does not exist" mean that you do not have necessary packages. Can you please try to run these two commands? $ sudo apt install ros-noetic-ros-control $ sudo apt install ros-noetic-ros-controllers
@@user-jx9rl1ny3h The simplest way would be, to open the terminal and go to the directory where these 2 files exist. Then type "chmod +x " in my case, it was like this : ~/quadrupted_robot/src/controller/scripts$ chmod +x robot_controller_gazebo.py
Hi Alex Ma! Thanks for watching my video! If you increase length of the step, the robot will run faster, but you will also need to readjust PID gains of controller.
If these robots can be used for agriculture purpose aunty designed for agriculture products then great advancement and that is the end of the poverty in all of the world
I'm new in ros and gazebo. I tried to run the project but I'm getting this error. ERROR: cannot launch node of type [joy/joy_node]: joy ROS path [0]=/opt/ros/noetic/share/ros ROS path [1]=/home/tamim/quadrupted_robot/src ROS path [2]=/opt/ros/noetic/share process[RAMPED_JOYSTICK-8]: started with pid [32134] process[ROBOT_CONTROLLER-9]: started with pid [32135] [INFO] [1674160616.289649, 0.000000]: Loading model XML from ros parameter robot_description [INFO] [1674160616.316177, 0.000000]: Waiting for service /gazebo/spawn_urdf_model [INFO] [1674160616.480459, 0.000000]: Waiting for /clock to be available... [gazebo-2] process has died [pid 32121, exit code 255, cmd /opt/ros/noetic/lib/gazebo_ros/gzserver -e ode /home/tamim/quadrupted_robot/src/spot_gazebo/launch/world/normal.world __name:=gazebo __log:=/home/tamim/.ros/log/01d44f88-9839-11ed-8721-65622d089ba7/gazebo-2.log]. log file: /home/tamim/.ros/log/01d44f88-9839-11ed-8721-65622d089ba7/gazebo-2*.log [ INFO] [1674160617.522318952]: Finished loading Gazebo ROS API Plugin. [ INFO] [1674160617.524098482]: waitForService: Service [/gazebo_gui/set_physics_properties] has not been advertised, waiting Can you please tell me how to solve the error? it will help me a lot.
Thanks a lot for your tutorial. Can you please tell me why i am getting this errors? ERROR: cannot launch node of type [joy/joy_node]: joy ROS path [0]=/opt/ros/noetic/share/ros ROS path [1]=/home/tamim/quadrupted_robot/src ROS path [2]=/opt/ros/noetic/share process[RAMPED_JOYSTICK-8]: started with pid [32134] process[ROBOT_CONTROLLER-9]: started with pid [32135] [INFO] [1674160616.289649, 0.000000]: Loading model XML from ros parameter robot_description [INFO] [1674160616.316177, 0.000000]: Waiting for service /gazebo/spawn_urdf_model [INFO] [1674160616.480459, 0.000000]: Waiting for /clock to be available... [gazebo-2] process has died [pid 32121, exit code 255, cmd /opt/ros/noetic/lib/gazebo_ros/gzserver -e ode /home/tamim/quadrupted_robot/src/spot_gazebo/launch/world/normal.world __name:=gazebo __log:=/home/tamim/.ros/log/01d44f88-9839-11ed-8721-65622d089ba7/gazebo-2.log]. log file: /home/tamim/.ros/log/01d44f88-9839-11ed-8721-65622d089ba7/gazebo-2*.log [ INFO] [1674160617.522318952]: Finished loading Gazebo ROS API Plugin. [ INFO] [1674160617.524098482]: waitForService: Service [/gazebo_gui/set_physics_properties] has not been advertised, waiting...