Giter Club home page Giter Club logo

quad-sdk's People

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

quad-sdk's Issues

Implement spirit_utils package

Provide a basic package structure where members can add project-wide functions and classes in a namespace-protected way.

Clean up roslaunch files

Separate roslaunch files into logical units (remote.launch, robot.launch should be wrappers around smaller launch files)

Implement clark controller

Clark controller would give us simple controller to use to test contact detection, state estimation, etc. before development of MPC controller is complete

Refine open loop controller

Refine open loop controller with better end effector trajectories and gains for better open loop walking.

Implement gazebo simulator

  • Add contact force plugin back in (move from SDF to URDF)
  • Add force plugin (gives capability of applying external wrench via ROS)
  • Tie in to clark trot controller

Enable external wrench application in gazebo simulator

The gazebo simulator should expose a topic over the ROS network allowing us to apply a wrench to the robot's body for a specific duration (i.e. 0.5 s, 2s). I believe there is a gazebo plugin called "force" that might do something similar, but there is very little documentation on it.

Bonus points if we can change the location the wrench is applied to and double bonus points if we can apply wrenches to any link in the URDF instead of just the body.

Safe startup for estimation nodes (and any others)

Currently most of the nodes just start running and publishing immediately even if the topics they are subscribed to haven't yet been populated. This can be an issue for the planners, as they require populated data to run smoothly. We need a way to ensure things start up in the proper order to avoid finicky errors. I expect this will save a lot of time once we start running things on the robot.

Isolate MBLink from SpiritSDK

MBLink ships with SpiritSDK, but we have no need for the whole SDK. Remove the excess stuff and just add the relevant libraries and headers.

Inverse dynamics node

Take in grfs message and another custom message holding swing leg trajectories, output a MotorCommandArray message

Fix Doxygen readme

The Doxygen pulls the wrong readme for the repo front page, we should have it point to a more helpful page (and populate that page).

Convert gazebo SDF visuals

Use .stl files in SDF instead of using rectangles. Purely for aesthetics, don't do collision checking with complex polygons.

Implement Custom Interpolation Library

Requested features are (in descending priority):

  1. Linear
  2. Bilinear
  3. Cubic

Lightweight and fast are desired attributes. Should be implemented as a class within spirit-utils.

Add remaining nodes and topics to architecture

These can be empty although the publishers/subscribers should be set up correctly, along with the proper message types. The goal is to create a complete rqt_graph. Remaining components are as follows. Note that the naming conventions are not set in stone yet and should be discussed, and any missing nodes/topics should be added.

Nodes

  • ekf_estimator
  • mpc_controller
  • mocap_interface
  • spirit_logger
  • contact_detection
  • visualizer

Topics:

  • ekf_estimator/robot_state
  • mocap_interface/robot_state
  • contact_mode
  • grf_plan

Edit setup.sh to set up mocap_optitrack

Would be nice if running the setup script would automatically either clone this package and edit the yaml file accordingly, or if we had a fork in this repo with the proper config that we could use.

Extend gazebo simulator control with PD+Feedforward Torque capabilities

In it's current setup, we can run the Gazebo sim in either position control or torque control mode. The output of many of our controllers (and the input of the actual hardware) is a combination of the two; desired joint positions and velocities as well as feedforward torques. It would be nice to replicate this interface in our simulator as well.

Gazebo should expose a single topic called /spirit/gazebo/control_inputs of type MotorControlInput (defined in spirit_msgs). This will contain desired joint torques, joint positions, joint velocities as well as gains kp and kd for each joint. The controller should interpret these interpret these inputs according to the control law below and apply the resultant torques to each joint respectively.

Some good references on how effort_controllers work can be found here. What we want is effectively a new effort_controller called joint_feedforward_position_controller. Look over the other controllers in the referenced folder to see how they work with gazebo.

Fix buggy contact plugin in Gazebo

Contact detection plugin reports toe_contacts one by one as they come in instead of just querying each toe contact sensor at some frequency. It also appears that the plugin does not discriminate between contacts with the environment and contacts with itself or another link on the robot.

Implement some form of sensor reading cache in the contact_plugin class that listens for ~3-5 ms and then spits out the registered contacts in that time frame.

Travis should test ARM arch

Travis build server should verify that the build process works on the arm64 architecture because the TX2 is based on that

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.