Skip to content

This repository allows to use the Webots simulator in the SmartMDSD Toolchain

License

Notifications You must be signed in to change notification settings

cyberbotics/AROSYS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AROSYS

Build Status Safety Software License

Components

The following components are new components for RobMoSys in order to be able to use them with the Webots simulator.

ComponentWebots

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

ComponentWebots

ComponentWebotsBumper

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.

ComponentWebotsBumper

Input Output
BumperEventServiceOut: bumper value

ComponentWebotsLidar

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.

ComponentWebotsLidar

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.

ComponentWebotsRobot

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.

ComponentWebotsRobot

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)

JSON configuration

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 the configuration.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 the configuration.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 the configuration.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]
      }
    }
    

Systems

The following systems are examples to be able to test new components.

SystemLaserObstacleAvoidTiagoWebotsSimulator

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.

SystemLaserObstacleAvoidTiagoWebotsSimulator

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.

SystemLaserObstacleAvoidP3dxWebotsSimulator

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.

SystemLaserObstacleAvoidP3dxWebotsSimulator

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.

SystemWebotsMultiRobots

This system shows an example of multi-robots simulation. All the robots are using a lidar sensor (ComponentWebotsLidar) to perfom obstacle avoidance.

SystemWebotsMultiRobots

SystemWebotsPioneer3DXNavigation

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.

SystemWebotsPioneer3DXNavigation

SystemWebotsRobotino3Navigation

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.

SystemWebotsRobotino3Navigation

SystemWebotsTiagoNavigation

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.

SystemWebotsTiagoNavigation