Open Mobile Manipulator Project Cheap educational robot!

Hello,

with the help of the construct team, i have created a rosject http://www.rosject.io/l/ece7d04/
also in my git https://github.com/panagelak/Open_Mobile_Manipulator.git (picture of real robot)

The real robot should cost approximately 600-800 euros if you want to build it email me at panagelak12@gmail.com or comment here for details.

Now,
I would like some help to make the arm stable with the effort controllers on the simualtion, probably bad inertials or bad mass values or bad pid or bad arm urdf.
some relevant files to edit at

simulation_ws/src/Open_Mobile_Manipulator/lynxbot_bringup/config/control/my_robot_control.yaml
(for ros control of the arm)
simulation_ws/src/Open_Mobile_Manipulator/lynxbot_description/urdf/arm/my_arm.urdf.xacro
(urdf of the arm)
simulation_ws/src/Open_Mobile_Manipulator/lynxbot_description/urdf/arm/link_joint_macro.urdf.xacro
(macros for the links of the arm)
simulation_ws/src/Open_Mobile_Manipulator/lynxbot_description/macros/arm/inertia_macros.urdf.xacro
(inertia macros)
simulation_ws/src/Open_Mobile_Manipulator/lynxbot_description/urdf/common_properties.urdf.xacro
(to change the mass values of the arm)

The goal is to be able to pick the object that is on the simulation 2 meters forward of the robot!!!

moveit is functional (i dont know about the gripper)
amcl/gmapping/move_base should also be functional (make a map first with gmapping)
edit lynxbot_bringup/launch/amcl.launch

The code is simple to understand,
In my opinion it is the cheapest educational mobile manipulator you can build!!
Any help much appreciated!!!

1 Like

I would start with these improvements:

  1. Use the inertia_calculator.py inside the spawn_robot_tools_pkg GIT. It’s installed by default in ROSDevelopementStudio and RobotIgniteAcademy. With it you can calculate basic geometry inertias. Its enough for what we have here.
  2. Send a picture of the Innertias activated in Gazebo client. It will show hoe the inertias are.
  3. To test the PIDs, the best way is to send a certain position to a joint and see when it stops oscillating. Use the rorun rt_gui rqt_gui, add the DynamicReconfigura. There you can change the PID values on the fly to see what effect it has in movement.
  4. Simplify the collision links of the gripper and add friction to avoid objects slipping. Then do a simple test where you pick an object hardcoded to test that its able to pick objects.