-
step 1: mobile platform planning using matlab (1) execute main2.m; (2) execute main3.m the output is: (1) mobile platform positions list (2) two points position representing the covered rectangular area
-
step 2: viewpoint planning using c++ (1) obtian pcd file (2) read pcd file (3) transfer into octomap format (4) sample multiple point and obtain colision-free viewpoints and obtain json file (5) the loop is: (5.1) obtain the viewpoints with maximum coverage area (5.2) obtain the collision-free joint solutions of viewpoints (5.3) remove and update operation (5.4) exit condition: all octomap nodes are covered
-
the drawbacks of the algorithm (1) cartesian-space viewpoints may have no inverse kinematic solutions (2) all inverse-kinematic solutions may collide with robot itself or the environment (3) joint-space trajectory between viewpoints may not be generated by MOVEIT planner (4) the final reached mobile platform position may have position errors with the planned positions, therefore the viewpoint planning has better be online executed instead of offline (5) the FOV model of camera may not be precise enough for us.
the applied cpp files include:
-
manipulator_viewpoints_planning1.cpp, which contains the main content of 1st-version planner (1) the input is: cloud points and robot kinematic model (2) the output is: collision-free joint-space solutions of selected viewpoints (3) the execution method is: roslaunch polishingrobot_planner polishingrobot_configuration.launch rosrun polishingrobot_planner manipulator_viewpoints_planning1
-
manipulator_viewpoints_trajectory_planning.cpp, which is to generate collision-free trajectory between viewpoints (1) the execution method is: roslaunch polishingrobot_moveit_trajectoryplanning.launch rosrun polishingrobot_planner manipulator_viewpoints_trajectory_planning
-
manipulator_viewpoints_visualizing.cpp, which is to visualize manipulator viewpoints (1) the execution method is: rosrun polishingrobot_planner manipulator_viewpoints_visualizing
-
for executing MOVEIT trajectory in real aubo10 robot, here two methods are provide: (1) python move_aubo_to_a_point1.py in aubo_driver folder (2) roslaunch polishingrobot_planner aubo_rosdriver.launch, rosrun polishingrobot_planner aubo_motion.py