Robotics
Good development practices and environment setup
We can help you with:
- The architecture of your packages for development, testing, deployment and maintenance.
- The configuring of quality assurance tooling such as linters, licenses, tests, CI, etc.
- Guiding your teams to build development and deployment environments.
- Guiding your teams to use and participate in open source software.
By implementing concrete technology, such as:
- Github, Gitlab, AWS and GCP infrastructure.
- CMake, catkin, colcon, virtual environments, etc.
- Linters, gtest, gmock, unittest, benchmarks, etc.
- Docker, NVidia GPU driver configuration.
- ARM and Intel based architectures.
Simulation and modelling
From the robot to entire scenarios, we can help to grow your simulation stack from nothing to thousands of hours of robot simulation per month.
First, we assess which is the best simulation strategy for your use case and available resources by helping your team to:
- Model your robot and its environment scenarios.
- Define integration tests and define testing strategies.
Then, we implement the simulation by:
- Building the robot model and its sensors.
- Building the scenarios.
- Customizing (multi-)robot and scenarios configurations.
We help you to build tests on top of the simulations:
- Your developers will be able to evaluate the code before launching it on the real robot.
- Gain the confidence on your robot stack, prepare it for scale and deployment.
- Catch regressions before they get down the production line.
We adjust to your needs by implementing the right software stack for your team which includes:
- Gazebo and Ignition technologies.
- ROS Tests.
- AWS RoboMaker.
- Webots.
- Unity.
- NVidia Omniverse.
- Github, Gitlab and Bitbucket CI pipelines.
Navigation and localization
We understand about robot dynamics and can help you to model the physics of your robot, derive constraints based on real hardware and make your robot navigate under different scenarios. We will engage with your simulation, perception, navigation and localization teams to help them solve:
- The navigation stack from the ground up.
- The application and configuration of various SLAM solutions.
- Your testing scenarios.
- Hardware and sensor choice.
- Routing strategies.
- Performance improvements.
By using of the shelf ROS based solutions or custom implementations of:
- Nav and Nav2 stack.
- SLAM Toolbox, GMapping, Cartographer, Karto and others.
- Robot localization.
- ROS/ROS2 Control.
Planning and control
Not only movable bases are subject to specific kinematic and dynamic models, but also robotic arms and generally speaking robotic systems. We can help your team to develop planning and control obstacles to run concrete applications on top of the possible configurations the system could have. By doing so, we would implement:
- Path planning and routing.
- Control the actuators of your robots.
- Control loops via your sensing mechanisms.
- Obstacle avoidance.
- Bahavior definitions and actions.
By using off-the-shelf ROS based solutions or custom implementations of:
- Nav and Nav2 stack.
- MoveIt, TrajOpt and other path planning and obstacle avoidance algorithms.
- Decision and behavior trees.
- ROS Control
- ML / AI based methods for teach and repeat processes, control and behavior modeling.
Perception
We have experience working with multiple types of sensors to achieve the desired results in diverse SLAM stacks, including:
- Lidar
- Cameras (monoscopic, depth and stereo cameras)
- IMUs
- Wheel encoders
- Lasers
- GPS
- Magnetic and capacitive sensors.
And then fusing those data streams. We can also help with modelling those sensors in simulation to enable hundreds and thousands of hours of testing.
Fleet management
Robotic systems require interaction, coordination and cooperation between multiple agents. Agents require monitoring and task assignment to properly integrate in the system. We partnered with InOrbit to enable Fleet Management Systems orchestrate your robot fleets and leverage the power of your system. Also, we can assist you on the development of your already running FMS in areas like:
- Protocol bridges.
- System infrastructure.
- Orchestration and planning.
There are many areas that we can help your team with, such as:
- Improving robot control and operation with customized dashboards or teleoperation devices and software.
- Improving data introspection and regression testing analysis.
- Improving networking configuration and resilience.
- Bridging ROS message protocols with other protocols, e.g. MQTT, HTTP, etc.
- Integration with third party services.
- Bindings to multiple programming languages.
Mobile technologies
AR & VR
We are key contributors to the development of state of the art technologies that enable VR and AR applications in mobile devices. We are focused on virtual reality and augmented reality applications to enable new human - robot interactions. We can help you to deploy applications on Android devices that use embedded devices such as wearables, sensors and actuators as well as integrate these technologies in games or distributed applications that use mobiles as swarms.
Sensors
Mobile devices come with a lot of useful and high quality sensors. We can help you to:
- Calibrate sensors.
- Acquire data.
- Process data.
- Store it in an efficient way.
- Playback and storage.
- Define and implement testing strategies.
- Develop algorithms on top, build libraries and distribute them.
Feasibility studies and proof of concepts
Do you have a complex project that combines multiple technologies and disciplines?
Would you like to test your idea and evaluate hypothesis first?
We have experience implementing state of the art engineering and scientific development into production environments and understand what should be tested, evaluated and studied in favor of decreasing the risks of large projects.
We can help you to:
- Identify scalability problems.
- Benchmark technologies for your purposes.
- Design and plan the architecture of your ideas.
- Build proof of concept in short periods of time.
- Integrate off-the-shelf technologies with yours.
- Transition closed source code to use the open source tooling.