- Install vs-code editor on your ubuntu 20.04 host OS : https://linuxize.com/post/how-to-install-visual-studio-code-on-ubuntu-20-04/
- Install docker on your ubuntu 20.04 host OS : https://docs.docker.com/engine/install/ubuntu/
- Please remember to follow all the steps in docker installation, and verifying it's successful installation @ https://docs.docker.com/engine/install/ubuntu/#next-steps > https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user (Step 1 2 3 4)
- Install following extensions on your VSCode:
- Clone this repository using:
git clone --recurse-submodules https://github.com/vedran97/A3C_ROS.git
- From the current working directory, cd to ENPM_662_Project2 repo which u just cloned
- Open a terminal in /workspaces/A3C_ROS and type
code .
- A VSCode popup should arise which says "Open folder in Container" where you choose Yes OR press F1,search for "Open Folder in Container" and execute the command
- Now wait for the build process to finish, once it's completed, you have a fully functional ROS1 workspace with example packages
- When the container is built for the first time, a error will popup saying "Failed to enable ROS Extension" , just choose the reload window option
- Set up ROS dependencies using the following section
- Once the repo is opened in a container, you have to install ROS1-dependencies. To do this, follow these steps:
0. Inside the container, use a bash terminal will open at the following command's path if not, run it
- cd /workspaces/A3C_ROS
- rosdep update
- sudo apt-get update
- rosdep install --from-paths src --ignore-src -r -y
- cd /workspaces/A3C_ROS
- catkin_make
- a3c_description:
- This package contains urdf of Systemantics India's Asystr 3C robot, and robotiq 2F 140mm stroke gripper
- There are launch files for spawning just the robot in gazebo and moveit, and for spawning robot with the gripper
- a3c_kinematics:
- This package contains a custom written c++ library for forward kinematics of A3C
- The profiler node runs FKs for a set amount of time, and gives a per iteration result
- Further work can be done on writing a velocity and position IK implementation
- a3c_moveit:
- Contains moveit based tutorial, and demo packages developed around Asystr3C
- The package demonstates basic rviz visualization of joint space and cartesian space traj gen using moveit
- This package also demonstates basic pick and place operation using gazebo and rviz
- a3c_moveit_config:
- This package contains entire moveit config of A3C, it has custom tuned position and effort controllers for each joint and the gripper
- Self collision avoidance is kept pretty tight
- It also has ROS based IK validation package, which draws a circle
- kinematics_validation:
- This package contains 2 files, 1 used for generating symbolic FK equation, and the other generates a circular trajectory for A3C using inverse of jacobian
- roboticsgroup_gazebo_plugin:
- It is a mimic joint plugin cloned from https://github.com/roboticsgroup/roboticsgroup_gazebo_plugins , All credits go to the author @Konstantinos Chatzilygeroudis
- This mimic plugin is used to enable gazebo's use of mimic'ed joints used by the robotiq 2F gripper
- workspace visualization:
- This packages iterates J1 and J2 positions in steps to plot a 3D plot of maximum reachable workspace