Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Welcome to Movel AI's resource page. Here, you will find product features, installation guides and more.
Seirios is our portfolio of flagship products aimed at making robots smarter and more agile. Under Seirios, there are two main products;
Keen to know more? Share your contact details here and we'll reach out to you immediately!
If you have questions, please feel free to ask by reaching us at sales@movel.ai
↗️ Trial Installation Files ↗️ Seirios RNS REST APIs ↗️ External Process Handler (Custom Feature Code Integration) - docking/charging/others
After logging into Seirios RNS, you will see the Dashboard first
The dashboard is the first page that you see after logging in. After mapping, saving and loading a map, it will be visualised here;
Speed controls, analog/keyboard control and toggle, and mode-dependent buttons will be displayed in this panel. This panel can be toggled to be hidden or shown too.
Note that E-stop
will disconnect power to the motors and will render the robot immovable. To abort/clear tasks in the queue, choose Clear tasks
instead
Seirios RNS supports multiple mapping algorithms. Jump to the algorithm of interest here on the right panel (desktop view only) ➡️
Please be informed that all mapping modes (except 2D mapping) are disabled by default as they require special hardware configurations. These include Automatic mapping
, 3D mapping
, RTAB mapping
and ORB-SLAM mapping
and are indicated with flags 🚩 below
The most commonly used mapping algorithm, the cameras mounted on robots populate and generate a map of its surroundings
Users can manually teleoperate the robot, to 'reveal' the map represented by white areas in the map
Incorporating this feature into Seirios allows users to automatically map large areas without manually driving with virtual controls. The auto-mapping feature was originally developed for a wall-scanning construction project
Automatic mapping without manual controls from users
Map does not save automatically once mapping is done. Click 'Stop' to prompt the 'save map' model
3D mapping requires a 3D LiDAR and a capable CPU (Intel/AMD x86 recommended)
For higher accuracy, range and better visual representation of environmental features, users can opt to map in 3D. A 2D map will be generated from a 3D map too
RTAB-Map (Real-Time Appearance-Based Mapping) is a RGB-D, Stereo and Lidar Graph-Based SLAM approach based on an incremental appearance-based loop closure detector.
As its namesake, it uses real time images to map the environment
ORB-SLAM is a keyframe and feature-based Monocular SLAM. It operates in real-time in large environments, being able to close loops and perform camera relocalisation from very different viewpoints.
Seirios is able to support mapping with the use of monocular, stereo, and RGB-D cameras. Green 'dots' are features recognised and stored in the map data, generating a 2D map
Substitutable with similar cameras with depth sensing capabilities
Under this category, users can manually drive their robots
Drive - to manually drive the robot with the onboard controls (keyboard or analog)
Granular controls are automatically applied; similar to a car's gas pedal/accelerator, users can granularly control the speed based on the set (0.1 - 0.9 m/s) limit with the joystick.
Higher speeds beyond 0.9m/s are possible however are not enabled by default - only upon request.
For omnidirectional robots, steering can be controlled with Shift
keys as shown below. The keys will move the robot on the X axis/plane (sideways)
Seirios RNS is a visually rich product that combines modern web and robotic technologies. The following highlight features for your various use and applications
Seirios RNS' features can be divided into three categories:
Core Features : features that enable the robot to move manually and/or autonomously
Supplementary Features : features that supplement and improve the core features
Robotic Features : features that non visual and only configurable from the robotic backend
Single event tasks are tasks that can be executed with one click
There are only two types of tasks in Seirios RNS;
Trail : where robot will follow the generated lines closely (will not deviate outside). When faced with obstacles, robot will stop until obstacles are removed.
Waypoints: where robot will not follow the lines and obstacles will be dynamically avoided (unless setting is toggled to stop-at-obstacle)
In this mode, users are required to Mark each point and a line will be generated between points.
Similar to Teleop Trail
, instead of moving the robot to mark, use the on-screen marker to drop points. Lines will be generated automatically.
The orientation is automatically defined after your next point is marked. Otherwise, use the WASD or analog controls to change the orientation
The Zone feature can automatically generate points (trail style) in a specified area.
Robot will execute generated points in trail style - obstacles will not be avoided and will follow exactly the line that is generated
You will require a minimum of 3 points to save a zone
The generated zone will look like this, where points will be generated close to each other;
Waypoints are similar to Mark Trail
where the only difference is that the robot does not follow the generated line closely. Obstacles will be avoided as the robot navigates in its environment.
If you are only marking one point, change the orientation of the pose with either your keyboard or the analog controls
Create multiple stations for either to dock for charging, or for other purposes
Users can create one or more (no limit) stations for a specific map to dock to - for charging or for other tasks (such as picking of objects with a robotic arm payload)
Users are required to drive the robot manually in the map (in the interest of accuracy and precision) and upon reaching the point of interest, capture the pose and store it as a station
For docking, ensure that the QR code is visible to the robot before saving it as a station
After station(s) are created, queue them together with other tasks to build an autonomous robotic process in your environment.
Besides charging, stations can be used to mark points of interest so robot(s) can dock to, with precision
Please refer to the external process handler page on how to integrate your own docking code
Due to various factors, like localisation drifts, it's important to adjust the localisation manually with the localiser
From the mode switcher, select the Localise
button and click Start
Once the laser scan is aligned properly, click save to localise
For autonomous operations, use the Task Manager to queue different tasks together and introduce different elements such as Delays and Stations
From the top left corner, click the hamburger menu button to expand the options and click on Task Manager. You will be presented with two options, Tasklist and Scheduler.
These two options share many similarities but Scheduler introduces the element of time on top of queued tasks.
From here, select Tasks (Path, Goal, Zone, Station, Custom
or Delay
) to create a list of tasks that can be run with a single click.
After saving the list, your tasks can be previewed as shown below
From here, run your Tasks now by clicking 'Run Now' or put this Tasklist into the queue with 'Add to Queue' at the bottom of the screen
To schedule these tasks to run at a later date/time, edit the task (by clicking the pencil icon) and input the date and time details
You can also save these scheduled tasklists as Active or Inactive
Seirios supports integration with state machines. Flexbe is tried and tested to be compatible with Seirios and it includes an editor with which you can create your own conditions;
Customisations can be made via Settings
The Settings
modal can be shown by clicking on the top left menu icon. Here you will find the following settings;
When enabled, robots will stop moving when humans are detected. Custom auxiliary commands (such as turning off the UV light) can be pre-programmed. Used for specific use-cases, the human detection usually leads to certain behaviours. For example;
When a UV disinfection robot detects a human, the UV lights will be disabled to prevent harm unto the detected human
When faced with obstacles, the robot will not attempt to plan around the obstacle for safety reasons.
This is particularly useful when the environment is tight or with fragile objects; robots will not keep reattempting to navigate (forward, backward, forward...) but wait for human intervention.
In teleoperation mode, robots will still stop if faced with obstacles.
As robots are not always in human users' view, robots will automatically stop when faced with obstacles even in manual / Teleoperation mode. This may present unintended behaviours to the robot to the user therefore an option for users to turn off or on
Set a battery percentage (in %) and the robot will automatically navigate back to home and dock (if available) when the battery level falls under the set percentage.
When at Home and charging, if users intend to disconnect the robot, a modal will warn and prompt the user this battery fallback toggle to be disabled - as the robot will keep re-attempting to return to home to charge
To ensure only authorised staff are allowed to connect and operate the robot, users are able to create new credentials to provide access with end users or staff.
The user management feature is currently being revamped. Please expect an update soon
Presently, only Chinese (Traditional and Simplified) are supported officially as an extra language in Seirios RNS.
For additional languages, please use your browser's translator (Google Translate for Chrome) in the meantime.
Users using Seirios in different environments and conditions have the option to switch between dark and light mode - under Settings
Errors are logged and displayed here under 'Health Care'
The Queue Manager is a feature for users to;
View past, present (active) and future tasks that are queued
Re-arrange tasks (admin only)
Presently, there are 2 ways to view the Queue Manager
Method 1 : In Homepage view, by clicking the white status bar the Queue manager will appear
Method 2 : By clicking the persistent icon at the top left of the screen, if not in Homepage view
Re-arrange the order of queue list by dragging the tasks up or down
Different users may have different use cases to edit a map. With the map editor feature, users are able to;
Annotate - name an area
Create no-go zones (where robots will not be able to navigate into/to)
Yes-go zones (where users are able to 'clear' obstacles formed during the mapping process or to undo no-go zones)
Users can access the map editor by clicking this icon
Users will be presented with a set of options to edit the map;
Options are categorised by shapes - where users are able to choose whether to Annotate/Name, create No-go zones, and Yes-Go Zones. These categories are 'Squares', 'Polygon' and 'Others' (single lines)
A single line as an option can be used to create precise and thin obstacles such as walls
Technical Resources relating to the Seirios Software:
We also have made our Seirios Manual Book available for download by clicking here.
Clone Your Robot
Installation Guide
REST APIs
Hardware Related
Custom Task / External Process Handler
TEB Tuning Guide
Pebble Tuning Guide
Kudan Integration
Import Multiple Stations to Seirios RNS from Excel File
On top of the core features, Seirios RNS are bundled with supplementary features too;
There are two types of Non-Fully Qualified Tasks, Auxiliary Tasks, and Custom Tasks.
Auxiliary tasks are executables such as lights, music, sound, or others*.
They are created and executed independently.
They must be 'stacked' on top of fully qualified tasks and will be executed together at the specified time and sequence
You can fill name for the Aux Task Name, then there are 3 Types that you can choose.
1. Roslaunch File: You can launch your aux task using the roslaunch file, please fill the LaunchFile as the full path of the launch file that you want to launch.
2. Rosnode: You can launch your aux task by calling the rosnode, please fill the Pkg as the package of the rosnode, and Executable as the executable file. It will similar to this:
rosrun <Package> <Executable>
3. Executable Scripts: You can launch the aux task by executing the executable scripts, please fill the Executable as the full path of the script file, and also you can add the arguments as well (optional). It will similar to this:
bash ./script.sh arg
Custom tasks are tasks that move robots - such as docking or picking with a robotic arm. These movements are programmed as custom tasks and can be chained with other tasks to create a fully autonomous robotic operation.
For more details on how to integrate your own custom task code, please refer to our external process handler guide
Besides intuitive features on the interface, Seirios RNS brings key robotic capabilities that are not apparent on the user interface but silently powering and enabling robots to move in challenging environments Please visit the following articles for more information:
Before downloading or installing Seirios RNS, it's important to check the following (hardware and software) to ensure errors do not compound during or after installation
If you're an existing client, please refer to this form to submit URLs to your required pre-installation videos and images
Click the following tab to view checklists
For seamless integration with Seirios RNS, it is important to set up some key robotics software and drivers in your robot system. The following is a checklist of things that Seirios RNS requires your robot system to have before Seirios is installed:
TF for base_link to scan:
Ensure that there is a direct tf link between the base_link
frame and the laser
frame as it is required by Seirios RNS
Seirios is designed to work with robots of all shapes and sizes.
However, checking that the robot is working correctly before software installation is crucial to preventing compounding errors.
Robot Checks:
Ensure robot is moving linearly at the right speed
Before starting Robot checks:
Kill all Movel nodes (if you already have it previously installed)
Launch only the motor controller and the teleoperation keyboard twist for testing
[OR]
Run the following command:
rostopic pub -r 10 /cmd_vel - for linear linear: x-0.1 for rotation only : angular: z-0.1
Seirios RNS is able to navigate on uneven and rough terrains - conditions that will usually throw localisation off due to the tilt and different FOV angles when robots are on an inclined/downward position
These environments also include environments with kerbs and ramps - often seen in everyday public places.
Current inclination supported : ∠15°
Case study : WSS
Installing Seirios RNS onto your robot PC is easy! Follow these step-by-step guides to ensure seamless integration and deployment of Seirios RNS.
If you need help or have any inquiries along the way, reach out to us at sales@movel.ai or live chat at movel.ai/contact
If you're an existing client, please refer to this form to submit URLs to your required pre-installation videos and images
Ensure robot is moving linearly at the right speed
A minimum speed of 0.1 - 0.5 m/s needs to be tested. Also, manually check if the robot covers the distance correctly. A video recording is encouraged to troubleshoot any issues that may arise.
Open a new terminal window. Execute this command: rostopic pub /cmd_vel geometry_msgs/Twist "linear: x: 0.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 0.0"
Change the linear: x:
to 0.1-0.5 as we only want to move the robot straightly forward. Leave all the other values to 0.0.
Measure the distance the robot moved. And record the time between when the robot started to move and when the robot stopped. Calculate speed by dividing the distance over time.
Check whether your calculated speed matches up to the value that you have given for linear x.
If not, please recalibrate your wheels.
Alternatively, you may use rosrun telelop_twist_keyboard teleop_twist_keyboard.py
. Similarly, give it a linear speed between 0.1-0.5. Then repeat Steps 3 - 5 above.
Note:
If your robot is non-holonomic, it shouldn't be able to slide sideways. y should be 0.0.
If your robot is not flight-capable, z should be 0.0.
Validating Odometry Data
We provide you with a script that enables you to verify the odometry data by inputting the velocity and duration. The robot will then move at the specified velocity for the given duration. Subsequently, the script will calculate and provide the distance traveled by the robot based on these inputs.
This will facilitate the verification of your odometry data, making it easier and more efficient for you.
You can download the script here.
Ensure odometry is working well
Align the bot appropriately to test 3-4 meters of linear, straight distance without an angular component. Test using the following command in Terminal: rostopic pub /cmd_vel geometry_msgs/Twist "linear: x: 0.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 0.0"
Restart motor
Check odom pose is zero.
Publish only linear vel x: 0.1 and stop the bot at the 3-4 m mark.
Echo the odom topic: rostopic echo /odom
.
Compare the pose of the updated odom with linear and angular bot travelled (offset 1-2%).
Align the bot properly. Mark the spot where the bot will begin rotating.
Restart the motors.
Rotate the bot clockwise. Quaternion should be updated to negative.
Restart the motor and rotate the bot anticlockwise. Quaternion should be updated to positive.
Restart the motor. Rotate and stop the bot at the original marked spot.
Make sure that the angular pose is a 0 rad change.
Validating Odometry Data
We provide you with a script that enables you to verify the odometry data by inputting the velocity and duration. The robot will then move at the specified velocity for the given duration. Subsequently, the script will calculate and provide the distance traveled by the robot based on these inputs.
This will facilitate the verification of your odometry data, making it easier and more efficient for you.
You can download the script here.
Ensure no wheel slippage occurs and that robot is able to teleoperate in a straight line
Move the robot straight, and echo the /odom
topic.
Align the wheels accordingly to test straight linear movement. It’s recommended to draw lines on the floor for accuracy.
Give only linear speed. Check the robot is travelling straight. A slight deviation is acceptable (1 - 2 degrees), but no more than 5 degrees.
Installation is easy with simple commands on the command line interface. Before you start, please ensure your system has both Ubuntu and ROS installed. Recommended;
(x86_64) Ubuntu 20.04 & ROS Noetic OR (arm64) Ubuntu 18.04 & ROS Melodic
The easy-deploy package can be obtained from our Movel AI representative or can be downloaded from the following mirrors. Please ensure the right mirror for the right architecture (arm64 or x86 is selected)
Follow the instructions on the following pages to completely install Seirios RNS:
A trial license of 15 days is included in this easy-deploy package. Tuning of your robot parameters and configuration is required after installation. Please contact your Movel AI representative or email sales@movel.ai for support and assistance.
Custom features such as docking to charging stations are not included as it is a custom feature that requires development and integration. If you have a docking /custom feature code, please refer to this link for integration
Move the easy-deploy zip file to your home directory /home/<USER>
and extract the zip using the Archive Manager (<USER> refers to the account username).
Now, we need to run the installation in a Terminal
Right-click in the file explorer and open a Terminal in the extracted easy-deploy folder/directory
Then we move to the next part to install docker.
Google Drive Link | Mirror (Terabox) |
---|---|
arm64 (currently unavailable)
Angular speed calibration check - Test using pub /cmd_vel for accurate result
Check the angular speed for at least 0.1-0.6 rad/s, and check whether the robot rotates correctly. A video recording is encouraged to troubleshoot any issues that may arise.
Likewise, repeat the same method to check angular speed calibration.
Run rostopic pub /cmd_vel geometry_msgs/Twist "linear: x: 0.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 0.0"
Set angular x value between 0.1-0.6. Leave the other values as 0.0.
Measure how much the robot turns. And similarly, record the time it took to turn.
Check that your calculations match the value you set for angular z.
Alternatively, you may use rosrun telelop_twist_keyboard teleop_twist_keyboard.py
. Set angular speed between 0.1-0.5. Then repeat Steps 3 - 5 above.
Validating Odometry Data
We provide you with a script that enables you to verify the odometry data by inputting the velocity and duration. The robot will then move at the specified velocity for the given duration. Subsequently, the script will calculate and provide the distance traveled by the robot based on these inputs.
This will facilitate the verification of your odometry data, making it easier and more efficient for you.
You can download the script here.
The goal of Part 1 of the installation is to install Docker and it’s dependencies
In the same directory in the Terminal, run the command bash install-1-docker.sh
Wait for the installation to complete
Then we move to the last part to install Seirios-RNS.
The goal of Part 2 of the installation is to install Seirios, prepare the catkin_ws
, and create the appropriate docker-compose.yaml
file.
In the same directory in Terminal, run the command bash install-2-seirios.sh
Wait for the installation to complete
Restart the PC/machine after the installation
The script install_2.sh will not overwrite existing files in /home/catkin_ws , and will maintain backups of configuration files for safekeeping
To view the remainder of days left of your trial licence, enter localhost:1947
in your browser of choice
Taking the node “/motors_ctrl”
as an example. It is publishing to “/odom”
topic with “nav_msgs/Odometry”
message type, along with the other topics in the list. It also subscribes to “/cmd_vel”
topic with message type “geometry_msgs/Twist”
Go into the folder ‘/home/<user>/catkin_ws/movel_ai/config/movel/config/’
In the parameter file costmap_common_params.yaml, ensure that the robot footprint is defined correctly.
If the robot footprint is a polygon, configure the footprint parameter and comment out robot_radius. For example:
Here, the robot has a square footprint with the xy coordinates of the four corners as shown, while robot_radius is commented out.
If the robot footprint is circular, configure the robot_radius parameter and comment out footprint. For example:
In base_local_planner_params.yaml:
Go to “#Robot
” section. To tune the speed of the robot, configure max_vel_x
for linear speed, and max_vel_theta
for angular speed.
If the robot is not reaching the max speed, increase acc_lim_x
and acc_lim_theta
.
In footprint_model, select a suitable model type and configure the corresponding parameters.
In “#Obstacles
” section, tune the value of min_obstacle_dist
to set how far away the robot should keep away from obstacles. Reduce this parameter value if the robot is required to go through narrow spaces.
If the autonomous navigation motion is jerky, go to “catkin_ws/movel_ai/config/cmd_vel_mux/config”, find cmd_vel_mux.yaml, and increase the value set for timeout_autonomous
.
For in depth tuning of base_local_planner_params.yaml, refer to http://wiki.ros.org/teb_local_planner.
Launch the robot's motor and sensor drivers.
Run rosnode list
to find the names of the ROS nodes of the drivers.
Run rosnode info <node>
, where <node> is the name of the nodes determined from step 2.
Sample output:
From the information displayed from running step 3, make sure that:
The robot motor driver node subscribes to the topic /cmd_vel
for velocity commands.
The Lidar driver node publishes laser data to the topic /scan
If the topic names are not set as in step 4, remap them in the launch files of the drivers by adding a line in the launch files in the following format:
While the robot base and lidar are launched, run rosrun rqt_tf_tree rqt_tf_tree
and check that the frames are linked in this order: odom → base_link → laser.
If the frames of base_link and laser are not linked correctly, there are two options you can link them. You can select one of them. (Prefer use Broadcast a transformation)
Broadcast a transformation refer to this link.
Create static transformation. Add the following line in the launch file of the lidar drivers:
In “args”, x = 0.22, y = 0, z = 0.1397, yaw = 0, pitch = 0, roll = 0 for this example. This should provide a transformation between the base_link and laser frame If you use static transformation, there will be several issues, one of the most is localizer mode, the UI won't visualize a laser scan in localizer mode.
With the driver nodes running, run RVIZ using: rosrun rviz rviz
, do the following checks:
Laser data ("/scan")
can be seen and is orientated in the correct direction.
Movement direction during teleoperation is correct.
Robot odometry ("/odom")
is updating correctly during teleoperation.
After restarting the PC/machine, Seirios will automatically start every time the machine powers up.
To start Seirios manually, open a Terminal and enter your workspace by running the command cd ~/catkin_ws/movel_ai
Run docker-compose up
to start the docker containers for Seirios (output will be shown in the terminal)
Run docker-compose up -d
to start Seirios in the background (no output will be shown in the terminal)
To stop Seirios, go into the terminal where Seirios is currently running, and use Ctrl+C (if you run by using docker-compose up) OR run docker-compose down
in another terminal with the same directory. This will lead to the Docker containers being stopped.
To check for docker containers running at any point of time, run docker ps
.
If Seirios is up and running, you should expect to see the different containers of Seirios components being displayed. Otherwise, it should yield an empty table.
You can also check the version of Seirios by using docker ps
.
Seirios supports a wide range, variety, and combination of sensors on robots for various applications.
The following are sensors tried and tested with Seirios RNS on various robots types
If you do not see a familiar or preferred sensor below, benchmark against the available sensor's technical specifications. Contact us at sales@movel.ai for further inquiries or clarifications
Computers, mini PCs, and other developer boards come with either x86 or ARM64 chips. Click next to see hardware that has been tried and tested with Seirios.
Processing power is crucial to running Seirios RNS with your robot. With more sensors installed, more computing power will be required to be allocated - and less will be available for Seirios
The following are recommended PC/board specifications to take advantage of every feature available on Seirios RNS
PC with x86 processor (4 cores with 8 threads @ >3.1GhZ) OR ARM64 (8 cores) [We recommend you to use min i7 gen 8th]
8GB DDR4 RAM
256GB SSD
Ubuntu 20.04 & ROS Noetic (x86) OR Ubuntu 18.04 & ROS Melodic (ARM64)
WiFi connectivity 802.11a/b/g/n/ac
The following pages are specific PCs and developer boards that we have tested with Seirios RNS
x86-64 systems are widely used in most robotics systems and robots with compact-form PCs. It has high computing power and supports multiple hardware sensors connected to it.
Be sure that your robotic system has a large enough battery to accommodate its operations
Coming soon!
Seirios RNS is compatible with the following ARM-based systems and kits. ARM-based boards are power efficient but lack computing power (compared to x86-64 / AMD6 systems.
Some computing-intensive features such as 3D LiDAR mapping and navigation or multisensor support (eg 3 different sensors) will not be available on these boards.
Cameras are crucial for navigation and localization. Some brands/models have IMU integrated for an additional dimension for precision navigation.
360° cameras are useful for many applications such as cleaning and security
Light Detection and Ranging (LiDAR) sensors are useful in many settings, situations, and applications. It does not rely on visual light for path planning, navigation, and localization.
Useful at short ranges, low-lying obstacles can be detected using ult
A low-powered sensor; usually used for non-opaque obstacle detection such as glass or plastic panels
If you are unsure if your sensor(s) is/are supported, please contact us at sales@movel.ai
Seirios RNS comes with REST APIs for you to utilize - for integration and advanced deployments. To view the list of APIs available:
Please enter <IPaddress>:8000/api-docs/swagger
on your robot/PC.
Alternatively, please download this pdf to explore available APIs ⬇️