A Mobile Manipulator with Advanced Capabilities
This repository contains the Versatile Robot, a mobile manipulator capable of Navigation, SLAM, and Manipulation tasks. This robot is an advanced version of the robot originally developed by Rishikesh Jadhav during his project at the University of Maryland. His foundational work has made this project possible (Rishikesh Jadhav's GitHub Repository).
DOF (9) = Robotic arm DoF (6) + Mobile robot DoF (3)
-
Sensors:
- Integrated a 2D LiDAR for mapping and localization.
- Added a Stereo Camera for future vision-based capabilities.
-
SLAM Capability:
- Enabled Simultaneous Localization and Mapping (SLAM) using slam_toolbox.
-
Autonomous Navigation:
- Configured the move_base package for autonomous navigation and obstacle avoidance.
-
Manipulation:
- Implemented motion planning and manipulation using the MoveIt! framework.
-
New Simulation Environment:
- Added an obstacle-rich environment for the robot to navigate, inspired by the CPR Obstacle World package.
-
Camera for Manipulation:
- Adding a camera to the manipulator for visual manipulation.
-
Visual Odometry:
- Enhancing the robot’s localization with Visual-Odometry capabilities.
-
Physical Upgrades:
- Improving the robot’s physical hardware, such as better wheels and structural enhancements.
-
Transition to ROS2:
- Upgrading the robot’s software stack to ROS2 for better performance and scalability.
-
More Enhancements:
- Additional exciting features are planned—stay tuned!
- This project is developed for ROS1 (tested on Noetic) and is planned to be upgraded to ROS2 in future iterations.
- Install MoveIt:
sudo apt-get update sudo apt-get install ros-noetic-moveit
- Install SLAM Toolbox:
sudo apt-get install ros-noetic-slam-toolbox
- Install Move Base:
sudo apt-get install ros-noetic-move-base
To set up and use the Versatile Robot in your workspace, follow these steps:
- Clone the Repository:
git clone https://github.com/ali-pahlevani/Versatile_Robot.git cd Versatile_Robot
- Build the Workspace:
catkin_make source devel/setup.bash
- Launch the Simulation:
In one terminal, launch the main simulation:
roslaunch robot_arm main_Launch.launch
This loads the world in Gazebo, spawns the robot, and initializes the controllers.
In the second terminal, choose one of the following based on your task:
- For SLAM
roslaunch robot_arm map_Robot.launch
- For Navigation Only
roslaunch robot_arm navigate_Robot.launch
- For Navigation and Manipulation
roslaunch robot_arm navigate_Manipulate_Robot.launch
- Optional: To work only with the MoveIt! motion planning plugin in RViz
roslaunch robot_arm arm_Demo.launch
- Also, to adapt the Motion Planning settings of the Arm to your needs, you can use MoveIt Setup Assistant
roslaunch moveit_setup_assistant setup_assistant.launch