Simple tasks of pushing a nearby object by the RR robotic arm. This project was implemented in the ROS and Gazebo. It is based on gazebo_ros_demos.
Make sure you have all the required ROS and Gazebo packages installed, and that this package is in your ROS workspace (~/catkin_ws).
If you have not built your workspace do it now (make sure you are inside the workspace root directory):
$ cd ~/catkin_ws
$ catkin_makeOnce the rrbot_pushing_object package has been built, you can launch the simulation environment using:
$ cd ~/catkin_ws/src/rrbot_pushing_object/rrbot_pushing_object_basic
$ bash rrbotsimstart.shThe main script rrbotsimstart.sh runs four other scripts in separate terminals:
rrbot_gazebo_launch.shrrbot_ros_control.shrrbot_pushing_object.shrrbot_camera_view.sh
The rrbot_gazebo_launch.sh start Gazebo with object models listed in the file rrbot_object.world : RR robotic arm, stationary objects like table and cardboard_box, camera (roslaunch rrbot_gazebo rrbot_obstacle_world.launch).
To load robotic arm controllers (ROS joint position controllers) we use the script rrbot_ros_control.sh that calls the command roslaunch rrbot_control rrbot_control.launch. Then the script rrbot_pushing_object.sh is started and the code in file armpushingobject.py controls the movements of the robotic arm - pushing a nearby object. In this file we defined a ROS node joint_positions_node that will publish the messages with current joints positions (used by ROS controller). The last script rrbot_camera_view.sh launches a preview from the camera placed on the robotic arm - rosrun image_view image_view image:=/rrbot/camera1/image_raw.
See YouTube video demo.
