rabbot_sim is a gazebo simulator. It provides the robot “rabbot” model with simulated sensors(such as the IMU, odometry sensor, the hokuyo laser, viper camra, other sensor which can be mounted on the robot.), arm and mobile base.This package contains some controllers, like joint state controller, rabbot base controller,rabbot arm controller and rabbot gripper controller.
In this section, we provide the instructions necessary for getting started with the navigation in the simulation world.
Note: Following steps are based on UBUNTU 16.04 with ROS-kinetic
This step assumes that your PC is running with Ubuntu 16 and configured with ROS KINETIC and all required libraries
Install dependencies
sudo apt install ros-kinetic-controller-manager ros-kinetic-gazebo-ros-control ros-kinetic-teleop-twist-keyboard ros-kinetic-teleop-twist-joy ros-kinetic-joy ros-kinetic-slam-gmapping ros-kinetic-hector-mapping ros-kinetic-hector-trajectory-server ros-kinetic-move-base ros-kinetic-map-server ros-kinetic-amcl ros-kinetic-teb-local-planner ros-kinetic-moveit*
Creating Work Space and cloning Rabbot package
mkdir –p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.com/gaitech-robotics/Rabbot.git
cd ~/catkin_ws && catkin_make
Add env variable
sudo echo "export USE_EKF='true'" >> ~/.bashrc
First, launch the simulation by use the following:
$roslaunch rabbot_sim gazebo.launch
Note The first run of gazebo might take considerably long, as it will download some models from an online database.
Getting the robot to move
To let the robot move you need to send velocity command, There are currently a few ways to send commands to the robot, we will show them here.
• Send direct velocities commands
We will for now just send some constant command velocities to the robot by:
$rostopic pub /rabbot_base_controller/cmd_vel geometry_msgs/Twist "linear: x: 1.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 0.0"
• Teleop using keyboard
Now, we are goining to send the command to the robot via keypoard by typing the following:
$ roslaunch rabbot_teleop rabbot_keyboard.launch
• Teleop using joystick
Connect a USB joystick to your computer and launch the file(Please check the js port number,default is js1. You can change in the launch file.)
Now, we are goining to send the command to the robot via joystick by typing the following:
$ roslaunch rabbot_teleop rabbot_joystick.launch
Create a map using slam_gmapping:
First launch the robot in the simulation world by:
$ roslaunch rabbot_sim gazebo.launch
Now launch the keyboard control node:
$ roslaunch rabbot_teleop rabbot_keyboard.launch
Further, we need to launch the gmapping slam by:
$roslaunch rabbot_navigation rabbot_gmapping.launch
And start move around in the whole environment, open rviz and visualize.
The last step you have to save the map using the following:
$ rosrun map_server map_saver -f office_map
It is recommended to save the map in the path:
~/catkin_ws/src/rabbot/rabbot_navigation/maps
The last step is to launch the navigation file by:
$ roslaunch rabbot_navigation rabbot_navigation.launch
rabbot_moveit_config_gazebo is the rabbot arm moveit config package used in gazebo. It provides rabbot arm move group interface.
In this section, we provide the instructions necessary for getting started with the arm control in the simulation world.
First launch the robot in the simulation world by:
$ roslaunch rabbot_sim gazebo.launch
Now launch the move group node:
$ roslaunch rabbot_moveit_config_gazebo move_group.launch
We can control the arm with the move group rviz plugin:
$ roslaunch rabbot_moveit_config_gazebo moveit_rviz.launch
For details on how to use Moveit, please see the tutorial on the official Moveit website.
Note: gazebo version is recommended to install at least gazebo v7.x for full functionlity, (which is installed by default with ros kinetic). |
V20191011