calculateFK.py
: Calculates the end effector position w.r.t world frame for a given joint configuration of the manipulator Code | Detailed ExplanationcalcJacobian.py
: Calculates the Jacobian Matrix for a given joint configuration of the manipulator Code | Detailed ExplanationIK_velocity.py
: Calculates the joint velocities for achieving a particular end effector velocity in a given joint configuration Code | Detailed ExplanationsolveIK.py
: Calculates joint configuration for achieving particular end effector pose Code | Detailed Explanationrrt.py
: Rapidly-exploring random tree planner in joint space for traversing between two joint configurations Code | Detailed Explanation
core
: contains support code we provide to you, such as helper functions and interfaces for interacting with the robot (either simulated or real!)lib
: contains functions implementing algorithms to solve computational problems such as forward and inverse kinematics and trajectory planninglabs
: contains test scripts that use the algorithms you implement inlib
and the tools we provide incore
to control the robot and achieve tasksros
: contains code necessary to launch the simulator.
The simulator must be run on Ubuntu 20.04 with ROS noetic installed. You can follow the standard installation instructions for Ubuntu 20.04 and ROS noetic.
To get started using this development environment, you must first follow the instructions to install panda_simulator, a Gazebo-based simulator for the Franka Emika Panda robot. The only difference is that you will name the catkin workspace meam520_ws
to avoid conflicts with other projects.
The instructions specify to use catkin build
, but we recommend building with catkin_make_isolated
instead.
Once you've completed that installation, add
source ~/meam520_ws/devel_isolated/setup.bash
to your ~/.bashrc
to source the workspace. If all has been done correctly, you should be able to run
roslaunch panda_gazebo panda_world.launch
to launch the Gazebo simulation.
Since you may be launching and killing Gazebo many times , we recommend reducing the clean shutdown wait time for a better experience. Edit the file:
cd /opt/ros/noetic/lib/python3/dist-packages/roslaunch
sudo vim nodeprocess.py
and change the lines that say
...
_TIMEOUT_SIGINT = 15.0 #seconds
_TIMEOUT_SIGTERM = 2.0 #seconds
...
to 2.0
and 1.0
respectively.
Add the following line to your ~/.bashrc to allow your python scripts to find the meam520 core modules.
export PYTHONPATH="${PYTHONPATH}:/home/${USER}/meam520_ws/src/meam520_labs"
Once you have a forked, cloned, and set the upstream for the git repository run catkin_make_isolated
again.
Once the build finishes, open a new terminal and run:
roslaunch meam520_labs lab0.launch
To check that the installation is successful, run a demo script:
cd ~/meam520_ws/src/meam520_labs/labs/lab0
python demo.py
You should see the robot in Gazebo moving.