Combined path and motion planner for workspace restricted mobile manipulators in planetary exploration
Author: Gonzalo Jesús Paz Delgado, [email protected]
Co-author: J. Ricardo Sánchez Ibáñez, [email protected]
Supervisor: Carlos J. Pérez del Pulgar, [email protected]
Organization: Space Robotics Lab, University of Malaga
Coupled path and motion planner for Mobile Manipulation (MM), focused on rovers with a restricted arm workspace.
- First, a Fast Marching Method (FMM) based path planner generates a safe trajectory to reach the goal vicinity, avoiding obstacles and non-traversable areas in the scenario. The path planner is able to control the final rover orientation to ensure that the goal is finally reachable by the arm.
- Second, a FMM 3D based motion planner generates the arm joints motion profile, by creating a 3D tunnel-like cost volume surrounding the already computed rover base trajectory. This tunnel makes use of an offline-computed safe workspace of the manipulator, thus ensuring that no self-collision will occur during the planned motion.
Check the Simulation and field tests video.
In order to get this repository together with its submodules, use the following command (Source):
git clone --recursive ADE-Mobile_Manipulation
Then, to install the component and the required packages:
cd ~/ADE-Mobile_Manipulation
chmod u+x install.sh
sudo ./install.sh
There are several unit tests that can be used as examples. To run them:
./runUnitTests
Then, the results will be saved in:
test/unit/data/results
The input for the unit tests (rover and goal poses, maps...) can be modified in:
test/unit/data/input
The unit test results can be viewed using the provided python3 utils. For example, to represent the evolution of the arm during the motion plan:
cd utils/unitTestsViewers/
python3 armFullPlanViewer.py <approach>
Or to represent the base motion plan:
python3 baseMotionPlanViewer.py <approach>
Where <approach>
is:
0
for end deployment within the coupled approach1
for progressive deployment within the coupled approach2
for beginning deployment within the coupled approach3
for decoupled solution
-
OpenCV 3.2.0
-
python3-pip
-
mayavi
-
PyQt5
-
python3-matplotlib
Directory | Description |
---|---|
data/ | Data required as input by the planner |
deps/ | External dependencies |
├── ESA-Trajectory_Control/ | (Git submodule) Libraries for path tracking |
├── UMA-PathAndMotion_Planning/ | Libraries for planning rover and arm paths |
doc/ | Documentation |
spike/ | Individual portions of code to try new things |
src/ | Source files |
├── MobileManipMotionPlanner.h | Main Interface Class |
├── MobileManipMap.h | Class to handle Map Information |
├── MotionPlan.h | The Plan to move both arm and rover |
├── MobileManipExecutor.h | Class to provide commands during execution |
├── mmFileManagerLib/ | Library to read external files |
├── mmFileManager.h | Functions to read from external text files |
├── types/ | All types used by the component |
├── MMError.h | MM Error Codes |
├── MMStatus.h | MM Status Codes |
├── RoverGuidance_Dem.h | DEM type used by Rover Guidance |
├── base/ | Types using base namespace |
├── proxy_library/ | Types using proxy_library namespace |
test/ | Test files |
UML/ | UML Project files |
utils/ | Utilities |
├── armCollisionsViewer/ | Check and view if the arm collides for a given config |
├── armReachabilityComputer/ | Compute and represent the arm reachability volume |
├── armSingleSweepingComputer/ | Example computation of a simple sweeping movement for the end effector |
├── logsHandler/ | Logs extraction and different pythonr utils for representation |
├── motionPlannerAnalyzer/ | Process unit tests log data to obtain results about performance |
├── unitTestsViewers/ | Python scripts to represent the results of the unit tests |
If this work was helpful for your research, please consider citing the following BibTeX entry:
@ARTICLE{author={Paz-Delgado, G.J. and Sánchez-Ibáñez, J.R. and Domínguez, R. and Pérez-Del-Pulgar, C.J. and Kirchner, F. and García-Cerezo, A.}, journal={IEEE Access}, title={Combined path and motion planning for workspace restricted mobile manipulators in planetary exploration}, year={2023}, pages={1-1}, doi={10.1109/ACCESS.2023.3298980}}