The following components are new components for RobMoSys in order to be able to use them with the Webots simulator.
This component allows the user to use Webots simulator instead of Gazebo, PlayerStage, etc. There exists a pre-requirement to use Webots. You have to execute this command once in a Terminal and restart the computer/Virtual Machine. Don't forget to adapt the path if necessary.
echo -e "export WEBOTS_HOME=/home/smartsoft/SOFTWARE/webots" >> ~/.profile
This component configures bumper's sensors in SmartSoft according to Webots prototype sensors and provides the bumper value.
When used in a system, the name of the bumper should be defined in the configuration.json
file in the data
directory of the component.
Input | Output |
---|---|
BumperEventServiceOut: bumper value |
This component configures lidar's sensors in SmartSoft according to Webots prototype sensors and provides the sensor's data.
When used in a system, the name of the lidar should be defined in the configuration.json
file in the data
directory of the component.
Input | Output |
---|---|
BaseStateServiceIn: state of the robot base (position and orientation) | LaserServiceOut: lidar values |
Note : It is important to mentionned that the lidar range has to be under 65.535 meter otherwise it will be set at 65 meter because the variable type to store the value is
short
. This comes from source files generated by SmartMDSD. Maintainers will be alerted to this problem so that it can be improved.
This component configures a robot in Smartsoft, it provides basic functionality for navigation and localization.
When used in a system, the name of the robot and its navigation properties should be defined in the configuration.json
file in the data
directory of the component.
Inputs | outputs |
---|---|
LocalizationUpdateServiceIn: not implemented yet | BatteryEventServiceOut: not implemented yet |
NavigationVelocityServiceIn: velocity commands (linear velocities and turnrate) | BaseStateServiceOut: state of the robot base (position and orientation) |
Each robot has his specification such as the wheel radius (R), wheel separation (L) and the velocity coefficients. For two wheeled robot, these latter are calculated using simple formulas such as V_right = w(R+L/2)
and V_left = w(R-L/2)
which gives coeff_0 (for Vx) = 1/R
, coeff_1 (for Vy) = 0
and coeff_2 (for Omega) = L/(2R)
. For omniwheeled robot such as the Robotino 3, a matrix conversion can be found in this paper at section 4.
Note : JSON file format for configuration relies on
libjsoncpp
, it can easily be installed with this command:sudo apt install libjsoncpp-dev
-
Pioneer 3-DX
For the Pioneer 3-DX from Adept, when using
ComponentWebotsRobot
in SmartMDSD Toolchain, you have to configure theconfiguration.json
file with this code:{ "name": "Pioneer 3-DX", "navigationVelocity": { "right wheel": [10.2564, 0.0, 1.3795], "left wheel": [10.2564, 0.0, -1.3795] } }
-
TIAGo
For the TIAGo robots series from Pal Robotics, when using
ComponentWebotsRobot
in SmartMDSD Toolchain, you have to configure theconfiguration.json
file with this code (adapt the name):{ "name": "TIAGo Base/Iron/Steel/Titanium", "navigationVelocity": { "wheel_right_joint": [5.115, 0.0, 1.033], "wheel_left_joint": [5.115, 0.0, -1.033] } }
-
Robotino 3
For the Robotino 3 from Festo, when using
ComponentWebotsRobot
in SmartMDSD Toolchain, you have to configure theconfiguration.json
file with this code:{ "name": "Robotino 3", "navigationVelocity": { "wheel0_joint": [13.856, -8, -2.944], "wheel1_joint": [-13.856, -8, -2.944], "wheel2_joint": [0.0, 16.0, -2.944] } }
The following systems are examples to be able to test new components.
This system is a copy of the SystemLaserObstacleAvoidTiagoGazeboSimulator
in order to show that the new components developed to use Webots simulator are working since the robot has the same behavior as expected.
A TIAGo Iron is used with a lidar that seems to be a Sick TIM150-3010300 with a range of 10 meters and an aperture angle of 200 degree.
This system is a copy of the SystemLaserObstacleAvoidP3dxPlayerStageSimulator
in order to show that the new components developed to use Webots simulator are working since the robot has the same behavior as expected.
A Pioneer 3-DX is used with a lidar that seems to be a Sick TIM150-3010300 with a range of 10 meters and an aperture angle of 180 degree.
This system shows an example of multi-robots simulation. All the robots are using a lidar sensor (ComponentWebotsLidar
) to perfom obstacle avoidance.
This system shows a complete example of communication between a lidar sensor (ComponentWebotsLidar
) used by a Pioneer 3-DX robot (ComponentWebotsRobot
) to navigate in a square arena filled with obstacles. It works with the new components developed to use Webots.
This system shows a complete example of communication between a lidar sensor (ComponentWebotsLidar
) used by a Robotino 3 robot (ComponentWebotsRobot
) to navigate in a square arena filled with obstacles. It works with the new components developed to use Webots.
This system is a copy of the SystemTiagoNavigation
in order to show that the new components developed to use Webots simulator are working since the robot has the same behavior as expected.