Harmonize Mobile Manipulator in ROS 2 Jazzy

Job ID: 40137963

Budget: ₹600 – ₹1,500 INR

Project Title: Integration and Simulation of Custom Mobile Manipulator in ROS 2 Jazzy

Project Overview: I am developing a simulation for a custom aquatic/land hybrid robot using ROS 2 Jazzy and Gazebo Harmonic. I have the individual components (a custom chassis and a 6-DOF manipulator arm), but they are not yet functioning correctly as a unified system. I need a ROS 2 expert to properly integrate the manipulator onto the mobile base, fix kinematic/physics issues, and implement a reliable pick-and-place simulation.

Technical Stack:

OS: Ubuntu 24.04 (Noble)

Middleware: ROS 2 Jazzy Jalisco

Simulator: Gazebo Harmonic (gz-sim)

Modeling: URDF/Xacro

Control: ros2_control (DiffDrive, JointTrajectoryController)

Planning: MoveIt 2 (optional but preferred)

Current Project Status:

Mobile Base:

Custom CAD mesh (.stl) for the chassis is available.

Configured with "Ghost Wheels" (collision spheres) and a Differential Drive plugin.

Base successfully drives in Gazebo using teleop.

Manipulator:

URDF/Xacro files for a 6-DOF arm are available.

Controllers (arm_controller, gripper_controller) are defined but need tuning.

Current Integration State:

A draft master Xacro file exists attempting to combine the Base and Arm.

Issues: The arm moves in unexpected/odd ways, the physics interactions are unstable (arm sometimes collapses or jitters), and the pick-and-place logic is not accurate.

Scope of Work (Freelancer Tasks):

Proper Integration:

Correctly mount the Manipulator onto the specific elevated deck of the Mobile Base in the URDF.

Ensure the transform tree (TF) between base_link and the arm is correct.

Physics & Kinematics Tuning:

Fix inertial properties and collision geometries to prevent "exploding" or jittering in Gazebo.

Tune joint limits and friction/damping so the arm moves smoothly and holds its position against gravity.

Simulation Mission:

Refine the Python mission script to spawn random objects.

Implement a robust logic for the robot to drive to an object, pick it up (stable grasping), and place it securely on the robot's deck.

Deliverables:

A working, stable .urdf.xacro file for the combined Mobile Manipulator.

A Python launch script that demonstrates the robot successfully picking up a spawned cube and placing it on the deck without physics errors.