
Set up a Linux environment on Windows using a virtual machine, install Ubuntu 22.04 desktop, configure VMware Workstation Player, and allocate CPU, memory, and disk space for ROS2 development.
Create a ros2 workspace with a source directory and a robotic arms control python package, then use bash aliases to build, source, and run ros2 commands efficiently.
Explore how ROS2 static transforms broadcast and visualize between world, base, and link frames in a robotic arm. Understand translation and rotation, and compare Euler angles to quaternion representations.
Explore how serial robotic arms manipulate objects through joints and links, define end effector, workspace, and task space, and plan a URDF-based design with revolute joints and limits.
Explore how to add inertia to the panda arm URDF using zakro macros, enable the hand and gazebo options, and generate URDFs for ros1 and ros2 simulations.
Learn to configure and run a panda 7 dof robotic arm with ros2, gazebo, and joint trajectory controller, using controller spawner launch files, urdf, and trajectory messages.
Implement finger control in ros2 by configuring prismatic joints and a mimic joint, driven via a joint trajectory controller, and fix gazebo paths with package-based mesh loading for accurate poses.
Master forward and inverse kinematics in robotics, mapping joint angles to end effector position and orientation, and use a forward kinematic solution to reach a target in x and y.
Explore Denavit-Hartenberg tables for a Puma 560 arm, deriving forward kinematics by manually building the four-parameter DH table and tracking frame-to-frame rotations, including a clockwise 90-degree rotation.
Install ROS Noetic on Ubuntu 20.04 with a desktop full setup including Gazebo. Configure bashrc to source the ROS setup automatically and verify with roscore.
We have prepared a detailed documentation on GitHub repository for your convince so that you do not have to think about writing the code your self .
Fork all the codes made in the lectures of this course .
https://github.com/noshluk2/ROS-Ultimate-guide-for-Custom-Robotic-Arms-and-Panda-7-DOF-
Develop a Basil ros package and design a three-joint serial robotic arm in urdf, defining revolute joints, joint limits, base links, and an end effector for clear design requirements.
Create a three degrees of freedom robotic arm named bazoo by building its URDF in VS Code, with joints connected to world via a fixed joint, using red cylinder geometry.
Learn to build a URDF for a panda 7 dof robotic arm by defining origin, revolute joints and axis, and connecting base link to end effector while adjusting visual geometry.
Explore how transforms relate links and joints in ROS, distinguishing fixed non-actuated joints from actuated revolute joints, and how state publishers handle these transforms.
Launch Gazebo with the robot description loaded and the URDF spawned in an empty world, then compute inertia tensors for a solid cylinder (radius, height, mass) to enable realistic physics.
The lecture covers inertia metrics in gazebo simulations, using moment-of-inertia values (ixx, iyy, izz) for cylinders with radius r, height h, mass m, and shows applying formulas to compute inertia.
Install ROS control controllers for a Panda 7 dof arm by defining URDF transmissions, a configure file, and a launch file with a controller manager.
$ sudo apt-get install ros-kinetic-joint-state-controller
$ sudo apt-get install ros-kinetic-effort-controllers
$ sudo apt-get install ros-kinetic-position-controllers
Resolve controller setup issues by adding the ros control gazebo plugin, fixing urdf joint mappings, and validating ros topic controllers to enable reliable joint position control in gazebo.
Derive the Puma 560 Denavit-Hartenberg table to compute forward kinematics by manually constructing the Denavit-Hartenberg parameters, analyzing frame transitions and z-axis rotations.
Derive the DH table for bazoo, a simple custom robotic arm, by establishing frame alignment, identifying theta and D parameters, and detailing link lengths L1, L2, and L3.
Explore the panda robot, a seven degrees of freedom commercial arm, and its ros-based simulation workflow with a urdf in Zakuro format, hardware interfaces, and Gazebo launch files.
Configure the panda seven dof arm with a joint trajectory controller by locating transmission tags and setting a position joint interface. Create the panda joint trajectory controller yaml.
Diagnose and fix hardware interface errors in the Panda seven dof robot, enable ROS Gazebo control, correct finger joint naming, and apply the Panda trajectory controller to test joints.
Explore inverse and forward kinematics for the panda 7-dof arm using the robotics toolbox, integrate real-time kinematic solutions into a trajectory controller, and test in Gazebo.
Apply forward and inverse kinematics for the panda 7-dof arm using the rtb robotics toolbox, generate urdf-based tables, and validate kinematic solutions in simulation.
Use the trajectory action client interface to move the panda robot through multiple points A, B, C, and D, enabling end effector poses to trace a square.
Explore how to drive a Panda 7 dof robot arm via ros2 using trajectory messages, inverse kinematics, and an action client to generate a four-point square path in Gazebo.
Course Workflow:
We will start by creating a custom robot named as BAZU . Which will be created from scratch , URDF containing joints, links are going to be explored in depth. Once the robotic arm will be created we will add Controllers into it (position, effort, Joint Trajectory) from ros2_control package .This will lead us to DH tables for forward and inverse kinematics solutions for our custom robot using Robotics Toolbox by Peter Corke .
After understanding all the basics of with a Custom Robotic Arm we will move to a very well known commercial robotic arm Franka Emika Panda 7 degree of freedom robotic arm. Our first Object will be to install custom controller into it as we would have learned that in previous sections .Only reason to do that is to be able to control any working URDF robot available . Forward and inverse kinematics will be solved for this robot with the help of robotics tool box mentioned earlier .
Last thing we will do is to make a action lib interface for Joint Trajectory for panda robot so we just need to send way points and it moves it's end effect in a shape that we will define .
Outcomes After this Course : You can create
Custom Workspace
Custom Python Packages
Custom Robotic Arms
Ros2 Control Interfaces
Forward and Inverse Kinematics Solution
Launch files
RVIZ and Gazebo Simulation Fundamentals
Custom Controllers for you Robots
Position Controller
Effort Controller
Joint Trajectory Controller
Panda Robot Trajectory Execution
Software Requirements
Ubuntu 22.04
ROS2 Humble
Motivated mind for a huge programming Project