A repository containing the source code of a Rover with a 5DOF manipulator.
My user name in github 'mturktest123' is a carryover from my days working on crowdsourcing via AWS Mechanical Turk.
This project includes the development of the robot to be simulated in Gazebo.
It uses MoveIT
to trajectory control the manipulator.
You will need to install the following:
ROS Melodic
sudo apt-get install ros-melodic-ackermann-msgs
sudo apt-get install ros-melodic-ros-control ros-melodic-ros-controllers
After you have everything installed use these two commands to see the full functionality.
`roslaunch rover_with_arm_gazebo_control rover_with_arm_gazebo_moveit_keyboard_control.launch`
`roslaunch rover_with_arm_moveit_config moveit_planning_execution.launch`
This youtube video demonstrates these two commands to control the rover and the arm in gazebo.
This package contains the xacro/urdf used by the rover and arm descriptions for materials, links & joints macros, and some common constants used in defining the robot models.
This package contains the urdf/xacro description of the rover. The robot model includes the rover chassis, steers, and wheels. The model is deliberately kept simple to have a lower computation load in simulation.
The following command shall be used to spawn the Rover model in RViz.
roslaunch rover_desc_pkg rover_rviz.launch
This command launches RViz with joint_state_publisher that allows us to play with various steers and wheels joints.
To understand how the command works, take a look at this video on youtube.
This package contains the urdf/xacro description of the 5DOF manipulator arm. The arm model includes 5 revolure joints.
The following command shall be used to spawn the Arm in RViz.
roslaunch rover_arm_desc_pkg arm_rviz.launch
This command launches RViz with joint_state_publisher that allows us to play with various joints of the arm.
This package combines the description of rover and arm to allow the spawning of complete rover assembly.
The following command shall be used to spawn the rover_with_arm in RViz.
roslaunch rover_with_arm_desc_pkg rover_arm_rviz.launch
This command launches RViz with joint_state_publisher that allows us to play with various joints of the rover and the arm.
To understand how the command works, take a look at this video on youtube.
This package simulates the rover in the gazebo simulation world. It spawns only the rover in gazebo.
Following commands shall be used to control the rover in simulation as described under:
-
Use this command to spawn the rover in empty gazebo world:
roslaunch rover_gazebo_control rover_gazebo_control.launch
Following command launches a rqt_gui to control rover joints:
rosrun rqt_gui rqt_gui
Watch this video on youtube to understand how rover joints can be played.
-
Use this command to spawn the rover in empty gazebo world and be controlled using keyboard commands:
roslaunch rover_gazebo_control rover_gazebo_keyboard_ctrl.launch
This command also brings up a node to take in the keyboard commands and publish velocity commands to the joints.
The
up
anddown
arrow keys are used to run the rover inforward
andreverse
directions respectively.The
left
andright
arrow keys are used for steering control of the rover.This youtube video shows how the rover is controlled using keyboard inputs.
This package spawns the arm in the gazebo simulation world. It spawns only the arm in gazebo.
The following command shall be used to spawn the arm.
roslaunch rover_arm_gazebo_control rover_arm_gazebo_control.launch
This package spawns the rover and the arm in the gazebo simulation world.
The following commands shall be used to have various controls of the rover and arm in the gazebo simulation world.
-
Use this command to simply launch the rover and the arm in gazebo.
roslaunch rover_with_arm_gazebo_control rover_with_arm_gazebo_control.launch
-
Use this command to launch the rover and the arm in gazebo simulation and to control only the rover using keyboard inputs.
roslaunch rover_with_arm_gazebo_control rover_with_arm_gazebo_keyboard_ctrl.launch
-
Use this command to launch the rover and the arm in gazebo simulation and to control only the arm using
MoveIT
trajectory control.roslaunch rover_with_arm_gazebo_control rover_with_arm_gazebo_moveit_control.launch
Please refer to the description under the next package to launch the
MoveIT
control of the arm.You may watch this video on youtube to understand how the command can be used with
MoveIT
package. -
Use this command to launch the rover and the arm in gazebo simulation with
nodes
to control the rover using keyboard inputs and the arm usingMoveIT
trajectory control.roslaunch rover_with_arm_gazebo_control rover_with_arm_gazebo_moveit_keyboard_control.launch
Please refer to the description under the next package to launch the
MoveIT
control of the arm.
This package defines the MoveIT
configuration of the arm joints. The joints are controlled using joint_trajectory_controller. Some random cartesian
positions are defined for the arm.
Follow these commands to test or move the arm in cartesian
control.
-
This command launches the arm in RViz to
plan
andexecute
fake controllers for the testing of the configuration.roslaunch rover_with_arm_moveit_config demo.launch
-
Use this command to control the arm in simulation mode such as in gazebo as mentioned in the above package description.
roslaunch rover_with_arm_moveit_config moveit_planning_execution.launch
This youtube video explains how this command can be used to control the arm in gazebo environment.