Information about our lab, the repositories that we use and how we work.
We want to promote the sharing of code developed in the lab and to increase visibility of which repositories are being actively used, particularly when it comes to the hardware. We want to know what works, so that if a student has an interest in, say, using a particular robot, they know where to start. Minimizing the duplication of work is also desirable.
We want to keep track of the repositories that we are using for our projects in the lab. When forking from an existing repository, the fork should be made to our organization, newly created repositories should also be added here. To keep track of the repositories so that others can easily re-use and contribute:
- Add a link to your repo to this README and add some useful details.
- Ideally repositories that we would typically use together should be grouped, for example, for the UR5 we have the driver, the REAL specific repo and then the ur5/realsense calibration repo.
We have a UR5 and a UR5e in the lab. The UR5 is currently mounted on the Husky and the UR5e is mounted in a cage. We have two robotiq grippers (a 2F-85 and a hand-e) that can be mounted on either of the arms. To work with the robots we suggest using ROS Noetic and Ubuntu 20.04.
We are currently using the following repositories:
This repository was created to contain details and configurations specific to our robots, it can be used to run either of the arms in a gazebo simulation or to run the real robots. The repository contains the calibrations for the arms in the lab, as well as files specific to the different hardware combinations such as UR5 and Robotiq hand-e gripper. There are also MoveIt configuration files for each of these combinations.
This repository is a requirement for REAL_ur_robots, we have cloned it to make some tweaks. The original repo only supports up to ROS Melodic. Our fork uses the newest version of the ROS UR driver and works with ROS Noetic.
If you wish to use a realsense camera with a UR5/UR5e and wish to calibrate to find the transform between the robot arm and the camera, you can use this repository. The original repository hasn't been updated since over 3 years so we cloned it and updated it to work with ROS Noetic.
We use this kinematics package for calculating forward and inverse kinematics for the UR5, it is not used in our normal pipeline but is required for robo-gym. This package was cloned and edited to be a catkin package.
There are three 2F-85 grippers and one hand-e gripper in the lab. The mounting can be used to attach the grippers to either a UR5 arm or a Franka Panda/FR3 arm.
The repository that we use with these grippers is:
We have three Franka FR3 arms in the lab. We currently control them with the Polymetis controller.
Other Franka repositories that we use:
Repositories that we use with this robot:
Repositories that we use with this robot:
Repositories that we use with this robot:
We have several Locobots in the lab. The documentation for how to get them up and running is here
Repositories that we use with this robot:
This is a fork of the original repository. We use this repo to control the locobots.
We have one Stella quadruped from ahead.io in the lab. The robot can be controlled to execute simple commands via a joystick. For more low level control of the robot, we are waiting for control software for the robot, it is currently still in development.
Repositories that we use with this robot:
This is the external repository where the code to control the Stella is being developed. It contains the server software which should run onboard the robot as well as python examples which can be run on a remote computer.
We have built one pupper from the Stanford pupper project and have all of the parts for a second build.
Repositories that we use with this robot:
This repo was forked from the group at Stanford that developed the Pupper project, it includes code for the Pupper simulation and code for training and running policies. A project called 'reacher' is included, it simulates just one of the legs of the pupper mounted on a plate and is used for some of the training/policy playback examples. For more information, check out the course in the link provided above.
================================================================================
================================================================================
In an effort to enable better software development practices in the lab, we have created some rules that all students should follow when contributing to our group's github organisation. Practicing these skills are very helpful and will be valuable in getting a job after graduate school.
Students will not be able to make any kind of commits directly to the main branch of these repositories. To contribute to these repositories, students should:
- Create a new branch with a descriptive name
- Commit changes to this branch
- Create a pull request (PR) and have someone from the lab review the PR before merging to main.
- If you are creating a new repository, the name should be descriptive and I would advise to add REAL_ to the start to help us differentiate between our repos and forked repos.
- Commits should be descriptive so that if required, changes can be more easily tracked.
- Keep changes in new branches so that your main branch is stable. Merge to main once tested.
================================================================================