|
| 1 | +The ROSbot XL by [Husarion](https://husarion.com/) is a universal, ROS2-native autonomous mobile robot platform dedicated to R&D, rapid prototyping and custom robot development for indoor use cases. |
| 2 | +It is equipped with a LIDAR and an IMU. |
| 3 | + |
| 4 | +More information on specifications is available at the following link: [ROSbot XL - Specifications](https://husarion.com/manuals/rosbot-xl/#specification). |
| 5 | + |
| 6 | +### ROSbot XL |
| 7 | + |
| 8 | +%figure "ROSbot XL characteristics" |
| 9 | + |
| 10 | +| Characteristics | Values | |
| 11 | +| --------------------------- | ------------ | |
| 12 | +| Length | 332 mm | |
| 13 | +| Width | 284 mm | |
| 14 | +| Height | 131 mm | |
| 15 | +| Max. forward/backward speed | 0.8 m/s | |
| 16 | + |
| 17 | +%end |
| 18 | + |
| 19 | +The ROSbot XL motors are [RotationalMotor](https://cyberbotics.com/doc/reference/rotationalmotor) nodes, each motor is associated with a [PositionSensor](https://cyberbotics.com/doc/reference/positionsensor). |
| 20 | +They are named the following way: |
| 21 | + |
| 22 | +%figure "ROSbot XL wheel names" |
| 23 | + |
| 24 | +| Wheel | Motor name | Position sensor name | |
| 25 | +| -------------------- | ---------------| ------------------------------ | |
| 26 | +| Front right wheel | fr\_wheel\_joint | front right wheel motor sensor | |
| 27 | +| Front left wheel | fl\_wheel\_joint | front left wheel motor sensor | |
| 28 | +| Rear left wheel | rl\_wheel\_joint | rear left wheel motor sensor | |
| 29 | +| Rear right wheel | rr\_wheel\_joint | rear right wheel motor sensor | |
| 30 | + |
| 31 | +%end |
| 32 | + |
| 33 | +The `wb_set_motor_position` and `wb_set_motor_velocity` functions allow the user to control the rotation of the wheels. |
| 34 | +`wb_position_sensor_get_value` allows the user to get the value of the position sensor. |
| 35 | + |
| 36 | +The [MPU-9250](https://webots.cloud/run?url=https://github.com/cyberbotics/webots/blob/develop/projects/devices/tdk/protos/Mpu-9250.proto) IMU allows the user to get acceleration, angular rate and heading values. |
| 37 | +The following table shows the names to access the different components of the IMU: |
| 38 | + |
| 39 | +%figure "IMU components names" |
| 40 | + |
| 41 | +| Device | Name | |
| 42 | +| ------------- | --------------------------- | |
| 43 | +| Accelerometer | imu accelerometer | |
| 44 | +| Gyroscope | imu gyro | |
| 45 | +| Compass | imu compass | |
| 46 | + |
| 47 | +%end |
| 48 | + |
| 49 | +The [RpLidar A2](https://webots.cloud/run?url=https://github.com/cyberbotics/webots/blob/develop/projects/devices/slamtec/protos/RpLidarA2.proto) rotational lidar is fixed on the ROSbot. |
| 50 | +It is named "laser". |
| 51 | +It can be removed to place another sensor. |
| 52 | + |
| 53 | +### Rosbot XL PROTO |
| 54 | + |
| 55 | +Derived from [Robot](https://cyberbotics.com/doc/reference/robot). |
| 56 | + |
| 57 | +``` |
| 58 | +RosbotXl { |
| 59 | + SFVec3f translation 0 0 0 |
| 60 | + SFRotation rotation 0 0 1 0 |
| 61 | + SFString name "rosbot_xl" |
| 62 | + SFString controller "<generic>" |
| 63 | + MFString controllerArgs [] |
| 64 | + SFString customData "" |
| 65 | + SFBool supervisor FALSE |
| 66 | + SFBool synchronization TRUE |
| 67 | + SFBool selfCollision FALSE |
| 68 | + MFNode lidarSlot [ RpLidarA2 { name "laser" } ] |
| 69 | +} |
| 70 | +``` |
| 71 | + |
| 72 | +#### Rosbot XL Field Summary |
| 73 | + |
| 74 | +- `lidarSlot`: Extends the robot with a RpLidar A2 lidar. |
| 75 | + |
| 76 | +### Samples |
| 77 | + |
| 78 | +You will find the following sample in the folder: "[$WEBOTS\_HOME/projects/robots/husarion/rosbot\_xl/worlds]({{ url.github_tree }}/projects/robots/husarion/rosbot\_xl/worlds)". |
| 79 | + |
| 80 | +#### [rosbot\_xl.wbt]({{ url.github_tree }}/projects/robots/husarion/rosbot\_xl/worlds/rosbot\_xl.wbt) |
| 81 | + |
| 82 | + |
| 83 | + |
| 84 | +The "[rosbot\_xl.wbt]({{ url.github_tree }}/projects/robots/husarion/rosbot\_xl/worlds/rosbot\_xl.wbt)" shows the ROSbot XL in a simple environment. |
| 85 | +The default controller is set to `<extern>` as this robot is meant to be controlled using ROS2. |
0 commit comments